OSDN Git Service

2004-09-03 Vladimir Makarov <vmakarov@redhat.com>
[pf3gnuchains/gcc-fork.git] / configure.in
1 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
2 #   1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
3 #
4 # This file is free software; you can redistribute it and/or modify it
5 # under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18 ##############################################################################
19 ### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
20
21 sinclude(config/acx.m4)
22
23 AC_INIT(move-if-change)
24 AC_PREREQ(2.13)
25 AC_CANONICAL_SYSTEM
26 AC_ARG_PROGRAM
27
28 # Get 'install' or 'install-sh' and its variants.
29 AC_PROG_INSTALL
30 ACX_PROG_LN
31 AC_PROG_LN_S
32
33 ### we might need to use some other shell than /bin/sh for running subshells
34 ### If we are on Windows, search for the shell.  This will permit people
35 ### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
36 ### without also having to set CONFIG_SHELL.  This code will work when
37 ### using bash, which sets OSTYPE.
38 case "${OSTYPE}" in
39 *win32*)
40   if test x${CONFIG_SHELL} = x ; then
41     if test ! -f /bin/sh ; then
42       if test x${SHELL} != x && test -f ${SHELL} ; then
43         CONFIG_SHELL=${SHELL}
44         export CONFIG_SHELL
45       else
46         for prog in sh sh.exe bash bash.exe; do
47           IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
48           for dir in $PATH; do
49             test -z "$dir" && dir=.
50             if test -f $dir/$prog; then
51               CONFIG_SHELL=$dir/$prog
52               export CONFIG_SHELL
53               break
54             fi
55           done
56           IFS="$save_ifs"
57           test -n "${CONFIG_SHELL}" && break
58         done
59       fi
60     fi
61   fi
62   ;;
63 esac
64
65 config_shell=${CONFIG_SHELL-/bin/sh}
66
67 progname=$0
68 # if PWD already has a value, it is probably wrong.
69 if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
70
71 # Export original configure arguments for use by sub-configures.  These
72 # will be expanded by make, so quote '$'.
73 tmp="$progname $@"
74 sed -e 's,\$,$$,g' <<EOF_SED > conftestsed.out
75 $tmp
76 EOF_SED
77 TOPLEVEL_CONFIGURE_ARGUMENTS=`cat conftestsed.out`
78 rm -f conftestsed.out
79 AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
80
81 moveifchange=${srcdir}/move-if-change
82
83 # Set srcdir to "." if that's what it is.
84 # This is important for multilib support.
85 pwd=`${PWDCMD-pwd}`
86 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
87 if test "${pwd}" = "${srcpwd}" ; then
88   srcdir=.
89 fi
90
91 topsrcdir=$srcpwd
92
93 extra_host_args=
94 # Define the trigger file to make sure configure will re-run whenever
95 # the gcc version number changes.
96 if test "${with_gcc_version_trigger+set}" = set ; then
97   gcc_version_trigger="$with_gcc_version_trigger"
98   gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'`
99 else
100   # If gcc's sources are available, define the trigger file.
101   if test -f ${topsrcdir}/gcc/version.c ; then
102     gcc_version_trigger=${topsrcdir}/gcc/version.c
103     gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'`
104     case "$ac_configure_args" in
105       *--with-gcc-version-trigger=$gcc_version_trigger* )
106         ;;
107       * )
108         # Add to all subconfigure arguments: build, host, and target.
109         ac_configure_args="$ac_configure_args --with-gcc-version-trigger=$gcc_version_trigger"
110         ;;
111     esac
112   fi
113 fi
114
115 ### To add a new directory to the tree, first choose whether it is a target
116 ### or a host dependent tool.  Then put it into the appropriate list
117 ### (library or tools, host or target), doing a dependency sort.
118
119 # Subdirs will be configured in the order listed in build_configdirs, 
120 # configdirs, or target_configdirs; see the serialization section below.
121
122 # Dependency sorting is only needed when *configuration* must be done in 
123 # a particular order.  In all cases a dependency should be specified in 
124 # the Makefile, whether or not it's implicitly specified here.
125
126 # Double entries in build_configdirs, configdirs, or target_configdirs may
127 # cause circular dependencies and break everything horribly.
128
129 # these library is used by various programs built for the build
130 # environment
131 #
132 build_libs="build-libiberty"
133
134 # these tools are built for the build environment
135 build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes"
136
137 # these libraries are used by various programs built for the host environment
138 #
139 host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libbanshee libcpp"
140
141 # these tools are built for the host environment
142 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
143 # know that we are building the simulator.
144 # binutils, gas and ld appear in that order because it makes sense to run
145 # "make check" in that particular order.
146 host_tools="texinfo byacc flex bison binutils gas ld 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"
147
148 # libgcj represents the runtime libraries only used by gcj.
149 libgcj="target-libffi \
150         target-boehm-gc \
151         target-zlib \
152         target-qthreads \
153         target-libjava"
154
155 # these libraries are built for the target environment, and are built after
156 # the host libraries and the host tools (which may be a cross compiler)
157 #
158 target_libraries="target-libiberty \
159                 target-libgloss \
160                 target-newlib \
161                 target-libstdc++-v3 \
162                 target-libmudflap \
163                 target-libgfortran \
164                 ${libgcj} \
165                 target-libobjc \
166                 target-libada"
167
168 # these tools are built using the target libraries, and are intended to
169 # run only in the target environment
170 #
171 # note: any program that *uses* libraries that are in the "target_libraries"
172 # list belongs in this list.  those programs are also very likely
173 # candidates for the "native_only" list which follows
174 #
175 target_tools="target-examples target-groff target-gperf target-rda"
176
177 ################################################################################
178
179 ## All tools belong in one of the four categories, and are assigned above
180 ## We assign ${configdirs} this way to remove all embedded newlines.  This
181 ## is important because configure will choke if they ever get through.
182 ## ${configdirs} is directories we build using the host tools.
183 ## ${target_configdirs} is directories we build using the target tools.
184 configdirs=`echo ${host_libs} ${host_tools}`
185 target_configdirs=`echo ${target_libraries} ${target_tools}`
186 build_configdirs=`echo ${build_libs} ${build_tools}`
187
188 ################################################################################
189
190 srcname="gnu development package"
191
192 # This gets set non-empty for some net releases of packages.
193 appdirs=""
194
195 # Define is_cross_compiler to save on calls to 'test'.
196 is_cross_compiler=
197 if test x"${host}" = x"${target}" ; then
198   is_cross_compiler=no
199 else
200   is_cross_compiler=yes
201 fi      
202
203 # Find the build and target subdir names.
204 GCC_TOPLEV_SUBDIRS
205
206 # Skipdirs are removed silently.
207 skipdirs=
208 # Noconfigdirs are removed loudly.
209 noconfigdirs=""
210
211 use_gnu_ld=
212 # Make sure we don't let GNU ld be added if we didn't want it.
213 if test x$with_gnu_ld = xno ; then
214   use_gnu_ld=no
215   noconfigdirs="$noconfigdirs ld"
216 fi
217
218 use_gnu_as=
219 # Make sure we don't let GNU as be added if we didn't want it.
220 if test x$with_gnu_as = xno ; then
221   use_gnu_as=no
222   noconfigdirs="$noconfigdirs gas"
223 fi
224
225 # some tools are so dependent upon X11 that if we're not building with X, 
226 # it's not even worth trying to configure, much less build, that tool.
227
228 case ${with_x} in
229   yes | "") ;; # the default value for this tree is that X11 is available
230   no)
231     skipdirs="${skipdirs} tk itcl libgui"
232     # We won't be able to build gdbtk without X.
233     enable_gdbtk=no 
234     ;;
235   *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
236 esac
237
238 # Some tools are only suitable for building in a "native" situation.
239 # Remove these if host!=target.  
240 native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
241
242 # Similarly, some are only suitable for cross toolchains.
243 # Remove these if host=target.
244 cross_only="target-libgloss target-newlib target-opcodes"
245
246 case $is_cross_compiler in
247   no) skipdirs="${skipdirs} ${cross_only}" ;;
248   yes) skipdirs="${skipdirs} ${native_only}" ;;
249 esac
250
251 # If both --with-headers and --with-libs are specified, default to
252 # --without-newlib.
253 if test x"${with_headers}" != x && test x"${with_headers} != xno \
254    && test x"${with_libs}" != x && test x"${with_libs} != xno ; then
255   if test x"${with_newlib}" = x ; then
256     with_newlib=no
257   fi
258 fi
259
260 # Recognize --with-newlib/--without-newlib.
261 case ${with_newlib} in
262   no) skipdirs="${skipdirs} target-newlib" ;;
263   yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
264 esac
265
266 # Configure extra directories which are host specific
267
268 case "${host}" in
269   *-cygwin*)
270     configdirs="$configdirs libtermcap" ;;
271 esac
272
273 # Remove more programs from consideration, based on the host or 
274 # target this usually means that a port of the program doesn't
275 # exist yet.
276
277 case "${host}" in
278   hppa*64*-*-*)
279     noconfigdirs="$noconfigdirs byacc"
280     ;;
281   i[[3456789]]86-*-vsta)
282     noconfigdirs="$noconfigdirs tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl gnuserv gettext"
283     ;;
284   i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*)
285     noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl gnuserv libffi"
286     ;;
287   i[[3456789]]86-*-mingw32*)
288     # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl gnuserv"
289     noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool"
290     ;;
291   i[[3456789]]86-*-beos*)
292     noconfigdirs="$noconfigdirs tk itcl libgui gdb"
293     ;;
294   *-*-cygwin*)
295     noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl"
296     ;;
297   *-*-netbsd*)
298     noconfigdirs="$noconfigdirs rcs"
299     ;;
300   ppc*-*-pe)
301     noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv"
302     ;;
303   powerpc-*-beos*)
304     noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
305     ;;
306   *-*-darwin*)
307     noconfigdirs="$noconfigdirs tk itcl libgui"
308     ;;
309 esac
310
311 AC_ARG_WITH(libbanshee,
312 [  --without-libbanshee   Don't build with libbanshee])
313 case ${with_libbanshee} in
314   no)
315     noconfigdirs="$noconfigdirs libbanshee" ;;
316   yes|"")
317     with_libbanshee=yes
318     ;;
319   *)
320     AC_MSG_ERROR([--with-libbanshee can only be empty, "yes" or "no" (empty defaults to "yes".])
321 esac
322
323 AC_ARG_ENABLE(libada,
324 [  --enable-libada        Builds libada directory],
325 ENABLE_LIBADA=$enableval,
326 ENABLE_LIBADA=yes)
327 if test "${ENABLE_LIBADA}" != "yes" ; then
328   noconfigdirs="$noconfigdirs target-libada"
329 fi
330
331 # Save it here so that, even in case of --enable-libgcj, if the Java
332 # front-end isn't enabled, we still get libgcj disabled.
333 libgcj_saved=$libgcj
334 case $enable_libgcj in
335 yes)
336   # If we reset it here, it won't get added to noconfigdirs in the
337   # target-specific build rules, so it will be forcibly enabled
338   # (unless the Java language itself isn't enabled).
339   libgcj=
340   ;;
341 no)
342   # Make sure we get it printed in the list of not supported target libs.
343   noconfigdirs="$noconfigdirs ${libgcj}"
344   ;;
345 esac
346
347
348 # Allow --disable-libmudflap to exclude target-libmudflap
349 case $enable_libmudflap in
350 yes)
351     ;;
352 no)
353     noconfigdirs="$noconfigdirs target-libmudflap"
354     ;;
355 "")
356     case "${target}" in
357     *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
358         # Enable libmudflap by default in GNU and friends.
359         ;;
360     *-*-freebsd*)
361         # Enable libmudflap by default in FreeBSD.
362         ;;
363     *)
364         # Disable it by default everywhere else.
365         noconfigdirs="$noconfigdirs target-libmudflap"
366         ;;
367     esac
368 esac
369
370
371 case "${target}" in
372   *-*-chorusos)
373     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
374     ;;
375   powerpc-*-darwin*)
376     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
377     noconfigdirs="$noconfigdirs target-libobjc"
378     ;;
379   *-*-darwin*)
380     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
381     noconfigdirs="$noconfigdirs target-libobjc ${libgcj}"
382     ;;
383   *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
384     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
385     ;;
386   *-*-freebsd*)
387     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
388     if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
389         && test -f /usr/local/include/gmp.h; then
390       with_gmp=/usr/local
391     fi
392
393     # Skip some stuff that's unsupported on some FreeBSD configurations.
394     case "${target}" in
395       i*86-*-*) ;;
396       alpha*-*-*) ;;
397       *)
398         noconfigdirs="$noconfigdirs ${libgcj}"
399         ;;
400     esac
401     ;;
402   *-*-kaos*)
403     # Remove unsupported stuff on all kaOS configurations.
404     skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
405     skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
406     skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
407     noconfigdirs="$noconfigdirs target-libgloss"
408     ;;
409   *-*-netbsd*)
410     # Skip some stuff on all NetBSD configurations.
411     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
412
413     # Skip some stuff that's unsupported on some NetBSD configurations.
414     case "${target}" in
415       i*86-*-netbsdelf*) ;;
416       arm*-*-netbsdelf*) ;;
417       *)
418         noconfigdirs="$noconfigdirs ${libgcj}"
419         ;;
420     esac
421     ;;
422   *-*-netware)
423     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-newlib target-libiberty target-libgloss ${libgcj}"
424     ;;
425   *-*-rtems*)
426     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
427     ;;
428   *-*-uclinux*)
429     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
430     ;;
431   *-*-vxworks*)
432     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj}"
433     ;;
434   alpha*-dec-osf*)
435     # ld works, but does not support shared libraries.
436     # newlib is not 64 bit ready.  I'm not sure about fileutils.
437     # gas doesn't generate exception information.
438     noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
439     ;;
440   alpha*-*-*vms*)
441     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
442     ;;
443   alpha*-*-linux*)
444     # newlib is not 64 bit ready
445     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
446     ;;
447   alpha*-*-*)
448     # newlib is not 64 bit ready
449     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
450     ;;
451   am33_2.0-*-linux*)
452     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
453     ;;
454   sh-*-linux*)
455     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
456     ;;    
457   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
458     noconfigdirs="$noconfigdirs ${libgcj}"
459     noconfigdirs="$noconfigdirs target-examples"
460     noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
461     noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
462     noconfigdirs="$noconfigdirs expect dejagnu"
463     # the C++ libraries don't build on top of CE's C libraries
464     noconfigdirs="$noconfigdirs target-libstdc++-v3"
465     noconfigdirs="$noconfigdirs target-newlib"
466     case "${host}" in
467       *-*-cygwin*) ;; # keep gdb and readline
468       *) noconfigdirs="$noconfigdirs gdb readline"
469          ;;
470     esac
471     ;;
472   arc-*-*)
473     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
474     ;;
475   arm-*-coff | strongarm-*-coff | xscale-*-coff)
476     noconfigdirs="$noconfigdirs ${libgcj}"
477     ;;
478   arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
479     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
480     ;;
481   arm*-*-symbianelf*)
482     noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
483     ;;
484   arm-*-pe*)
485     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
486     ;;
487   arm-*-oabi*)
488     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
489     ;;
490   thumb-*-coff)
491     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
492     ;;
493   thumb-*-elf)
494     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
495     ;;
496   thumb-*-oabi)
497     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
498     ;;
499   thumb-*-pe)
500     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
501     ;;
502   arm-*-riscix*)
503     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
504     ;;
505   avr-*-*)
506     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
507     ;;
508   c4x-*-* | tic4x-*-*)
509     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
510     ;;
511   c54x*-*-* | tic54x-*-*)
512     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
513     ;;
514   cris-*-*)
515     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
516     ;;
517   crx-*-*)
518     noconfigdirs="$noconfigdirs target-libgloss target-libstdc++-v3 target-mudflap ${libgcj}"
519     ;;
520   d10v-*-*)
521     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
522     ;;
523   d30v-*-*)
524     noconfigdirs="$noconfigdirs ${libgcj} gdb"
525     ;;
526   fr30-*-elf*)
527     noconfigdirs="$noconfigdirs ${libgcj} gdb"
528     ;;
529   frv-*-*)
530     noconfigdirs="$noconfigdirs ${libgcj}"
531     ;;
532   h8300*-*-*)
533     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
534     ;;
535   h8500-*-*)
536     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
537     ;;
538   hppa*64*-*-linux* | parisc*64*-*-linux*)
539     # In this case, it's because the hppa64-linux target is for
540     # the kernel only at this point and has no libc, and thus no
541     # headers, crt*.o, etc., all of which are needed by these.
542     noconfigdirs="$noconfigdirs target-zlib"
543     ;;
544   hppa*-*-*elf* | \
545   parisc*-*-linux* | hppa*-*-linux* | \
546   hppa*-*-lites* | \
547   hppa*-*-openbsd* | \
548   hppa*64*-*-*)
549     noconfigdirs="$noconfigdirs ${libgcj}"
550     # Do configure ld/binutils/gas for this case.
551     ;;
552   hppa*-*-*)
553     # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
554     # build on HP-UX 10.20.
555     noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
556     ;;
557   i960-*-*)
558     noconfigdirs="$noconfigdirs ${libgcj} gdb"
559     ;;
560   ia64*-*-elf*)
561     # No gdb support yet.
562     noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb"
563     ;;
564   ia64*-**-hpux*)
565     # No gdb or ld support yet.
566     noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
567     ;;
568   i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
569     noconfigdirs="$noconfigdirs ${libgcj}"
570     ;;
571   i[[3456789]]86-*-linux*)
572     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
573     # not build java stuff by default.
574     case "${target}" in
575       *-*-*libc1*)
576         noconfigdirs="$noconfigdirs ${libgcj}";;
577     esac
578
579     # This section makes it possible to build newlib natively on linux.
580     # If we are using a cross compiler then don't configure newlib.
581     if test x${is_cross_compiler} != xno ; then
582       noconfigdirs="$noconfigdirs target-newlib"
583     fi
584     noconfigdirs="$noconfigdirs target-libgloss"
585     # If we are not using a cross compiler, do configure newlib.
586     # Note however, that newlib will only be configured in this situation
587     # if the --with-newlib option has been given, because otherwise
588     # 'target-newlib' will appear in skipdirs.
589     ;;
590   i[[3456789]]86-*-mingw32*)
591     target_configdirs="$target_configdirs target-mingw"
592     noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}"
593
594     # Can't build gdb for mingw32 if not native.
595     case "${host}" in
596       i[[3456789]]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
597       *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl gnuserv"
598          ;;
599     esac
600     ;;    
601   *-*-cygwin*)
602     target_configdirs="$target_configdirs target-libtermcap target-winsup"
603     noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
604     # always build newlib if winsup directory is present.
605     if test -d "$srcdir/winsup"
606     then
607       skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
608     else
609       echo "Warning: winsup is missing so newlib can't be built."
610     fi
611
612     # Can't build gdb for Cygwin if not native.
613     case "${host}" in
614       *-*-cygwin*) ;; # keep gdb tcl tk expect etc.
615       *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl libgui gnuserv"
616          ;;
617     esac
618     ;;    
619   i[[3456789]]86-*-pe)
620     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
621     ;;
622   i[[3456789]]86-*-sco3.2v5*)
623     # The linker does not yet know about weak symbols in COFF,
624     # and is not configured to handle mixed ELF and COFF.
625     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
626     ;;
627   i[[3456789]]86-*-sco*)
628     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
629     ;;
630   i[[3456789]]86-*-solaris2*)
631     noconfigdirs="$noconfigdirs target-libgloss"
632     ;;
633   i[[3456789]]86-*-sysv4*)
634     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
635     ;;
636   i[[3456789]]86-*-beos*)
637     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
638     ;;
639   m32r-*-*)
640     noconfigdirs="$noconfigdirs ${libgcj}"
641     ;;
642   m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
643     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
644     ;;
645   m68k-*-elf*)
646     noconfigdirs="$noconfigdirs ${libgcj}"
647     ;;
648   m68k-*-coff*)
649     noconfigdirs="$noconfigdirs ${libgcj}"
650     ;;
651   mcore-*-pe*)
652   # The EPOC C++ environment does not support exceptions or rtti,
653   # and so building libstdc++-v3 tends not to always work.
654     noconfigdirs="$noconfigdirs target-libstdc++-v3"
655     ;;
656   mmix-*-*)
657     noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss"
658     ;;
659   mn10200-*-*)
660     noconfigdirs="$noconfigdirs ${libgcj}"
661     ;;
662   mn10300-*-*)
663     noconfigdirs="$noconfigdirs ${libgcj}"
664     ;;
665   powerpc-*-aix*)
666     # copied from rs6000-*-* entry
667     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
668     ;;
669   powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
670     target_configdirs="$target_configdirs target-winsup"
671     noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv ${libgcj}"
672     # always build newlib.
673     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
674     ;;
675     # This is temporary until we can link against shared libraries
676   powerpcle-*-solaris*)
677     noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv ${libgcj}"
678     ;;
679   powerpc-*-beos*)
680     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
681     ;;
682   powerpc-*-eabi)
683     noconfigdirs="$noconfigdirs ${libgcj}"
684     ;;
685   rs6000-*-lynxos*)
686     noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
687     ;;
688   rs6000-*-aix*)
689     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
690     ;;
691   rs6000-*-*)
692     noconfigdirs="$noconfigdirs gprof ${libgcj}"
693     ;;
694   m68k-apollo-*)
695     noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
696     ;;
697   mips*-*-irix5*)
698     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
699     ;;
700   mips*-*-irix6*)
701     # Linking libjava exceeds command-line length limits on at least
702     # IRIX 6.2, but not on IRIX 6.5.
703     # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
704     # <oldham@codesourcery.com>
705     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
706     ;;
707   mips*-dec-bsd*)
708     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
709     ;;
710   mips*-*-bsd*)
711     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
712     ;;
713   mipstx39-*-*)
714     noconfigdirs="$noconfigdirs gprof ${libgcj}"   # same as generic mips
715     ;;
716   mips64*-*-linux*)
717     noconfigdirs="$noconfigdirs target-newlib ${libgcj}"
718     ;;
719   mips*-*-linux*)
720     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
721     ;;
722   mips*-*-*)
723     noconfigdirs="$noconfigdirs gprof ${libgcj}"
724     ;;
725   romp-*-*)
726     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
727     ;;
728   sh-*-*)
729     case "${host}" in
730       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
731       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
732       i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
733       *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
734     esac
735     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
736     ;;
737   sh64-*-*)
738     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
739     ;;
740   sparc-*-elf*)
741     noconfigdirs="$noconfigdirs ${libgcj}"
742     ;;
743   sparc64-*-elf*)
744     noconfigdirs="$noconfigdirs ${libgcj}"
745     ;;
746   sparclite-*-*)
747     noconfigdirs="$noconfigdirs ${libgcj}"
748     ;;
749   sparc-*-sunos4*)
750     noconfigdirs="$noconfigdirs ${libgcj}"
751     if test x${is_cross_compiler} != xno ; then
752            noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
753     else
754            use_gnu_ld=no
755     fi
756     ;;
757   sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
758     ;;
759   v810-*-*)
760     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
761     ;;
762   v850-*-*)
763     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
764     ;;
765   v850e-*-*)
766     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
767     ;;
768   v850ea-*-*)
769     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
770     ;;
771   vax-*-vms)
772     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
773     ;;
774   vax-*-*)
775     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
776     ;;
777   xtensa-*-*)
778     noconfigdirs="$noconfigdirs ${libgcj}"
779     ;;
780   ip2k-*-*)
781     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
782     ;;
783   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
784     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
785     ;;
786   *-*-lynxos*)
787     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
788     ;; 
789   *-*-*)
790     noconfigdirs="$noconfigdirs ${libgcj}"
791     ;;
792 esac
793
794 # If we aren't building newlib, then don't build libgloss, since libgloss
795 # depends upon some newlib header files.
796 case "${noconfigdirs}" in
797   *target-libgloss*) ;;
798   *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
799 esac
800
801 # Work in distributions that contain no compiler tools, like Autoconf.
802 tentative_cc=""
803 host_makefile_frag=/dev/null
804 if test -d ${srcdir}/config ; then
805 case "${host}" in
806   m68k-hp-hpux*)
807     # Avoid "too much defining" errors from HPUX compiler.
808     tentative_cc="cc -Wp,-H256000"
809     # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
810     # If it's HP/UX ar, this should be harmless.
811     RANLIB="ar ts"
812     ;;
813   m68k-apollo-sysv*)
814     tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
815     ;;
816   m68k-apollo-bsd*)
817     #None of the Apollo compilers can compile gas or binutils.  The preprocessor
818     # chokes on bfd, the compiler won't let you assign integers to enums, and
819     # other problems.  Defining CC to gcc is a questionable way to say "don't use
820     # the apollo compiler" (the preferred version of GCC could be called cc,
821     # or whatever), but I'm not sure leaving CC as cc is any better...
822     #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
823     # Used to have BISON=yacc.
824     tentative_cc=gcc
825     ;;
826   m88k-dg-dgux*)
827     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
828     ;;
829   m88k-harris-cxux*)
830     # Under CX/UX, we want to tell the compiler to use ANSI mode.
831     tentative_cc="cc -Xa"
832     host_makefile_frag="config/mh-cxux"
833     ;;
834   m88k-motorola-sysv*)
835     ;;
836   mips*-dec-ultrix*)
837     tentative_cc="cc -Wf,-XNg1000"
838     host_makefile_frag="config/mh-decstation"
839     ;;
840   mips*-nec-sysv4*)
841     # The C compiler on NEC MIPS SVR4 needs bigger tables.
842     tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
843     host_makefile_frag="config/mh-necv4"
844     ;;
845   mips*-sgi-irix4*)
846     # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
847     # environment.  Also bump switch table size so that cp-parse will
848     # compile.  Bump string length limit so linker builds.
849     tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
850     ;;
851   mips*-*-sysv4*)
852     host_makefile_frag="config/mh-sysv4"
853     ;;
854   mips*-*-sysv*)
855     # This is for a MIPS running RISC/os 4.52C.
856
857     # This is needed for GDB, but needs to be in the top-level make because
858     # if a library is compiled with the bsd headers and gets linked with the
859     # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
860     # a different size).
861     # ptrace(2) apparently has problems in the BSD environment.  No workaround is
862     # known except to select the sysv environment.  Could we use /proc instead?
863     # These "sysv environments" and "bsd environments" often end up being a pain.
864     #
865     # This is not part of CFLAGS because perhaps not all C compilers have this
866     # option.
867     tentative_cc="cc -systype sysv"
868     ;;
869   i370-ibm-opened*)
870     tentative_cc="c89"
871     ;;
872   i[[3456789]]86-*-sysv5*)
873     host_makefile_frag="config/mh-sysv5"
874     ;;
875   i[[3456789]]86-*-dgux*)
876     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
877     host_makefile_frag="config/mh-dgux386"
878     ;;
879   i[[3456789]]86-ncr-sysv4.3*)
880     # The MetaWare compiler will generate a copyright message unless you
881     # turn it off by adding the -Hnocopyr flag.
882     tentative_cc="cc -Hnocopyr"
883     ;;
884   i[[3456789]]86-ncr-sysv4*)
885     # for an NCR 3000 (i486/SVR4) system.
886     # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
887     # This compiler not only emits obnoxious copyright messages every time
888     # you run it, but it chokes and dies on a whole bunch of GNU source
889     # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
890     tentative_cc="/usr/ccs/ATT/cc"
891     host_makefile_frag="config/mh-ncr3000"
892     ;;
893   i[[3456789]]86-*-sco3.2v5*)
894     ;;
895   i[[3456789]]86-*-sco*)
896     # The native C compiler botches some simple uses of const.  Unfortunately,
897     # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
898     tentative_cc="cc -Dconst="
899     host_makefile_frag="config/mh-sco"
900     ;;
901   i[[3456789]]86-*-udk*)
902     host_makefile_frag="config/mh-sysv5"
903     ;;
904   i[[3456789]]86-*-solaris2*)
905     host_makefile_frag="config/mh-sysv4"
906     ;;
907   i[[3456789]]86-*-msdosdjgpp*)
908     host_makefile_frag="config/mh-djgpp"
909     ;;
910   *-cygwin*)
911     host_makefile_frag="config/mh-cygwin"
912     ;;
913   *-mingw32*)
914     host_makefile_frag="config/mh-mingw32"
915     ;;
916   *-interix*)
917     host_makefile_frag="config/mh-interix"
918     ;;
919   vax-*-ultrix2*)
920     # The old BSD pcc isn't up to compiling parts of gdb so use gcc
921     tentative_cc=gcc
922     ;;
923   *-*-solaris2*)
924     host_makefile_frag="config/mh-solaris"
925     ;;
926   m68k-sun-sunos*)
927     # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
928     # without overflowing the jump tables (-J says to use a 32 bit table)
929     tentative_cc="cc -J"
930     ;;
931   *-hp-hpux*)
932     tentative_cc="cc -Wp,-H256000"
933     ;;
934   *-*-hiux*)
935     tentative_cc="cc -Wp,-H256000"
936     ;;
937   rs6000-*-lynxos*)
938     # /bin/cc is less than useful for our purposes.  Always use GCC
939     tentative_cc="/usr/cygnus/progressive/bin/gcc"
940     host_makefile_frag="config/mh-lynxrs6k"
941     ;;
942   powerpc-*-darwin*)
943     host_makefile_frag="config/mh-ppc-darwin"
944     ;;
945   *-*-lynxos*)
946     # /bin/cc is less than useful for our purposes.  Always use GCC
947     tentative_cc="/bin/gcc"
948     ;;
949   *-*-sysv4*)
950     host_makefile_frag="config/mh-sysv4"
951     ;;
952 esac
953 fi
954
955 # If we aren't going to be using gcc, see if we can extract a definition
956 # of CC from the fragment.
957 # Actually, use the 'pre-extracted' version above.
958 if test -z "${CC}" && test "${build}" = "${host}" ; then
959   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
960   found=
961   for dir in $PATH; do
962     test -z "$dir" && dir=.
963     if test -f $dir/gcc; then
964       found=yes
965       break
966     fi
967   done
968   IFS="$save_ifs"
969   if test -z "${found}" && test -n "${tentative_cc}" ; then
970     CC=$tentative_cc
971   fi
972 fi
973
974 if test "${build}" != "${host}" ; then
975   # If we are doing a Canadian Cross, in which the host and build systems
976   # are not the same, we set reasonable default values for the tools.
977
978   CC=${CC-${host_alias}-gcc}
979   CFLAGS=${CFLAGS-"-g -O2"}
980   CXX=${CXX-${host_alias}-c++}
981   CXXFLAGS=${CXXFLAGS-"-g -O2"}
982   CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
983   CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
984   CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
985   GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
986   GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
987   BUILD_PREFIX=${build_alias}-
988   BUILD_PREFIX_1=${build_alias}-
989
990 else
991   # Set reasonable default values for some tools even if not Canadian.
992   # Of course, these are different reasonable default values, originally
993   # specified directly in the Makefile.
994   # We don't export, so that autoconf can do its job.
995   # Note that all these settings are above the fragment inclusion point
996   # in Makefile.in, so can still be overridden by fragments.
997   # This is all going to change when we autoconfiscate...
998
999   CC_FOR_BUILD="\$(CC)"
1000   GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
1001   BUILD_PREFIX=
1002   BUILD_PREFIX_1=loser-
1003
1004   AC_PROG_CC
1005
1006   # We must set the default linker to the linker used by gcc for the correct
1007   # operation of libtool.  If LD is not defined and we are using gcc, try to
1008   # set the LD default to the ld used by gcc.
1009   if test -z "$LD"; then
1010     if test "$GCC" = yes; then
1011       case $build in
1012       *-*-mingw*)
1013         gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1014       *)
1015         gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1016       esac
1017       case $gcc_prog_ld in
1018       # Accept absolute paths.
1019       [[\\/]* | [A-Za-z]:[\\/]*)]
1020         LD="$gcc_prog_ld" ;;
1021       esac
1022     fi
1023   fi
1024
1025   CXX=${CXX-"c++"}
1026   CFLAGS=${CFLAGS-"-g"}
1027   CXXFLAGS=${CXXFLAGS-"-g -O2"}
1028 fi
1029
1030 ACX_PROG_GNAT
1031 ACX_PROG_CMP_IGNORE_INITIAL
1032
1033 # Check for GMP and MPFR
1034 gmplibs=
1035 gmpinc=
1036 have_gmp=yes
1037 # Specify a location for mpfr
1038 # check for this first so it ends up on the link line before gmp.
1039 AC_ARG_WITH(mpfr-dir, [  --with-mpfr-dir=PATH    Specify source directory for MPFR library])
1040
1041 if test "x$with_mpfr_dir" != x; then
1042   gmpinc="-I$with_mpfr_dir/mpfr"
1043   gmplibs="$with_mpfr_dir/libmpfr.a"
1044 else
1045   gmplibs="-lmpfr"
1046 fi
1047
1048 AC_ARG_WITH(mpfr, [  --with-mpfr=PATH        Specify directory for installed MPFR library])
1049
1050 if test "x$with_mpfr" != x; then
1051   gmplibs="-L$with_mpfr/lib $gmplibs"
1052   gmpinc="-I$with_mpfr/include"
1053 fi
1054
1055 # Specify a location for gmp
1056 AC_ARG_WITH(gmp-dir, [  --with-gmp-dir=PATH     Specify source directory for GMP library])
1057
1058 if test "x$with_gmp_dir" != x; then
1059   gmpinc="$gmpinc -I$with_gmp_dir"
1060   if test -f "$with_gmp_dir/.libs/libgmp.a"; then
1061     gmplibs="$gmplibs $with_gmp_dir/.libs/libgmp.a"
1062   elif test -f "$with_gmp_dir/_libs/libgmp.a"; then
1063     gmplibs="$gmplibs $with_gmp_dir/_libs/libgmp.a"
1064   fi
1065   # One of the later tests will catch the error if neither library is present.
1066 else
1067   gmplibs="$gmplibs -lgmp"
1068 fi
1069
1070 AC_ARG_WITH(gmp, [  --with-gmp=PATH         Specify directory for installed GMP library])
1071
1072 if test "x$with_gmp" != x; then
1073   gmplibs="-L$with_gmp/lib $gmplibs"
1074   gmpinc="-I$with_gmp/include $gmpinc"
1075 fi
1076
1077 saved_CFLAGS="$CFLAGS"
1078 CFLAGS="$CFLAGS $gmpinc"
1079 # Check GMP actually works
1080 AC_MSG_CHECKING([for correct version of gmp.h])
1081 AC_TRY_COMPILE([#include "gmp.h"],[
1082 #if __GNU_MP_VERSION < 3
1083 choke me
1084 #endif
1085 ], [AC_MSG_RESULT([yes])],
1086   [AC_MSG_RESULT([no]); have_gmp=no])
1087
1088 if test x"$have_gmp" = xyes; then
1089   AC_MSG_CHECKING([for MPFR])
1090
1091   saved_LIBS="$LIBS"
1092   LIBS="$LIBS $gmplibs"
1093   AC_TRY_LINK([#include <gmp.h>
1094 #include <mpfr.h>], [mpfr_t n; mpfr_init(n);],
1095     [AC_MSG_RESULT([yes])],  [AC_MSG_RESULT([no]); have_gmp=no])
1096   LIBS="$saved_LIBS"
1097   CFLAGS="$saved_CFLAGS"
1098 fi
1099
1100 # Flags needed for both GMP and/or MPFR
1101 AC_SUBST(gmplibs)
1102 AC_SUBST(gmpinc)
1103
1104 # By default, C is the only stage 1 language.
1105 stage1_languages=c
1106 AC_SUBST(stage1_languages)
1107
1108 # Figure out what language subdirectories are present.
1109 # Look if the user specified --enable-languages="..."; if not, use
1110 # the environment variable $LANGUAGES if defined. $LANGUAGES might
1111 # go away some day.
1112 # NB:  embedded tabs in this IF block -- do not untabify
1113 if test -d ${srcdir}/gcc; then
1114   if test x"${enable_languages+set}" != xset; then
1115     if test x"${LANGUAGES+set}" = xset; then
1116       enable_languages="${LANGUAGES}"
1117         echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1118     else
1119       enable_languages=all
1120     fi
1121   else
1122     if test x"${enable_languages}" = x ||
1123        test x"${enable_languages}" = xyes;
1124        then
1125       echo configure.in: --enable-languages needs at least one language argument 1>&2
1126       exit 1
1127     fi
1128   fi
1129   enable_languages=`echo "${enable_languages}" | sed -e 's/[[   ,]][[   ,]]*/,/g' -e 's/,$//'`
1130
1131   # First scan to see if an enabled language requires some other language.
1132   # We assume that a given config-lang.in will list all the language
1133   # front ends it requires, even if some are required indirectly.
1134   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1135     case ${lang_frag} in
1136       ..) ;;
1137       # The odd quoting in the next line works around
1138       # an apparent bug in bash 1.12 on linux.
1139       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1140       *)
1141         # From the config-lang.in, get $language, $lang_requires
1142         language=
1143         lang_requires=
1144         . ${lang_frag}
1145         for other in ${lang_requires} ; do
1146           case ,${enable_languages}, in
1147             *,$other,*) ;;
1148             *,all,*) ;;
1149             *,$language,*)
1150               echo " \`$other' language required by \`$language'; enabling" 1>&2
1151               enable_languages="${enable_languages},${other}"
1152               ;;
1153           esac
1154         done
1155         ;;
1156     esac
1157   done
1158
1159   new_enable_languages=c
1160   missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1161   potential_languages=c
1162
1163   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1164     case ${lang_frag} in
1165       ..) ;;
1166       # The odd quoting in the next line works around
1167       # an apparent bug in bash 1.12 on linux.
1168       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1169       *)
1170         # From the config-lang.in, get $language, $target_libs, 
1171         # $lang_dirs, $boot_language, and $build_by_default
1172         language=
1173         target_libs=
1174         lang_dirs=
1175         boot_language=
1176         build_by_default=
1177         need_gmp=
1178         . ${lang_frag}
1179         potential_languages="${potential_languages},${language}"
1180         # This is quite sensitive to the ordering of the case statement arms.
1181         case ,${enable_languages},:${language}:${have_gnat}:${build_by_default} in
1182           *::*:*)
1183             echo "${lang_frag} doesn't set \$language." 1>&2
1184             exit 1
1185             ;;
1186           *:ada:no:*)
1187             # Ada was requested with no preexisting GNAT.  Disable unconditionally.
1188             add_this_lang=no
1189             ;;
1190           *,${language},*:*:*:*)
1191             # Language was explicitly selected; include it.
1192             add_this_lang=yes
1193             ;;
1194           *,all,*:*:*:no)
1195             # 'all' was selected, but this is not a default language
1196             # so do not include it.
1197             add_this_lang=no
1198             ;;
1199           *,all,*:*:*:*)
1200             # 'all' was selected and this is a default language; include it.
1201             add_this_lang=yes
1202             ;;
1203           *)
1204             add_this_lang=no
1205             ;;
1206         esac
1207
1208         # Disable languages that need GMP if it isn't available.
1209         case ,${enable_languages},:${have_gmp}:${need_gmp} in
1210           *,${language},*:no:yes)
1211             # Specifically requested language; tell them.
1212             AC_MSG_ERROR([GMP with MPFR support is required to build $language])
1213             ;;
1214           *:no:yes)
1215             # Silently disable.
1216             add_this_lang=no
1217             ;;
1218         esac
1219         
1220         case $add_this_lang in
1221           no)
1222             # Remove language-dependent dirs.
1223             eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1224             ;;
1225           *)
1226             new_enable_languages="$new_enable_languages,$language"
1227             missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1228             case ${boot_language} in
1229               yes)
1230                 # Add to (comma-separated) list of stage 1 languages.
1231                 stage1_languages="${stage1_languages},${language}"
1232                 ;;
1233             esac
1234             ;;
1235         esac
1236         ;;
1237     esac
1238   done
1239
1240   missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
1241   if test "x$missing_languages" != x; then
1242     AC_MSG_ERROR([
1243 The following requested languages were not found: ${missing_languages}
1244 The available languages are: ${potential_languages}])
1245   fi
1246
1247   if test "x$new_enable_languages" != "x$enable_languages"; then
1248     echo The following languages will be built: ${new_enable_languages}
1249   fi
1250   enable_languages="$new_enable_languages"
1251   ac_configure_args=`echo " $ac_configure_args" | sed -e 's/ --enable-languages=[[^ ]]*//' -e 's/$/ --enable-languages='"$enable_languages"/ `
1252 fi
1253
1254 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
1255 # $target_configdirs.
1256 # If we have the source for $noconfigdirs entries, add them to $notsupp.
1257
1258 notsupp=""
1259 for dir in . $skipdirs $noconfigdirs ; do
1260   dirname=`echo $dir | sed -e s/target-//g`
1261   if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1262     configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1263     if test -r $srcdir/$dirname/configure ; then
1264       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1265         true
1266       else
1267         notsupp="$notsupp $dir"
1268       fi
1269     fi
1270   fi
1271   if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1272     target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1273     if test -r $srcdir/$dirname/configure ; then
1274       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1275         true
1276       else
1277         notsupp="$notsupp $dir"
1278       fi
1279     fi
1280   fi
1281 done
1282
1283 # Sometimes the tools are distributed with libiberty but with no other
1284 # libraries.  In that case, we don't want to build target-libiberty.
1285 if test -n "${target_configdirs}" ; then
1286   others=
1287   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1288     if test "$i" != "libiberty" ; then
1289       if test -r $srcdir/$i/configure ; then
1290         others=yes;
1291         break;
1292       fi
1293     fi
1294   done
1295   if test -z "${others}" ; then
1296     target_configdirs=
1297   fi
1298 fi
1299
1300 # Quietly strip out all directories which aren't configurable in this tree.
1301 # This relies on all configurable subdirectories being autoconfiscated, which
1302 # is now the case.
1303 build_configdirs_all="$build_configdirs"
1304 build_configdirs=
1305 for i in ${build_configdirs_all} ; do
1306   j=`echo $i | sed -e s/build-//g` 
1307   if test -f ${srcdir}/$j/configure ; then
1308     build_configdirs="${build_configdirs} $i"
1309   fi
1310 done
1311
1312 configdirs_all="$configdirs"
1313 configdirs=
1314 for i in ${configdirs_all} ; do
1315   if test -f ${srcdir}/$i/configure ; then
1316     configdirs="${configdirs} $i"
1317   fi
1318 done
1319
1320 target_configdirs_all="$target_configdirs"
1321 target_configdirs=
1322 for i in ${target_configdirs_all} ; do
1323   j=`echo $i | sed -e s/target-//g` 
1324   if test -f ${srcdir}/$j/configure ; then
1325     target_configdirs="${target_configdirs} $i"
1326   fi
1327 done
1328
1329 # Produce a warning message for the subdirs we can't configure.
1330 # This isn't especially interesting in the Cygnus tree, but in the individual
1331 # FSF releases, it's important to let people know when their machine isn't
1332 # supported by the one or two programs in a package.
1333
1334 if test -n "${notsupp}" && test -z "${norecursion}" ; then
1335   # If $appdirs is non-empty, at least one of those directories must still
1336   # be configured, or we error out.  (E.g., if the gas release supports a
1337   # specified target in some subdirs but not the gas subdir, we shouldn't
1338   # pretend that all is well.)
1339   if test -n "$appdirs" ; then
1340     for dir in $appdirs ; do
1341       if test -r $dir/Makefile.in ; then
1342         if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1343           appdirs=""
1344           break
1345         fi
1346         if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
1347           appdirs=""
1348           break
1349         fi
1350       fi
1351     done
1352     if test -n "$appdirs" ; then
1353       echo "*** This configuration is not supported by this package." 1>&2
1354       exit 1
1355     fi
1356   fi
1357   # Okay, some application will build, or we don't care to check.  Still
1358   # notify of subdirs not getting built.
1359   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1360   echo "    ${notsupp}" 1>&2
1361   echo "    (Any other directories should still work fine.)" 1>&2
1362 fi
1363
1364 case "$host" in
1365   *msdosdjgpp*)
1366     enable_gdbtk=no ;;
1367 esac
1368
1369 copy_dirs=
1370
1371 # Handle --with-headers=XXX.  If the value is not "yes", the contents of
1372 # the named directory are copied to $(tooldir)/sys-include.
1373 if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
1374   if test x${is_cross_compiler} = xno ; then
1375     echo 1>&2 '***' --with-headers is only supported when cross compiling
1376     exit 1
1377   fi
1378   if test x"${with_headers}" != xyes ; then
1379     case "${exec_prefixoption}" in
1380     "") x=${prefix} ;;
1381     *) x=${exec_prefix} ;;
1382     esac
1383     copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
1384   fi
1385 fi
1386
1387 # Handle --with-libs=XXX.  If the value is not "yes", the contents of
1388 # the name directories are copied to $(tooldir)/lib.  Multiple directories
1389 # are permitted.
1390 if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
1391   if test x${is_cross_compiler} = xno ; then
1392     echo 1>&2 '***' --with-libs is only supported when cross compiling
1393     exit 1
1394   fi
1395   if test x"${with_libs}" != xyes ; then
1396     # Copy the libraries in reverse order, so that files in the first named
1397     # library override files in subsequent libraries.
1398     case "${exec_prefixoption}" in
1399     "") x=${prefix} ;;
1400     *) x=${exec_prefix} ;;
1401     esac
1402     for l in ${with_libs}; do
1403       copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
1404     done
1405   fi
1406 fi
1407
1408 # Handle ${copy_dirs}
1409 set fnord ${copy_dirs}
1410 shift
1411 while test $# != 0 ; do
1412   if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
1413     :
1414   else
1415     echo Copying $1 to $2
1416
1417     # Use the install script to create the directory and all required
1418     # parent directories.
1419     if test -d $2 ; then
1420       :
1421     else
1422       echo >config.temp
1423       ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
1424     fi
1425
1426     # Copy the directory, assuming we have tar.
1427     # FIXME: Should we use B in the second tar?  Not all systems support it.
1428     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
1429
1430     # It is the responsibility of the user to correctly adjust all
1431     # symlinks.  If somebody can figure out how to handle them correctly
1432     # here, feel free to add the code.
1433
1434     echo $1 > $2/COPIED
1435   fi
1436   shift; shift
1437 done
1438
1439 extra_arflags_for_target=
1440 extra_nmflags_for_target=
1441 extra_ranlibflags_for_target=
1442 target_makefile_frag=/dev/null
1443 case "${target}" in
1444   i[[3456789]]86-*-netware*)
1445     target_makefile_frag="config/mt-netware"
1446     ;;
1447   powerpc-*-netware*)
1448     target_makefile_frag="config/mt-netware"
1449     ;;
1450   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
1451     target_makefile_frag="config/mt-gnu"
1452     ;;
1453   *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
1454     # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
1455     # commands to handle both 32-bit and 64-bit objects.  These flags are
1456     # harmless if we're using GNU nm or ar.
1457     extra_arflags_for_target=" -X32_64"
1458     extra_nmflags_for_target=" -B -X32_64"
1459     ;;
1460   *-*-darwin*)
1461     # ranlib from Darwin requires the -c flag to look at common symbols.
1462     extra_ranlibflags_for_target=" -c"
1463     ;;
1464   mips*-*-pe | sh*-*-pe | *arm-wince-pe)
1465     target_makefile_frag="config/mt-wince"
1466     ;;
1467 esac
1468
1469 alphaieee_frag=/dev/null
1470 case $target in
1471   alpha*-*-*)
1472     # This just makes sure to use the -mieee option to build target libs.
1473     # This should probably be set individually by each library.
1474     alphaieee_frag="config/mt-alphaieee"
1475     ;;
1476 esac
1477
1478 # If --enable-target-optspace always use -Os instead of -O2 to build
1479 # the target libraries, similarly if it is not specified, use -Os
1480 # on selected platforms.
1481 ospace_frag=/dev/null
1482 case "${enable_target_optspace}:${target}" in
1483   yes:*)
1484     ospace_frag="config/mt-ospace"
1485     ;;
1486   :d30v-*)
1487     ospace_frag="config/mt-d30v"
1488     ;;
1489   :m32r-* | :d10v-* | :fr30-*)
1490     ospace_frag="config/mt-ospace"
1491     ;;
1492   no:* | :*)
1493     ;;
1494   *)
1495     echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1496     ;;
1497 esac
1498
1499 # Set with_gnu_as and with_gnu_ld as appropriate.
1500 #
1501 # This is done by determining whether or not the appropriate directory
1502 # is available, and by checking whether or not specific configurations
1503 # have requested that this magic not happen.
1504
1505 # The command line options always override the explicit settings in 
1506 # configure.in, and the settings in configure.in override this magic.
1507 #
1508 # If the default for a toolchain is to use GNU as and ld, and you don't 
1509 # want to do that, then you should use the --without-gnu-as and
1510 # --without-gnu-ld options for the configure script.
1511
1512 if test x${use_gnu_as} = x &&
1513    echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1514   with_gnu_as=yes
1515   extra_host_args="$extra_host_args --with-gnu-as"
1516 fi
1517
1518 if test x${use_gnu_ld} = x &&
1519    echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1520   with_gnu_ld=yes
1521   extra_host_args="$extra_host_args --with-gnu-ld"
1522 fi
1523
1524 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1525 # can detect this case.
1526
1527 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1528   with_newlib=yes
1529   extra_host_args="$extra_host_args --with-newlib"
1530 fi
1531
1532 if test x${with_libbanshee} = xyes && echo " ${configdirs} " | grep " libbanshee " >/dev/null 2>&1; then
1533   extra_host_args="$extra_host_args --with-libbanshee"
1534 fi
1535
1536 # Default to using --with-stabs for certain targets.
1537 if test x${with_stabs} = x ; then
1538   case "${target}" in
1539   mips*-*-irix[[56]]*)
1540     ;;
1541   mips*-*-* | alpha*-*-osf*)
1542     with_stabs=yes;
1543     extra_host_args="${extra_host_args} --with-stabs"
1544     ;;
1545   esac
1546 fi
1547
1548 # hpux11 in 64bit mode has libraries in a weird place.  Arrange to find
1549 # them automatically.
1550 case "${host}" in
1551   hppa*64*-*-hpux11*)   
1552     extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
1553     ;;
1554 esac
1555
1556 # Some systems (e.g., one of the i386-aix systems the gas testers are
1557 # using) don't handle "\$" correctly, so don't use it here.
1558 tooldir='${exec_prefix}'/${target_alias}
1559 build_tooldir=${tooldir}
1560
1561 # Generate default definitions for YACC, M4, LEX and other programs that run
1562 # on the build machine.  These are used if the Makefile can't locate these
1563 # programs in objdir.
1564 MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
1565 AC_CHECK_PROGS([CONFIGURED_BISON], [bison], [$MISSING bison])
1566 AC_CHECK_PROGS([CONFIGURED_YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
1567 AC_CHECK_PROGS([CONFIGURED_M4], [gm4 gnum4 m4], [$MISSING m4])
1568 AC_CHECK_PROGS([CONFIGURED_FLEX], [flex], [$MISSING flex])
1569 AC_CHECK_PROGS([CONFIGURED_LEX], [flex lex], [$MISSING flex])
1570 AC_CHECK_PROGS([CONFIGURED_MAKEINFO], makeinfo, [$MISSING makeinfo])
1571
1572 # Create a .gdbinit file which runs the one in srcdir
1573 # and tells GDB to look there for source files.
1574
1575 if test -r ${srcdir}/.gdbinit ; then
1576   case ${srcdir} in
1577     .) ;;
1578     *) cat > ./.gdbinit <<EOF
1579 # ${NO_EDIT}
1580 dir ${srcdir}
1581 dir .
1582 source ${srcdir}/.gdbinit
1583 EOF
1584     ;;
1585   esac
1586 fi
1587
1588 # Make sure that the compiler is able to generate an executable.  If it
1589 # can't, we are probably in trouble.  We don't care whether we can run the
1590 # executable--we might be using a cross compiler--we only care whether it
1591 # can be created.  At this point the main configure script has set CC.
1592 we_are_ok=no
1593 echo "int main () { return 0; }" > conftest.c
1594 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1595 if test $? = 0 ; then
1596   if test -s conftest || test -s conftest.exe ; then
1597     we_are_ok=yes
1598   fi
1599 fi 
1600 case $we_are_ok in
1601   no)
1602     echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1603     echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1604     rm -f conftest*
1605     exit 1
1606     ;;
1607 esac
1608 rm -f conftest*
1609
1610 # The Solaris /usr/ucb/cc compiler does not appear to work.
1611 case "${host}" in
1612   sparc-sun-solaris2*)
1613       CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1614       if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
1615           could_use=
1616           test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1617           if test -d /opt/cygnus/bin ; then
1618               if test "$could_use" = "" ; then
1619                   could_use="/opt/cygnus/bin"
1620               else
1621                   could_use="$could_use or /opt/cygnus/bin"
1622               fi
1623           fi
1624         if test "$could_use" = "" ; then
1625             echo "Warning: compilation may fail because you're using"
1626             echo "/usr/ucb/cc.  You should change your PATH or CC "
1627             echo "variable and rerun configure."
1628         else
1629             echo "Warning: compilation may fail because you're using"
1630             echo "/usr/ucb/cc, when you should use the C compiler from"
1631             echo "$could_use.  You should change your"
1632             echo "PATH or CC variable and rerun configure."
1633         fi
1634       fi
1635   ;;
1636 esac
1637
1638 # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1639 # binutils tools will find libbfd.so.
1640 case "${enable_shared}" in
1641   no | "") SET_LIB_PATH= ;;
1642   *) SET_LIB_PATH="\$(REALLY_SET_LIB_PATH)" ;;
1643 esac
1644
1645 case "${host}" in
1646   *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
1647   *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1648 esac
1649
1650 # Record target_configdirs and the configure arguments for target and
1651 # build configuration in Makefile.
1652 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1653 build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
1654
1655 # Determine whether gdb needs tk/tcl or not.
1656 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1657 # and in that case we want gdb to be built without tk.  Ugh!
1658 # In fact I believe gdb is the *only* package directly dependent on tk,
1659 # so we should be able to put the 'maybe's in unconditionally and
1660 # leave out the maybe dependencies when enable_gdbtk is false.  I'm not
1661 # 100% sure that that's safe though.
1662
1663 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
1664 case "$enable_gdbtk" in
1665   no)
1666     GDB_TK="" ;;
1667   yes)
1668     GDB_TK="${gdb_tk}" ;;
1669   *)
1670     # Only add the dependency on gdbtk when GDBtk is part of the gdb
1671     # distro.  Eventually someone will fix this and move Insight, nee
1672     # gdbtk to a separate directory.
1673     if test -d ${srcdir}/gdb/gdbtk ; then
1674       GDB_TK="${gdb_tk}"
1675     else
1676       GDB_TK=""
1677     fi
1678     ;;
1679 esac
1680
1681 # Strip out unwanted targets.
1682
1683 # While at that, we remove Makefiles if we were started for recursive
1684 # configuration, so that the top-level Makefile reconfigures them,
1685 # like we used to do when configure itself was recursive.
1686
1687 # Loop over modules.  $extrasub must be used with care, limiting as
1688 # much as possible the usage of range addresses.  That's because autoconf
1689 # splits the sed script to overcome limits in the number of commands,
1690 # and relying on carefully-timed sed passes may turn out to be very hard
1691 # to maintain later.  In this particular case, you just have to be careful
1692 # not to nest @if/@endif pairs, because configure will not warn you at all.
1693
1694 AC_ARG_ENABLE([bootstrap],
1695 [  --enable-bootstrap[=lean]     Enable bootstrapping [no]],,
1696 enable_bootstrap=default)
1697
1698 # Issue errors and warnings for invalid/strange bootstrap combinations.
1699 case "$configdirs" in
1700   *gcc*) have_compiler=yes ;;
1701   *) have_compiler=no ;;
1702 esac
1703
1704 case "$have_compiler:$host:$target:$enable_bootstrap" in
1705   *:*:*:no) ;;
1706
1707   # Default behavior.  (We'll) enable bootstrap if we have a compiler
1708   # and we are in a native configuration.
1709   yes:$build:$build:default)
1710     # This will become 'yes'
1711     enable_bootstrap=no ;;
1712
1713   *:*:*:default)
1714     enable_bootstrap=no ;;
1715
1716   # We have a compiler and we are in a native configuration, bootstrap is ok
1717   yes:$build:$build:yes | yes:$build:$build:lean)
1718     ;;
1719
1720   # Other configurations, but we have a compiler.  Assume the user knows
1721   # what he's doing.
1722   yes:*:*:yes | yes:*:*:lean)
1723     AC_MSG_WARN([trying to bootstrap a cross compiler])
1724     ;;
1725
1726   # No compiler: if they passed --enable-bootstrap explicitly, fail
1727   no:*:*:yes | no:*:*:lean)
1728     AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
1729
1730   # Fail if wrong command line
1731   *)
1732     AC_MSG_ERROR([invalid option for --enable-bootstrap])
1733     ;;
1734 esac
1735
1736 # Adjust the toplevel makefile according to whether bootstrap was selected.
1737 case "$enable_bootstrap" in
1738   yes)
1739     bootstrap_lean='#'
1740     default_target=bootstrap
1741     bootstrap_suffix=bootstrap ;;
1742   lean)
1743     bootstrap_lean=''
1744     default_target=bootstrap
1745     bootstrap_suffix=bootstrap ;;
1746   no)
1747     default_target=all
1748     bootstrap_suffix=no-bootstrap ;;
1749 esac
1750 AC_SUBST(bootstrap_lean)
1751 AC_SUBST(default_target)
1752
1753 for module in ${build_configdirs} ; do
1754   if test -z "${no_recursion}" \
1755      && test -f ${build_subdir}/${module}/Makefile; then
1756     echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
1757     rm -f ${build_subdir}/${module}/Makefile
1758   fi
1759   extrasub="$extrasub
1760 /^@if build-$module\$/d
1761 /^@endif build-$module\$/d
1762 /^@if build-$module-$bootstrap_suffix\$/d
1763 /^@endif build-$module-$bootstrap_suffix\$/d"
1764 done
1765 for module in ${configdirs} ; do
1766   if test -z "${no_recursion}" \
1767      && test -f ${module}/Makefile; then
1768     echo 1>&2 "*** removing ${module}/Makefile to force reconfigure"
1769     rm -f ${module}/Makefile
1770   fi
1771   extrasub="$extrasub
1772 /^@if $module\$/d
1773 /^@endif $module\$/d
1774 /^@if $module-$bootstrap_suffix\$/d
1775 /^@endif $module-$bootstrap_suffix\$/d"
1776 done
1777 for module in ${target_configdirs} ; do
1778   if test -z "${no_recursion}" \
1779      && test -f ${target_subdir}/${module}/Makefile; then
1780     echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
1781     rm -f ${target_subdir}/${module}/Makefile
1782   fi
1783   extrasub="$extrasub
1784 /^@if target-$module\$/d
1785 /^@endif target-$module\$/d
1786 /^@if target-$module-$bootstrap_suffix\$/d
1787 /^@endif target-$module-$bootstrap_suffix\$/d"
1788 done
1789
1790 extrasub="$extrasub
1791 /^@if /,/^@endif /d"
1792
1793 # Create the serialization dependencies.  This uses a temporary file.
1794
1795 AC_ARG_ENABLE([serial-configure],
1796 [  --enable-serial-[{host,target,build}-]configure
1797                           Force sequential configuration of
1798                           sub-packages for the host, target or build
1799                           machine, or all sub-packages])
1800
1801 case ${enable_serial_configure} in
1802   yes)
1803     enable_serial_build_configure=yes
1804     enable_serial_host_configure=yes
1805     enable_serial_target_configure=yes
1806     ;;
1807 esac
1808
1809 # These force 'configure's to be done one at a time, to avoid problems
1810 # with contention over a shared config.cache.
1811 rm -f serdep.tmp
1812 echo '# serdep.tmp' > serdep.tmp
1813 olditem=
1814 test "x${enable_serial_build_configure}" = xyes &&
1815 for item in ${build_configdirs} ; do
1816   case ${olditem} in
1817     "") ;;
1818     *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
1819   esac
1820   olditem=${item}
1821 done
1822 olditem=
1823 test "x${enable_serial_host_configure}" = xyes &&
1824 for item in ${configdirs} ; do
1825   case ${olditem} in
1826     "") ;;
1827     *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
1828   esac
1829   olditem=${item}
1830 done
1831 olditem=
1832 test "x${enable_serial_target_configure}" = xyes &&
1833 for item in ${target_configdirs} ; do
1834   case ${olditem} in
1835     "") ;;
1836     *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
1837   esac
1838   olditem=${item}
1839 done
1840 serialization_dependencies=serdep.tmp
1841 AC_SUBST_FILE(serialization_dependencies)
1842
1843 # Base args.  Strip norecursion, cache-file, srcdir, host, build,
1844 # target and nonopt.  These are the ones we might not want to pass
1845 # down to subconfigures.  Also strip program-prefix, program-suffix,
1846 # and program-transform-name, so that we can pass down a consistent
1847 # program-transform-name.  If autoconf has put single quotes around
1848 # any of these arguments (because they contain shell metacharacters)
1849 # then this will fail; in practice this only happens for
1850 # --program-transform-name, so be sure to override --program-transform-name
1851 # at the end of the argument list.
1852 # These will be expanded by make, so quote '$'.
1853 cat <<\EOF_SED > conftestsed
1854 s/ --no[[^ ]]*/ /g
1855 s/ --c[[a-z-]]*[[= ]][[^ ]]*//g
1856 s/ --sr[[a-z-]]*[[= ]][[^ ]]*//g
1857 s/ --ho[[a-z-]]*[[= ]][[^ ]]*//g
1858 s/ --bu[[a-z-]]*[[= ]][[^ ]]*//g
1859 s/ --t[[a-z-]]*[[= ]][[^ ]]*//g
1860 s/ --program-[[pst]][[a-z-]]*[[= ]][[^ ]]*//g
1861 s/ -cache-file[[= ]][[^ ]]*//g
1862 s/ -srcdir[[= ]][[^ ]]*//g
1863 s/ -host[[= ]][[^ ]]*//g
1864 s/ -build[[= ]][[^ ]]*//g
1865 s/ -target[[= ]][[^ ]]*//g
1866 s/ -program-prefix[[= ]][[^ ]]*//g
1867 s/ -program-suffix[[= ]][[^ ]]*//g
1868 s/ -program-transform-name[[= ]][[^ ]]*//g
1869 s/ [[^' -][^ ]*] / /
1870 s/^ *//;s/ *$//
1871 s,\$,$$,g
1872 EOF_SED
1873 sed -f conftestsed <<EOF_SED > conftestsed.out
1874  ${ac_configure_args} 
1875 EOF_SED
1876 baseargs=`cat conftestsed.out`
1877 rm -f conftestsed conftestsed.out
1878
1879 # Add in --program-transform-name, after --program-prefix and
1880 # --program-suffix have been applied to it.  Autoconf has already
1881 # doubled dollar signs and backslashes in program_transform_name; we want
1882 # the backslashes un-doubled, and then the entire thing wrapped in single
1883 # quotes, because this will be expanded first by make and then by the shell. 
1884 # Also, because we want to override the logic in subdir configure scripts to
1885 # choose program_transform_name, replace any s,x,x, with s,y,y,.
1886 sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
1887 ${program_transform_name}
1888 EOF_SED
1889 gcc_transform_name=`cat conftestsed.out`
1890 rm -f conftestsed.out
1891 baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
1892
1893 # For the build-side libraries, we just need to pretend we're native,
1894 # and not use the same cache file.  Multilibs are neither needed nor
1895 # desired.
1896 build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}"
1897
1898 # For host modules, accept cache file option, or specification as blank.
1899 case "${cache_file}" in
1900 "") # empty
1901   cache_file_option="" ;;
1902 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
1903   cache_file_option="--cache-file=${cache_file}" ;;
1904 *) # relative path
1905   cache_file_option="--cache-file=../${cache_file}" ;;
1906 esac
1907
1908 # Host dirs don't like to share a cache file either, horribly enough.
1909 # This seems to be due to autoconf 2.5x stupidity.
1910 host_configargs="--cache-file=./config.cache --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}"
1911
1912 target_configargs=${baseargs}
1913
1914 # Passing a --with-cross-host argument lets the target libraries know
1915 # whether they are being built with a cross-compiler or being built
1916 # native.  However, it would be better to use other mechanisms to make the
1917 # sorts of decisions they want to make on this basis.  Please consider
1918 # this option to be deprecated.  FIXME.
1919 if test x${is_cross_compiler} = xyes ; then
1920   target_configargs="--with-cross-host=${host_alias} ${target_configargs}"
1921 fi
1922
1923 # Default to --enable-multilib.
1924 if test x${enable_multilib} = x ; then
1925   target_configargs="--enable-multilib ${target_configargs}"
1926 fi
1927
1928 # Pass --with-newlib if appropriate.  Note that target_configdirs has
1929 # changed from the earlier setting of with_newlib.
1930 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
1931   target_configargs="--with-newlib ${target_configargs}"
1932 fi
1933
1934 # Different target subdirs use different values of certain variables
1935 # (notably CXX).  Worse, multilibs use *lots* of different values.
1936 # Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
1937 # it doesn't automatically accept command-line overrides of them.
1938 # This means it's not safe for target subdirs to share a cache file,
1939 # which is disgusting, but there you have it.  Hopefully this can be
1940 # fixed in future.  It's still worthwhile to use a cache file for each
1941 # directory.  I think.
1942
1943 # Pass the appropriate --host, --build, and --cache-file arguments.
1944 target_configargs="--cache-file=./config.cache --host=${target_alias} --build=${build_alias} ${target_configargs}"
1945
1946 # provide a proper gxx_include_dir.
1947 # Note, if you change the default, make sure to fix both here and in
1948 # the gcc and libstdc++-v3 subdirectories.
1949 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
1950 case "${with_gxx_include_dir}" in
1951   yes)
1952     AC_MSG_ERROR([--with-gxx-include-dir=[[dir]] requires a directory])
1953     ;;
1954   no | "")
1955     case "${enable_version_specific_runtime_libs}" in
1956       yes) gxx_include_dir='${libsubdir}/include/c++' ;;
1957       *)
1958         . ${srcdir}/config.if
1959         gxx_include_dir='${prefix}/include/'${libstdcxx_incdir} ;;
1960     esac ;;
1961   *) gxx_include_dir=${with_gxx_include_dir} ;;
1962 esac
1963
1964 FLAGS_FOR_TARGET=
1965 case " $target_configdirs " in
1966  *" newlib "*)
1967   case " $target_configargs " in
1968   *" --with-newlib "*)
1969    case "$target" in
1970    *-cygwin*)
1971      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' ;;
1972    esac
1973
1974    # If we're not building GCC, don't discard standard headers.
1975    if test -d ${srcdir}/gcc; then
1976      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
1977
1978      if test "${build}" != "${host}"; then
1979        # On Canadian crosses, CC_FOR_TARGET will have already been set
1980        # by `configure', so we won't have an opportunity to add -Bgcc/
1981        # to it.  This is right: we don't want to search that directory
1982        # for binaries, but we want the header files in there, so add
1983        # them explicitly.
1984        FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
1985
1986        # Someone might think of using the pre-installed headers on
1987        # Canadian crosses, in case the installed compiler is not fully
1988        # compatible with the compiler being built.  In this case, it
1989        # would be better to flag an error than risking having
1990        # incompatible object files being constructed.  We can't
1991        # guarantee that an error will be flagged, but let's hope the
1992        # compiler will do it, when presented with incompatible header
1993        # files.
1994      fi
1995    fi
1996
1997    case "${target}-${is_cross_compiler}" in
1998    i[[3456789]]86-*-linux*-no)
1999       # Here host == target, so we don't need to build gcc,
2000       # so we don't want to discard standard headers.
2001       FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
2002       ;;
2003    *)
2004       # If we're building newlib, use its generic headers last, but search
2005       # for any libc-related directories first (so make it the last -B
2006       # switch).
2007       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2008       ;;
2009    esac
2010    ;;
2011   esac
2012   ;;
2013 esac
2014
2015 # Allow the user to override the flags for
2016 # our build compiler if desired.
2017 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2018
2019 # On Canadian crosses, we'll be searching the right directories for
2020 # the previously-installed cross compiler, so don't bother to add
2021 # flags for directories within the install tree of the compiler
2022 # being built; programs in there won't even run.
2023 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
2024   # Search for pre-installed headers if nothing else fits.
2025   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
2026 fi
2027
2028 if test "x${use_gnu_ld}" = x &&
2029    echo " ${configdirs} " | grep " ld " > /dev/null ; then
2030   # Arrange for us to find uninstalled linker scripts.
2031   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
2032 fi
2033
2034 if test "x${CC_FOR_TARGET+set}" = xset; then
2035   :
2036 elif test -d ${srcdir}/gcc; then
2037   CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
2038 elif test "$host" = "$target"; then
2039   CC_FOR_TARGET='$(CC)'
2040 else
2041   CC_FOR_TARGET=`echo gcc | sed "${program_transform_name}"`
2042 fi
2043 CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)'
2044
2045 if test "x${GCJ_FOR_TARGET+set}" = xset; then
2046   :
2047 elif test -d ${srcdir}/gcc; then
2048   GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/'
2049 elif test "$host" = "$target"; then
2050   GCJ_FOR_TARGET='gcj'
2051 else
2052   GCJ_FOR_TARGET=`echo gcj | sed "${program_transform_name}"`
2053 fi
2054 GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)'
2055
2056 if test "x${GFORTRAN_FOR_TARGET+set}" = xset; then
2057   :
2058 elif test -d ${srcdir}/gcc; then
2059   GFORTRAN_FOR_TARGET='$$r/gcc/gfortran -B$$r/gcc/'
2060 elif test "$host" = "$target"; then
2061   GFORTRAN_FOR_TARGET='gfortran'
2062 else
2063   GFORTRAN_FOR_TARGET=`echo gfortran | sed "${program_transform_name}"`
2064 fi
2065 case $GFORTRAN_FOR_TARGET in
2066 *' $(FLAGS_FOR_TARGET)') ;;
2067 *) GFORTRAN_FOR_TARGET=$GFORTRAN_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
2068 esac
2069
2070 # Don't use libstdc++-v3's flags to configure/build itself.
2071 libstdcxx_flags='`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'
2072 raw_libstdcxx_flags='-L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
2073
2074 if test "x${CXX_FOR_TARGET+set}" = xset; then
2075   if test "x${RAW_CXX_FOR_TARGET+set}" != xset; then
2076     RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
2077   fi
2078 elif test -d ${srcdir}/gcc; then
2079   # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead
2080   # of g++ for linking C++ or Java, because g++ has -shared-libgcc by
2081   # default whereas gcc does not.
2082   # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for
2083   # all other cases.
2084   CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
2085   RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags
2086 elif test "$host" = "$target"; then
2087   CXX_FOR_TARGET='$(CXX)'
2088   RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
2089 else
2090   CXX_FOR_TARGET=`echo c++ | sed "${program_transform_name}"`
2091   RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
2092 fi
2093 CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
2094 RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
2095
2096 qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'`
2097 qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'`
2098
2099 # We want to defer the evaluation of `cmd`s and shell variables in
2100 # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
2101 # bootstrap.  We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single
2102 # quotes, but we still have to duplicate `$'s so that shell variables
2103 # can be expanded by the nested make as shell variables, not as make
2104 # macros.
2105 qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'`
2106 qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'`
2107
2108 # Wrap CC_FOR_TARGET and friends, for certain types of builds.
2109 CC_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}"
2110 GCJ_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}"
2111 GFORTRAN_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GFORTRAN_FOR_TARGET}"
2112 CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}"
2113 RAW_CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}"
2114 CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}"
2115 RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}"
2116
2117 # Makefile fragments.
2118 for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2119 do
2120   eval fragval=\$$frag
2121   if test $fragval != /dev/null; then
2122     eval $frag=${srcdir}/$fragval
2123   fi
2124 done
2125 AC_SUBST_FILE(host_makefile_frag)
2126 AC_SUBST_FILE(target_makefile_frag)
2127 AC_SUBST_FILE(alphaieee_frag)
2128 AC_SUBST_FILE(ospace_frag)
2129
2130 # Miscellanea: directories, flags, etc.
2131 AC_SUBST(SET_LIB_PATH)
2132 AC_SUBST(RPATH_ENVVAR)
2133 AC_SUBST(BUILD_PREFIX)
2134 AC_SUBST(BUILD_PREFIX_1)
2135 AC_SUBST(gcc_version_trigger)
2136 AC_SUBST(gcc_version)
2137 AC_SUBST(tooldir)
2138 AC_SUBST(build_tooldir)
2139 AC_SUBST(GDB_TK)
2140 AC_SUBST(gxx_include_dir)
2141 AC_SUBST(libstdcxx_incdir)
2142
2143 # Build module lists & subconfigure args.
2144 AC_SUBST(build_configargs)
2145 AC_SUBST(build_configdirs)
2146
2147 # Host module lists & subconfigure args.
2148 AC_SUBST(host_configargs)
2149 AC_SUBST(configdirs)
2150
2151 # Target module lists & subconfigure args.
2152 AC_SUBST(target_configargs)
2153 AC_SUBST(target_configdirs)
2154
2155 # Build tools.
2156 AC_SUBST(CC_FOR_BUILD)
2157 AC_SUBST(config_shell)
2158
2159 # Host tools.
2160 NCN_STRICT_CHECK_TOOL(AR, ar)
2161 NCN_STRICT_CHECK_TOOL(AS, as)
2162 NCN_STRICT_CHECK_TOOL(DLLTOOL, dlltool)
2163 NCN_STRICT_CHECK_TOOL(LD, ld)
2164 NCN_STRICT_CHECK_TOOL(NM, nm)
2165 NCN_STRICT_CHECK_TOOL(RANLIB, ranlib, :)
2166 NCN_STRICT_CHECK_TOOL(WINDRES, windres)
2167 NCN_STRICT_CHECK_TOOL(OBJCOPY, objcopy)
2168 NCN_STRICT_CHECK_TOOL(OBJDUMP, objdump)
2169 AC_SUBST(CC)
2170 AC_SUBST(CXX)
2171 AC_SUBST(CFLAGS)
2172 AC_SUBST(CFLAGS_FOR_BUILD)
2173 AC_SUBST(CXXFLAGS)
2174
2175 # Target tools.
2176 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_AR_FOR_TARGET, ar)
2177 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_AS_FOR_TARGET, as)
2178 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_DLLTOOL_FOR_TARGET, dlltool)
2179 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_LD_FOR_TARGET, ld)
2180 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_NM_FOR_TARGET, nm)
2181 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_RANLIB_FOR_TARGET, ranlib, :)
2182 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_WINDRES_FOR_TARGET, windres)
2183
2184 AC_SUBST(GCC_FOR_TARGET)
2185 AC_SUBST(FLAGS_FOR_TARGET)
2186 AC_SUBST(CC_FOR_TARGET)
2187 AC_SUBST(GCJ_FOR_TARGET)
2188 AC_SUBST(GFORTRAN_FOR_TARGET)
2189 AC_SUBST(CXX_FOR_TARGET)
2190 AC_SUBST(RAW_CXX_FOR_TARGET)
2191 AC_SUBST(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)
2192 AC_SUBST(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)
2193
2194 # Fix up target tools.
2195 if test "x${build}" = "x${host}" ; then
2196   # In this case, the newly built tools can and should be used,
2197   # so we override the results of the autoconf tests.
2198   # This should really only happen when the tools are actually being built,
2199   # but that's a further refinement.  The new build scheme, where
2200   # tools are built into a structure paralleling where they're installed,
2201   # should also eliminate all of this cleanly.
2202   AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)"
2203   AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)"
2204   DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)"
2205   LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)"
2206   NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)"
2207   RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)"
2208   WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)"
2209 else
2210   # Just use the ones we found.
2211   AR_FOR_TARGET="\$(CONFIGURED_AR_FOR_TARGET)"
2212   AS_FOR_TARGET="\$(CONFIGURED_AS_FOR_TARGET)"
2213   DLLTOOL_FOR_TARGET="\$(CONFIGURED_DLLTOOL_FOR_TARGET)"
2214   LD_FOR_TARGET="\$(CONFIGURED_LD_FOR_TARGET)"
2215   NM_FOR_TARGET="\$(CONFIGURED_NM_FOR_TARGET)"
2216   RANLIB_FOR_TARGET="\$(CONFIGURED_RANLIB_FOR_TARGET)"
2217   WINDRES_FOR_TARGET="\$(CONFIGURED_WINDRES_FOR_TARGET)"  
2218 fi
2219 AC_SUBST(AR_FOR_TARGET)
2220 AC_SUBST(AS_FOR_TARGET)
2221 AC_SUBST(DLLTOOL_FOR_TARGET)
2222 AC_SUBST(LD_FOR_TARGET)
2223 AC_SUBST(NM_FOR_TARGET)
2224 AC_SUBST(RANLIB_FOR_TARGET)
2225 AC_SUBST(WINDRES_FOR_TARGET)
2226
2227 # Certain tools may need extra flags.
2228 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2229 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2230 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
2231
2232 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2233 AC_ARG_ENABLE(maintainer-mode,
2234 [  --enable-maintainer-mode enable make rules and dependencies not useful
2235                           (and sometimes confusing) to the casual installer],
2236       USE_MAINTAINER_MODE=$enableval,
2237       USE_MAINTAINER_MODE=no)
2238 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2239 AC_SUBST(MAINTAINER_MODE_TRUE)
2240 AC_SUBST(MAINTAINER_MODE_FALSE)
2241 if test "$USE_MAINTAINER_MODE" = yes; then
2242   MAINTAINER_MODE_TRUE=
2243   MAINTAINER_MODE_FALSE='#'
2244 else
2245   MAINTAINER_MODE_TRUE='#'
2246   MAINTAINER_MODE_FALSE=
2247 fi      
2248 MAINT=$MAINTAINER_MODE_TRUE
2249 AC_SUBST(MAINT)dnl
2250
2251 # ---------------------
2252 # GCC bootstrap support
2253 # ---------------------
2254
2255 # Stage specific cflags for build.
2256 stage1_cflags="-g"
2257 case $build in
2258   vax-*-*)
2259     case ${GCC} in
2260       yes) stage1_cflags="-g -Wa,-J" ;;
2261       *) stage1_cflags="-g -J" ;;
2262     esac ;;
2263   powerpc-*-darwin*)
2264     # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
2265     # sources; use -no-cpp-precomp to get to GNU cpp.
2266     # Apple's GCC has bugs in designated initializer handling, so disable
2267     # that too.
2268     stage1_cflags="-g -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
2269     ;;
2270 esac
2271 AC_SUBST(stage1_cflags)
2272
2273 # It makes debugging easier if we create as symlinks the stage directories
2274 # gcc for stageN-gcc and stagePREV-gcc for stage(N-1).  In case this is not
2275 # possible, however, we can resort to mv.
2276 AC_CACHE_CHECK([if symbolic links between directories work],
2277 [gcc_cv_prog_ln_s_dir],
2278 [if test "${LN_S}" = "ln -s" \
2279    && mkdir confdir.s1 \
2280    && ln -s confdir.s1 confdir.s2 \
2281    && echo timestamp1 > confdir.s1/conftest.1 \
2282    && cmp confdir.s1/conftest.1 confdir.s2/conftest.1 \
2283    && echo timestamp2 > confdir.s2/conftest.2 \
2284    && cmp confdir.s1/conftest.2 confdir.s1/conftest.2 \
2285    && rm -f confdir.s2; then
2286   gcc_cv_prog_ln_s_dir=yes
2287 else
2288   gcc_cv_prog_ln_s_dir=yes
2289 fi
2290 rm -rf confdir.s1 confdir.s2])
2291
2292 case ${gcc_cv_prog_ln_s_dir} in
2293   yes)
2294     CREATE_LINK_TO_DIR='ln -s $$1 $$2'
2295     UNDO_LINK_TO_DIR='rm -f $$1' ;;
2296   *)
2297     CREATE_LINK_TO_DIR='mv $$1 $$2'
2298     UNDO_LINK_TO_DIR='mv $$1 $$2' ;;
2299 esac
2300 AC_SUBST(CREATE_LINK_TO_DIR)
2301 AC_SUBST(UNDO_LINK_TO_DIR)
2302
2303 # Enable -Werror in bootstrap stage2 and later.
2304 # Change the default to "no" on release branches.
2305 AC_ARG_ENABLE(werror,
2306 [  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
2307 [enable_werror=yes])
2308 case ${enable_werror} in
2309   yes) stage2_werror_flag="--enable-werror-always" ;;
2310   *) stage2_werror_flag="" ;;
2311 esac
2312 AC_SUBST(stage2_werror_flag)
2313
2314 AC_OUTPUT(Makefile)