OSDN Git Service

* io/unit.c: Separate copyright years by ','.
[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   *-*-lynxos*)
943     # /bin/cc is less than useful for our purposes.  Always use GCC
944     tentative_cc="/bin/gcc"
945     ;;
946   *-*-sysv4*)
947     host_makefile_frag="config/mh-sysv4"
948     ;;
949 esac
950 fi
951
952 # If we aren't going to be using gcc, see if we can extract a definition
953 # of CC from the fragment.
954 # Actually, use the 'pre-extracted' version above.
955 if test -z "${CC}" && test "${build}" = "${host}" ; then
956   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
957   found=
958   for dir in $PATH; do
959     test -z "$dir" && dir=.
960     if test -f $dir/gcc; then
961       found=yes
962       break
963     fi
964   done
965   IFS="$save_ifs"
966   if test -z "${found}" && test -n "${tentative_cc}" ; then
967     CC=$tentative_cc
968   fi
969 fi
970
971 if test "${build}" != "${host}" ; then
972   # If we are doing a Canadian Cross, in which the host and build systems
973   # are not the same, we set reasonable default values for the tools.
974
975   CC=${CC-${host_alias}-gcc}
976   CFLAGS=${CFLAGS-"-g -O2"}
977   CXX=${CXX-${host_alias}-c++}
978   CXXFLAGS=${CXXFLAGS-"-g -O2"}
979   CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
980   CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
981   CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
982   GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
983   GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
984   BUILD_PREFIX=${build_alias}-
985   BUILD_PREFIX_1=${build_alias}-
986
987 else
988   # Set reasonable default values for some tools even if not Canadian.
989   # Of course, these are different reasonable default values, originally
990   # specified directly in the Makefile.
991   # We don't export, so that autoconf can do its job.
992   # Note that all these settings are above the fragment inclusion point
993   # in Makefile.in, so can still be overridden by fragments.
994   # This is all going to change when we autoconfiscate...
995
996   CC_FOR_BUILD="\$(CC)"
997   GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
998   BUILD_PREFIX=
999   BUILD_PREFIX_1=loser-
1000
1001   AC_PROG_CC
1002
1003   # We must set the default linker to the linker used by gcc for the correct
1004   # operation of libtool.  If LD is not defined and we are using gcc, try to
1005   # set the LD default to the ld used by gcc.
1006   if test -z "$LD"; then
1007     if test "$GCC" = yes; then
1008       case $build in
1009       *-*-mingw*)
1010         gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1011       *)
1012         gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1013       esac
1014       case $gcc_prog_ld in
1015       # Accept absolute paths.
1016       [[\\/]* | [A-Za-z]:[\\/]*)]
1017         LD="$gcc_prog_ld" ;;
1018       esac
1019     fi
1020   fi
1021
1022   CXX=${CXX-"c++"}
1023   CFLAGS=${CFLAGS-"-g"}
1024   CXXFLAGS=${CXXFLAGS-"-g -O2"}
1025 fi
1026
1027 ACX_PROG_GNAT
1028 ACX_PROG_CMP_IGNORE_INITIAL
1029
1030 # Check for GMP and MPFR
1031 gmplibs=
1032 gmpinc=
1033 have_gmp=yes
1034 # Specify a location for mpfr
1035 # check for this first so it ends up on the link line before gmp.
1036 AC_ARG_WITH(mpfr-dir, [  --with-mpfr-dir=PATH    Specify source directory for MPFR library])
1037
1038 if test "x$with_mpfr_dir" != x; then
1039   gmpinc="-I$with_mpfr_dir/mpfr"
1040   gmplibs="$with_mpfr_dir/libmpfr.a"
1041 else
1042   gmplibs="-lmpfr"
1043 fi
1044
1045 AC_ARG_WITH(mpfr, [  --with-mpfr=PATH        Specify directory for installed MPFR library])
1046
1047 if test "x$with_mpfr" != x; then
1048   gmplibs="-L$with_mpfr/lib $gmplibs"
1049   gmpinc="-I$with_mpfr/include"
1050 fi
1051
1052 # Specify a location for gmp
1053 AC_ARG_WITH(gmp-dir, [  --with-gmp-dir=PATH     Specify source directory for GMP library])
1054
1055 if test "x$with_gmp_dir" != x; then
1056   gmpinc="$gmpinc -I$with_gmp_dir"
1057   if test -f "$with_gmp_dir/.libs/libgmp.a"; then
1058     gmplibs="$gmplibs $with_gmp_dir/.libs/libgmp.a"
1059   elif test -f "$with_gmp_dir/_libs/libgmp.a"; then
1060     gmplibs="$gmplibs $with_gmp_dir/_libs/libgmp.a"
1061   fi
1062   # One of the later tests will catch the error if neither library is present.
1063 else
1064   gmplibs="$gmplibs -lgmp"
1065 fi
1066
1067 AC_ARG_WITH(gmp, [  --with-gmp=PATH         Specify directory for installed GMP library])
1068
1069 if test "x$with_gmp" != x; then
1070   gmplibs="-L$with_gmp/lib $gmplibs"
1071   gmpinc="-I$with_gmp/include $gmpinc"
1072 fi
1073
1074 saved_CFLAGS="$CFLAGS"
1075 CFLAGS="$CFLAGS $gmpinc"
1076 # Check GMP actually works
1077 AC_MSG_CHECKING([for correct version of gmp.h])
1078 AC_TRY_COMPILE([#include "gmp.h"],[
1079 #if __GNU_MP_VERSION < 3
1080 choke me
1081 #endif
1082 ], [AC_MSG_RESULT([yes])],
1083   [AC_MSG_RESULT([no]); have_gmp=no])
1084
1085 if test x"$have_gmp" = xyes; then
1086   AC_MSG_CHECKING([for MPFR])
1087
1088   saved_LIBS="$LIBS"
1089   LIBS="$LIBS $gmplibs"
1090   AC_TRY_LINK([#include <gmp.h>
1091 #include <mpfr.h>], [mpfr_t n; mpfr_init(n);],
1092     [AC_MSG_RESULT([yes])],  [AC_MSG_RESULT([no]); have_gmp=no])
1093   LIBS="$saved_LIBS"
1094   CFLAGS="$saved_CFLAGS"
1095 fi
1096
1097 # Flags needed for both GMP and/or MPFR
1098 AC_SUBST(gmplibs)
1099 AC_SUBST(gmpinc)
1100
1101 # By default, C is the only stage 1 language.
1102 stage1_languages=c
1103 AC_SUBST(stage1_languages)
1104
1105 # Figure out what language subdirectories are present.
1106 # Look if the user specified --enable-languages="..."; if not, use
1107 # the environment variable $LANGUAGES if defined. $LANGUAGES might
1108 # go away some day.
1109 # NB:  embedded tabs in this IF block -- do not untabify
1110 if test -d ${srcdir}/gcc; then
1111   if test x"${enable_languages+set}" != xset; then
1112     if test x"${LANGUAGES+set}" = xset; then
1113       enable_languages="${LANGUAGES}"
1114         echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1115     else
1116       enable_languages=all
1117     fi
1118   else
1119     if test x"${enable_languages}" = x ||
1120        test x"${enable_languages}" = xyes;
1121        then
1122       echo configure.in: --enable-languages needs at least one language argument 1>&2
1123       exit 1
1124     fi
1125   fi
1126   enable_languages=`echo "${enable_languages}" | sed -e 's/[[   ,]][[   ,]]*/,/g' -e 's/,$//'`
1127
1128   # First scan to see if an enabled language requires some other language.
1129   # We assume that a given config-lang.in will list all the language
1130   # front ends it requires, even if some are required indirectly.
1131   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1132     case ${lang_frag} in
1133       ..) ;;
1134       # The odd quoting in the next line works around
1135       # an apparent bug in bash 1.12 on linux.
1136       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1137       *)
1138         # From the config-lang.in, get $language, $lang_requires
1139         language=
1140         lang_requires=
1141         . ${lang_frag}
1142         for other in ${lang_requires} ; do
1143           case ,${enable_languages}, in
1144             *,$other,*) ;;
1145             *,all,*) ;;
1146             *,$language,*)
1147               echo " \`$other' language required by \`$language'; enabling" 1>&2
1148               enable_languages="${enable_languages},${other}"
1149               ;;
1150           esac
1151         done
1152         ;;
1153     esac
1154   done
1155
1156   new_enable_languages=c
1157   missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1158   potential_languages=c
1159
1160   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1161     case ${lang_frag} in
1162       ..) ;;
1163       # The odd quoting in the next line works around
1164       # an apparent bug in bash 1.12 on linux.
1165       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1166       *)
1167         # From the config-lang.in, get $language, $target_libs, 
1168         # $lang_dirs, $boot_language, and $build_by_default
1169         language=
1170         target_libs=
1171         lang_dirs=
1172         boot_language=
1173         build_by_default=
1174         need_gmp=
1175         . ${lang_frag}
1176         potential_languages="${potential_languages},${language}"
1177         # This is quite sensitive to the ordering of the case statement arms.
1178         case ,${enable_languages},:${language}:${have_gnat}:${build_by_default} in
1179           *::*:*)
1180             echo "${lang_frag} doesn't set \$language." 1>&2
1181             exit 1
1182             ;;
1183           *:ada:no:*)
1184             # Ada was requested with no preexisting GNAT.  Disable unconditionally.
1185             add_this_lang=no
1186             ;;
1187           *,${language},*:*:*:*)
1188             # Language was explicitly selected; include it.
1189             add_this_lang=yes
1190             ;;
1191           *,all,*:*:*:no)
1192             # 'all' was selected, but this is not a default language
1193             # so do not include it.
1194             add_this_lang=no
1195             ;;
1196           *,all,*:*:*:*)
1197             # 'all' was selected and this is a default language; include it.
1198             add_this_lang=yes
1199             ;;
1200           *)
1201             add_this_lang=no
1202             ;;
1203         esac
1204
1205         # Disable languages that need GMP if it isn't available.
1206         case ,${enable_languages},:${have_gmp}:${need_gmp} in
1207           *,${language},*:no:yes)
1208             # Specifically requested language; tell them.
1209             AC_MSG_ERROR([GMP with MPFR support is required to build $language])
1210             ;;
1211           *:no:yes)
1212             # Silently disable.
1213             add_this_lang=no
1214             ;;
1215         esac
1216         
1217         case $add_this_lang in
1218           no)
1219             # Remove language-dependent dirs.
1220             eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1221             ;;
1222           *)
1223             new_enable_languages="$new_enable_languages,$language"
1224             missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1225             case ${boot_language} in
1226               yes)
1227                 # Add to (comma-separated) list of stage 1 languages.
1228                 stage1_languages="${stage1_languages},${language}"
1229                 ;;
1230             esac
1231             ;;
1232         esac
1233         ;;
1234     esac
1235   done
1236
1237   missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
1238   if test "x$missing_languages" != x; then
1239     AC_MSG_ERROR([
1240 The following requested languages were not found: ${missing_languages}
1241 The available languages are: ${potential_languages}])
1242   fi
1243
1244   if test "x$new_enable_languages" != "x$enable_languages"; then
1245     echo The following languages will be built: ${new_enable_languages}
1246   fi
1247   enable_languages="$new_enable_languages"
1248   ac_configure_args=`echo " $ac_configure_args" | sed -e 's/ --enable-languages=[[^ ]]*//' -e 's/$/ --enable-languages='"$enable_languages"/ `
1249 fi
1250
1251 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
1252 # $target_configdirs.
1253 # If we have the source for $noconfigdirs entries, add them to $notsupp.
1254
1255 notsupp=""
1256 for dir in . $skipdirs $noconfigdirs ; do
1257   dirname=`echo $dir | sed -e s/target-//g`
1258   if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1259     configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1260     if test -r $srcdir/$dirname/configure ; then
1261       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1262         true
1263       else
1264         notsupp="$notsupp $dir"
1265       fi
1266     fi
1267   fi
1268   if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1269     target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1270     if test -r $srcdir/$dirname/configure ; then
1271       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1272         true
1273       else
1274         notsupp="$notsupp $dir"
1275       fi
1276     fi
1277   fi
1278 done
1279
1280 # Sometimes the tools are distributed with libiberty but with no other
1281 # libraries.  In that case, we don't want to build target-libiberty.
1282 if test -n "${target_configdirs}" ; then
1283   others=
1284   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1285     if test "$i" != "libiberty" ; then
1286       if test -r $srcdir/$i/configure ; then
1287         others=yes;
1288         break;
1289       fi
1290     fi
1291   done
1292   if test -z "${others}" ; then
1293     target_configdirs=
1294   fi
1295 fi
1296
1297 # Quietly strip out all directories which aren't configurable in this tree.
1298 # This relies on all configurable subdirectories being autoconfiscated, which
1299 # is now the case.
1300 build_configdirs_all="$build_configdirs"
1301 build_configdirs=
1302 for i in ${build_configdirs_all} ; do
1303   j=`echo $i | sed -e s/build-//g` 
1304   if test -f ${srcdir}/$j/configure ; then
1305     build_configdirs="${build_configdirs} $i"
1306   fi
1307 done
1308
1309 configdirs_all="$configdirs"
1310 configdirs=
1311 for i in ${configdirs_all} ; do
1312   if test -f ${srcdir}/$i/configure ; then
1313     configdirs="${configdirs} $i"
1314   fi
1315 done
1316
1317 target_configdirs_all="$target_configdirs"
1318 target_configdirs=
1319 for i in ${target_configdirs_all} ; do
1320   j=`echo $i | sed -e s/target-//g` 
1321   if test -f ${srcdir}/$j/configure ; then
1322     target_configdirs="${target_configdirs} $i"
1323   fi
1324 done
1325
1326 # Produce a warning message for the subdirs we can't configure.
1327 # This isn't especially interesting in the Cygnus tree, but in the individual
1328 # FSF releases, it's important to let people know when their machine isn't
1329 # supported by the one or two programs in a package.
1330
1331 if test -n "${notsupp}" && test -z "${norecursion}" ; then
1332   # If $appdirs is non-empty, at least one of those directories must still
1333   # be configured, or we error out.  (E.g., if the gas release supports a
1334   # specified target in some subdirs but not the gas subdir, we shouldn't
1335   # pretend that all is well.)
1336   if test -n "$appdirs" ; then
1337     for dir in $appdirs ; do
1338       if test -r $dir/Makefile.in ; then
1339         if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1340           appdirs=""
1341           break
1342         fi
1343         if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
1344           appdirs=""
1345           break
1346         fi
1347       fi
1348     done
1349     if test -n "$appdirs" ; then
1350       echo "*** This configuration is not supported by this package." 1>&2
1351       exit 1
1352     fi
1353   fi
1354   # Okay, some application will build, or we don't care to check.  Still
1355   # notify of subdirs not getting built.
1356   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1357   echo "    ${notsupp}" 1>&2
1358   echo "    (Any other directories should still work fine.)" 1>&2
1359 fi
1360
1361 case "$host" in
1362   *msdosdjgpp*)
1363     enable_gdbtk=no ;;
1364 esac
1365
1366 copy_dirs=
1367
1368 # Handle --with-headers=XXX.  If the value is not "yes", the contents of
1369 # the named directory are copied to $(tooldir)/sys-include.
1370 if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
1371   if test x${is_cross_compiler} = xno ; then
1372     echo 1>&2 '***' --with-headers is only supported when cross compiling
1373     exit 1
1374   fi
1375   if test x"${with_headers}" != xyes ; then
1376     case "${exec_prefixoption}" in
1377     "") x=${prefix} ;;
1378     *) x=${exec_prefix} ;;
1379     esac
1380     copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
1381   fi
1382 fi
1383
1384 # Handle --with-libs=XXX.  If the value is not "yes", the contents of
1385 # the name directories are copied to $(tooldir)/lib.  Multiple directories
1386 # are permitted.
1387 if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
1388   if test x${is_cross_compiler} = xno ; then
1389     echo 1>&2 '***' --with-libs is only supported when cross compiling
1390     exit 1
1391   fi
1392   if test x"${with_libs}" != xyes ; then
1393     # Copy the libraries in reverse order, so that files in the first named
1394     # library override files in subsequent libraries.
1395     case "${exec_prefixoption}" in
1396     "") x=${prefix} ;;
1397     *) x=${exec_prefix} ;;
1398     esac
1399     for l in ${with_libs}; do
1400       copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
1401     done
1402   fi
1403 fi
1404
1405 # Handle ${copy_dirs}
1406 set fnord ${copy_dirs}
1407 shift
1408 while test $# != 0 ; do
1409   if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
1410     :
1411   else
1412     echo Copying $1 to $2
1413
1414     # Use the install script to create the directory and all required
1415     # parent directories.
1416     if test -d $2 ; then
1417       :
1418     else
1419       echo >config.temp
1420       ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
1421     fi
1422
1423     # Copy the directory, assuming we have tar.
1424     # FIXME: Should we use B in the second tar?  Not all systems support it.
1425     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
1426
1427     # It is the responsibility of the user to correctly adjust all
1428     # symlinks.  If somebody can figure out how to handle them correctly
1429     # here, feel free to add the code.
1430
1431     echo $1 > $2/COPIED
1432   fi
1433   shift; shift
1434 done
1435
1436 extra_arflags_for_target=
1437 extra_nmflags_for_target=
1438 extra_ranlibflags_for_target=
1439 target_makefile_frag=/dev/null
1440 case "${target}" in
1441   i[[3456789]]86-*-netware*)
1442     target_makefile_frag="config/mt-netware"
1443     ;;
1444   powerpc-*-netware*)
1445     target_makefile_frag="config/mt-netware"
1446     ;;
1447   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
1448     target_makefile_frag="config/mt-gnu"
1449     ;;
1450   *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
1451     # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
1452     # commands to handle both 32-bit and 64-bit objects.  These flags are
1453     # harmless if we're using GNU nm or ar.
1454     extra_arflags_for_target=" -X32_64"
1455     extra_nmflags_for_target=" -B -X32_64"
1456     ;;
1457   *-*-darwin*)
1458     # ranlib from Darwin requires the -c flag to look at common symbols.
1459     extra_ranlibflags_for_target=" -c"
1460     ;;
1461   mips*-*-pe | sh*-*-pe | *arm-wince-pe)
1462     target_makefile_frag="config/mt-wince"
1463     ;;
1464 esac
1465
1466 alphaieee_frag=/dev/null
1467 case $target in
1468   alpha*-*-*)
1469     # This just makes sure to use the -mieee option to build target libs.
1470     # This should probably be set individually by each library.
1471     alphaieee_frag="config/mt-alphaieee"
1472     ;;
1473 esac
1474
1475 # If --enable-target-optspace always use -Os instead of -O2 to build
1476 # the target libraries, similarly if it is not specified, use -Os
1477 # on selected platforms.
1478 ospace_frag=/dev/null
1479 case "${enable_target_optspace}:${target}" in
1480   yes:*)
1481     ospace_frag="config/mt-ospace"
1482     ;;
1483   :d30v-*)
1484     ospace_frag="config/mt-d30v"
1485     ;;
1486   :m32r-* | :d10v-* | :fr30-*)
1487     ospace_frag="config/mt-ospace"
1488     ;;
1489   no:* | :*)
1490     ;;
1491   *)
1492     echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1493     ;;
1494 esac
1495
1496 # Set with_gnu_as and with_gnu_ld as appropriate.
1497 #
1498 # This is done by determining whether or not the appropriate directory
1499 # is available, and by checking whether or not specific configurations
1500 # have requested that this magic not happen.
1501
1502 # The command line options always override the explicit settings in 
1503 # configure.in, and the settings in configure.in override this magic.
1504 #
1505 # If the default for a toolchain is to use GNU as and ld, and you don't 
1506 # want to do that, then you should use the --without-gnu-as and
1507 # --without-gnu-ld options for the configure script.
1508
1509 if test x${use_gnu_as} = x &&
1510    echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1511   with_gnu_as=yes
1512   extra_host_args="$extra_host_args --with-gnu-as"
1513 fi
1514
1515 if test x${use_gnu_ld} = x &&
1516    echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1517   with_gnu_ld=yes
1518   extra_host_args="$extra_host_args --with-gnu-ld"
1519 fi
1520
1521 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1522 # can detect this case.
1523
1524 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1525   with_newlib=yes
1526   extra_host_args="$extra_host_args --with-newlib"
1527 fi
1528
1529 if test x${with_libbanshee} = xyes && echo " ${configdirs} " | grep " libbanshee " >/dev/null 2>&1; then
1530   extra_host_args="$extra_host_args --with-libbanshee"
1531 fi
1532
1533 # Default to using --with-stabs for certain targets.
1534 if test x${with_stabs} = x ; then
1535   case "${target}" in
1536   mips*-*-irix[[56]]*)
1537     ;;
1538   mips*-*-* | alpha*-*-osf*)
1539     with_stabs=yes;
1540     extra_host_args="${extra_host_args} --with-stabs"
1541     ;;
1542   esac
1543 fi
1544
1545 # hpux11 in 64bit mode has libraries in a weird place.  Arrange to find
1546 # them automatically.
1547 case "${host}" in
1548   hppa*64*-*-hpux11*)   
1549     extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
1550     ;;
1551 esac
1552
1553 # Some systems (e.g., one of the i386-aix systems the gas testers are
1554 # using) don't handle "\$" correctly, so don't use it here.
1555 tooldir='${exec_prefix}'/${target_alias}
1556 build_tooldir=${tooldir}
1557
1558 # Generate default definitions for YACC, M4, LEX and other programs that run
1559 # on the build machine.  These are used if the Makefile can't locate these
1560 # programs in objdir.
1561 MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
1562 AC_CHECK_PROGS([CONFIGURED_BISON], [bison], [$MISSING bison])
1563 AC_CHECK_PROGS([CONFIGURED_YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
1564 AC_CHECK_PROGS([CONFIGURED_M4], [gm4 gnum4 m4], [$MISSING m4])
1565 AC_CHECK_PROGS([CONFIGURED_FLEX], [flex], [$MISSING flex])
1566 AC_CHECK_PROGS([CONFIGURED_LEX], [flex lex], [$MISSING flex])
1567 AC_CHECK_PROGS([CONFIGURED_MAKEINFO], makeinfo, [$MISSING makeinfo])
1568
1569 # Create a .gdbinit file which runs the one in srcdir
1570 # and tells GDB to look there for source files.
1571
1572 if test -r ${srcdir}/.gdbinit ; then
1573   case ${srcdir} in
1574     .) ;;
1575     *) cat > ./.gdbinit <<EOF
1576 # ${NO_EDIT}
1577 dir ${srcdir}
1578 dir .
1579 source ${srcdir}/.gdbinit
1580 EOF
1581     ;;
1582   esac
1583 fi
1584
1585 # Make sure that the compiler is able to generate an executable.  If it
1586 # can't, we are probably in trouble.  We don't care whether we can run the
1587 # executable--we might be using a cross compiler--we only care whether it
1588 # can be created.  At this point the main configure script has set CC.
1589 we_are_ok=no
1590 echo "int main () { return 0; }" > conftest.c
1591 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1592 if test $? = 0 ; then
1593   if test -s conftest || test -s conftest.exe ; then
1594     we_are_ok=yes
1595   fi
1596 fi 
1597 case $we_are_ok in
1598   no)
1599     echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1600     echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1601     rm -f conftest*
1602     exit 1
1603     ;;
1604 esac
1605 rm -f conftest*
1606
1607 # The Solaris /usr/ucb/cc compiler does not appear to work.
1608 case "${host}" in
1609   sparc-sun-solaris2*)
1610       CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1611       if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
1612           could_use=
1613           test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1614           if test -d /opt/cygnus/bin ; then
1615               if test "$could_use" = "" ; then
1616                   could_use="/opt/cygnus/bin"
1617               else
1618                   could_use="$could_use or /opt/cygnus/bin"
1619               fi
1620           fi
1621         if test "$could_use" = "" ; then
1622             echo "Warning: compilation may fail because you're using"
1623             echo "/usr/ucb/cc.  You should change your PATH or CC "
1624             echo "variable and rerun configure."
1625         else
1626             echo "Warning: compilation may fail because you're using"
1627             echo "/usr/ucb/cc, when you should use the C compiler from"
1628             echo "$could_use.  You should change your"
1629             echo "PATH or CC variable and rerun configure."
1630         fi
1631       fi
1632   ;;
1633 esac
1634
1635 # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1636 # binutils tools will find libbfd.so.
1637 case "${enable_shared}" in
1638   no | "") SET_LIB_PATH= ;;
1639   *) SET_LIB_PATH="\$(REALLY_SET_LIB_PATH)" ;;
1640 esac
1641
1642 case "${host}" in
1643   *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
1644   *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1645 esac
1646
1647 # Record target_configdirs and the configure arguments for target and
1648 # build configuration in Makefile.
1649 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1650 build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
1651
1652 # Determine whether gdb needs tk/tcl or not.
1653 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1654 # and in that case we want gdb to be built without tk.  Ugh!
1655 # In fact I believe gdb is the *only* package directly dependent on tk,
1656 # so we should be able to put the 'maybe's in unconditionally and
1657 # leave out the maybe dependencies when enable_gdbtk is false.  I'm not
1658 # 100% sure that that's safe though.
1659
1660 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
1661 case "$enable_gdbtk" in
1662   no)
1663     GDB_TK="" ;;
1664   yes)
1665     GDB_TK="${gdb_tk}" ;;
1666   *)
1667     # Only add the dependency on gdbtk when GDBtk is part of the gdb
1668     # distro.  Eventually someone will fix this and move Insight, nee
1669     # gdbtk to a separate directory.
1670     if test -d ${srcdir}/gdb/gdbtk ; then
1671       GDB_TK="${gdb_tk}"
1672     else
1673       GDB_TK=""
1674     fi
1675     ;;
1676 esac
1677
1678 # Strip out unwanted targets.
1679
1680 # While at that, we remove Makefiles if we were started for recursive
1681 # configuration, so that the top-level Makefile reconfigures them,
1682 # like we used to do when configure itself was recursive.
1683
1684 # Loop over modules.  $extrasub must be used with care, limiting as
1685 # much as possible the usage of range addresses.  That's because autoconf
1686 # splits the sed script to overcome limits in the number of commands,
1687 # and relying on carefully-timed sed passes may turn out to be very hard
1688 # to maintain later.  In this particular case, you just have to be careful
1689 # not to nest @if/@endif pairs, because configure will not warn you at all.
1690
1691 AC_ARG_ENABLE([bootstrap],
1692 [  --enable-bootstrap[=lean]     Enable bootstrapping [no]],,
1693 enable_bootstrap=default)
1694
1695 # Issue errors and warnings for invalid/strange bootstrap combinations.
1696 case "$configdirs" in
1697   *gcc*) have_compiler=yes ;;
1698   *) have_compiler=no ;;
1699 esac
1700
1701 case "$have_compiler:$host:$target:$enable_bootstrap" in
1702   *:*:*:no) ;;
1703
1704   # Default behavior.  (We'll) enable bootstrap if we have a compiler
1705   # and we are in a native configuration.
1706   yes:$build:$build:default)
1707     # This will become 'yes'
1708     enable_bootstrap=no ;;
1709
1710   *:*:*:default)
1711     enable_bootstrap=no ;;
1712
1713   # We have a compiler and we are in a native configuration, bootstrap is ok
1714   yes:$build:$build:yes | yes:$build:$build:lean)
1715     ;;
1716
1717   # Other configurations, but we have a compiler.  Assume the user knows
1718   # what he's doing.
1719   yes:*:*:yes | yes:*:*:lean)
1720     AC_MSG_WARN([trying to bootstrap a cross compiler])
1721     ;;
1722
1723   # No compiler: if they passed --enable-bootstrap explicitly, fail
1724   no:*:*:yes | no:*:*:lean)
1725     AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
1726
1727   # Fail if wrong command line
1728   *)
1729     AC_MSG_ERROR([invalid option for --enable-bootstrap])
1730     ;;
1731 esac
1732
1733 # Adjust the toplevel makefile according to whether bootstrap was selected.
1734 case "$enable_bootstrap" in
1735   yes)
1736     bootstrap_lean='#'
1737     default_target=bootstrap
1738     bootstrap_suffix=bootstrap ;;
1739   lean)
1740     bootstrap_lean=''
1741     default_target=bootstrap
1742     bootstrap_suffix=bootstrap ;;
1743   no)
1744     default_target=all
1745     bootstrap_suffix=no-bootstrap ;;
1746 esac
1747 AC_SUBST(bootstrap_lean)
1748 AC_SUBST(default_target)
1749
1750 for module in ${build_configdirs} ; do
1751   if test -z "${no_recursion}" \
1752      && test -f ${build_subdir}/${module}/Makefile; then
1753     echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
1754     rm -f ${build_subdir}/${module}/Makefile
1755   fi
1756   extrasub="$extrasub
1757 /^@if build-$module\$/d
1758 /^@endif build-$module\$/d
1759 /^@if build-$module-$bootstrap_suffix\$/d
1760 /^@endif build-$module-$bootstrap_suffix\$/d"
1761 done
1762 for module in ${configdirs} ; do
1763   if test -z "${no_recursion}" \
1764      && test -f ${module}/Makefile; then
1765     echo 1>&2 "*** removing ${module}/Makefile to force reconfigure"
1766     rm -f ${module}/Makefile
1767   fi
1768   extrasub="$extrasub
1769 /^@if $module\$/d
1770 /^@endif $module\$/d
1771 /^@if $module-$bootstrap_suffix\$/d
1772 /^@endif $module-$bootstrap_suffix\$/d"
1773 done
1774 for module in ${target_configdirs} ; do
1775   if test -z "${no_recursion}" \
1776      && test -f ${target_subdir}/${module}/Makefile; then
1777     echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
1778     rm -f ${target_subdir}/${module}/Makefile
1779   fi
1780   extrasub="$extrasub
1781 /^@if target-$module\$/d
1782 /^@endif target-$module\$/d
1783 /^@if target-$module-$bootstrap_suffix\$/d
1784 /^@endif target-$module-$bootstrap_suffix\$/d"
1785 done
1786
1787 extrasub="$extrasub
1788 /^@if /,/^@endif /d"
1789
1790 # Create the serialization dependencies.  This uses a temporary file.
1791
1792 AC_ARG_ENABLE([serial-configure],
1793 [  --enable-serial-[{host,target,build}-]configure
1794                           Force sequential configuration of
1795                           sub-packages for the host, target or build
1796                           machine, or all sub-packages])
1797
1798 case ${enable_serial_configure} in
1799   yes)
1800     enable_serial_build_configure=yes
1801     enable_serial_host_configure=yes
1802     enable_serial_target_configure=yes
1803     ;;
1804 esac
1805
1806 # These force 'configure's to be done one at a time, to avoid problems
1807 # with contention over a shared config.cache.
1808 rm -f serdep.tmp
1809 echo '# serdep.tmp' > serdep.tmp
1810 olditem=
1811 test "x${enable_serial_build_configure}" = xyes &&
1812 for item in ${build_configdirs} ; do
1813   case ${olditem} in
1814     "") ;;
1815     *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
1816   esac
1817   olditem=${item}
1818 done
1819 olditem=
1820 test "x${enable_serial_host_configure}" = xyes &&
1821 for item in ${configdirs} ; do
1822   case ${olditem} in
1823     "") ;;
1824     *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
1825   esac
1826   olditem=${item}
1827 done
1828 olditem=
1829 test "x${enable_serial_target_configure}" = xyes &&
1830 for item in ${target_configdirs} ; do
1831   case ${olditem} in
1832     "") ;;
1833     *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
1834   esac
1835   olditem=${item}
1836 done
1837 serialization_dependencies=serdep.tmp
1838 AC_SUBST_FILE(serialization_dependencies)
1839
1840 # Base args.  Strip norecursion, cache-file, srcdir, host, build,
1841 # target and nonopt.  These are the ones we might not want to pass
1842 # down to subconfigures.  Also strip program-prefix, program-suffix,
1843 # and program-transform-name, so that we can pass down a consistent
1844 # program-transform-name.  If autoconf has put single quotes around
1845 # any of these arguments (because they contain shell metacharacters)
1846 # then this will fail; in practice this only happens for
1847 # --program-transform-name, so be sure to override --program-transform-name
1848 # at the end of the argument list.
1849 # These will be expanded by make, so quote '$'.
1850 cat <<\EOF_SED > conftestsed
1851 s/ --no[[^ ]]*/ /g
1852 s/ --c[[a-z-]]*[[= ]][[^ ]]*//g
1853 s/ --sr[[a-z-]]*[[= ]][[^ ]]*//g
1854 s/ --ho[[a-z-]]*[[= ]][[^ ]]*//g
1855 s/ --bu[[a-z-]]*[[= ]][[^ ]]*//g
1856 s/ --t[[a-z-]]*[[= ]][[^ ]]*//g
1857 s/ --program-[[pst]][[a-z-]]*[[= ]][[^ ]]*//g
1858 s/ -cache-file[[= ]][[^ ]]*//g
1859 s/ -srcdir[[= ]][[^ ]]*//g
1860 s/ -host[[= ]][[^ ]]*//g
1861 s/ -build[[= ]][[^ ]]*//g
1862 s/ -target[[= ]][[^ ]]*//g
1863 s/ -program-prefix[[= ]][[^ ]]*//g
1864 s/ -program-suffix[[= ]][[^ ]]*//g
1865 s/ -program-transform-name[[= ]][[^ ]]*//g
1866 s/ [[^' -][^ ]*] / /
1867 s/^ *//;s/ *$//
1868 s,\$,$$,g
1869 EOF_SED
1870 sed -f conftestsed <<EOF_SED > conftestsed.out
1871  ${ac_configure_args} 
1872 EOF_SED
1873 baseargs=`cat conftestsed.out`
1874 rm -f conftestsed conftestsed.out
1875
1876 # Add in --program-transform-name, after --program-prefix and
1877 # --program-suffix have been applied to it.  Autoconf has already
1878 # doubled dollar signs and backslashes in program_transform_name; we want
1879 # the backslashes un-doubled, and then the entire thing wrapped in single
1880 # quotes, because this will be expanded first by make and then by the shell. 
1881 # Also, because we want to override the logic in subdir configure scripts to
1882 # choose program_transform_name, replace any s,x,x, with s,y,y,.
1883 sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
1884 ${program_transform_name}
1885 EOF_SED
1886 gcc_transform_name=`cat conftestsed.out`
1887 rm -f conftestsed.out
1888 baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
1889
1890 # For the build-side libraries, we just need to pretend we're native,
1891 # and not use the same cache file.  Multilibs are neither needed nor
1892 # desired.
1893 build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}"
1894
1895 # For host modules, accept cache file option, or specification as blank.
1896 case "${cache_file}" in
1897 "") # empty
1898   cache_file_option="" ;;
1899 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
1900   cache_file_option="--cache-file=${cache_file}" ;;
1901 *) # relative path
1902   cache_file_option="--cache-file=../${cache_file}" ;;
1903 esac
1904
1905 # Host dirs don't like to share a cache file either, horribly enough.
1906 # This seems to be due to autoconf 2.5x stupidity.
1907 host_configargs="--cache-file=./config.cache --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}"
1908
1909 target_configargs=${baseargs}
1910
1911 # Passing a --with-cross-host argument lets the target libraries know
1912 # whether they are being built with a cross-compiler or being built
1913 # native.  However, it would be better to use other mechanisms to make the
1914 # sorts of decisions they want to make on this basis.  Please consider
1915 # this option to be deprecated.  FIXME.
1916 if test x${is_cross_compiler} = xyes ; then
1917   target_configargs="--with-cross-host=${host_alias} ${target_configargs}"
1918 fi
1919
1920 # Default to --enable-multilib.
1921 if test x${enable_multilib} = x ; then
1922   target_configargs="--enable-multilib ${target_configargs}"
1923 fi
1924
1925 # Pass --with-newlib if appropriate.  Note that target_configdirs has
1926 # changed from the earlier setting of with_newlib.
1927 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
1928   target_configargs="--with-newlib ${target_configargs}"
1929 fi
1930
1931 # Different target subdirs use different values of certain variables
1932 # (notably CXX).  Worse, multilibs use *lots* of different values.
1933 # Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
1934 # it doesn't automatically accept command-line overrides of them.
1935 # This means it's not safe for target subdirs to share a cache file,
1936 # which is disgusting, but there you have it.  Hopefully this can be
1937 # fixed in future.  It's still worthwhile to use a cache file for each
1938 # directory.  I think.
1939
1940 # Pass the appropriate --host, --build, and --cache-file arguments.
1941 target_configargs="--cache-file=./config.cache --host=${target_alias} --build=${build_alias} ${target_configargs}"
1942
1943 # provide a proper gxx_include_dir.
1944 # Note, if you change the default, make sure to fix both here and in
1945 # the gcc and libstdc++-v3 subdirectories.
1946 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
1947 case "${with_gxx_include_dir}" in
1948   yes)
1949     AC_MSG_ERROR([--with-gxx-include-dir=[[dir]] requires a directory])
1950     ;;
1951   no | "")
1952     case "${enable_version_specific_runtime_libs}" in
1953       yes) gxx_include_dir='${libsubdir}/include/c++' ;;
1954       *)
1955         . ${srcdir}/config.if
1956         gxx_include_dir='${prefix}/include/'${libstdcxx_incdir} ;;
1957     esac ;;
1958   *) gxx_include_dir=${with_gxx_include_dir} ;;
1959 esac
1960
1961 FLAGS_FOR_TARGET=
1962 case " $target_configdirs " in
1963  *" newlib "*)
1964   case " $target_configargs " in
1965   *" --with-newlib "*)
1966    case "$target" in
1967    *-cygwin*)
1968      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' ;;
1969    esac
1970
1971    # If we're not building GCC, don't discard standard headers.
1972    if test -d ${srcdir}/gcc; then
1973      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
1974
1975      if test "${build}" != "${host}"; then
1976        # On Canadian crosses, CC_FOR_TARGET will have already been set
1977        # by `configure', so we won't have an opportunity to add -Bgcc/
1978        # to it.  This is right: we don't want to search that directory
1979        # for binaries, but we want the header files in there, so add
1980        # them explicitly.
1981        FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
1982
1983        # Someone might think of using the pre-installed headers on
1984        # Canadian crosses, in case the installed compiler is not fully
1985        # compatible with the compiler being built.  In this case, it
1986        # would be better to flag an error than risking having
1987        # incompatible object files being constructed.  We can't
1988        # guarantee that an error will be flagged, but let's hope the
1989        # compiler will do it, when presented with incompatible header
1990        # files.
1991      fi
1992    fi
1993
1994    case "${target}-${is_cross_compiler}" in
1995    i[[3456789]]86-*-linux*-no)
1996       # Here host == target, so we don't need to build gcc,
1997       # so we don't want to discard standard headers.
1998       FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
1999       ;;
2000    *)
2001       # If we're building newlib, use its generic headers last, but search
2002       # for any libc-related directories first (so make it the last -B
2003       # switch).
2004       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2005       ;;
2006    esac
2007    ;;
2008   esac
2009   ;;
2010 esac
2011
2012 # Allow the user to override the flags for
2013 # our build compiler if desired.
2014 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2015
2016 # On Canadian crosses, we'll be searching the right directories for
2017 # the previously-installed cross compiler, so don't bother to add
2018 # flags for directories within the install tree of the compiler
2019 # being built; programs in there won't even run.
2020 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
2021   # Search for pre-installed headers if nothing else fits.
2022   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
2023 fi
2024
2025 if test "x${use_gnu_ld}" = x &&
2026    echo " ${configdirs} " | grep " ld " > /dev/null ; then
2027   # Arrange for us to find uninstalled linker scripts.
2028   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
2029 fi
2030
2031 if test "x${CC_FOR_TARGET+set}" = xset; then
2032   :
2033 elif test -d ${srcdir}/gcc; then
2034   CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
2035 elif test "$host" = "$target"; then
2036   CC_FOR_TARGET='$(CC)'
2037 else
2038   CC_FOR_TARGET=`echo gcc | sed "${program_transform_name}"`
2039 fi
2040 CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)'
2041
2042 if test "x${GCJ_FOR_TARGET+set}" = xset; then
2043   :
2044 elif test -d ${srcdir}/gcc; then
2045   GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/'
2046 elif test "$host" = "$target"; then
2047   GCJ_FOR_TARGET='gcj'
2048 else
2049   GCJ_FOR_TARGET=`echo gcj | sed "${program_transform_name}"`
2050 fi
2051 GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)'
2052
2053 if test "x${GFORTRAN_FOR_TARGET+set}" = xset; then
2054   :
2055 elif test -d ${srcdir}/gcc; then
2056   GFORTRAN_FOR_TARGET='$$r/gcc/gfortran -B$$r/gcc/'
2057 elif test "$host" = "$target"; then
2058   GFORTRAN_FOR_TARGET='gfortran'
2059 else
2060   GFORTRAN_FOR_TARGET=`echo gfortran | sed "${program_transform_name}"`
2061 fi
2062 case $GFORTRAN_FOR_TARGET in
2063 *' $(FLAGS_FOR_TARGET)') ;;
2064 *) GFORTRAN_FOR_TARGET=$GFORTRAN_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
2065 esac
2066
2067 # Don't use libstdc++-v3's flags to configure/build itself.
2068 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'
2069 raw_libstdcxx_flags='-L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
2070
2071 if test "x${CXX_FOR_TARGET+set}" = xset; then
2072   if test "x${RAW_CXX_FOR_TARGET+set}" != xset; then
2073     RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
2074   fi
2075 elif test -d ${srcdir}/gcc; then
2076   # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead
2077   # of g++ for linking C++ or Java, because g++ has -shared-libgcc by
2078   # default whereas gcc does not.
2079   # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for
2080   # all other cases.
2081   CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
2082   RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags
2083 elif test "$host" = "$target"; then
2084   CXX_FOR_TARGET='$(CXX)'
2085   RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
2086 else
2087   CXX_FOR_TARGET=`echo c++ | sed "${program_transform_name}"`
2088   RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
2089 fi
2090 CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
2091 RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
2092
2093 qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'`
2094 qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'`
2095
2096 # We want to defer the evaluation of `cmd`s and shell variables in
2097 # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
2098 # bootstrap.  We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single
2099 # quotes, but we still have to duplicate `$'s so that shell variables
2100 # can be expanded by the nested make as shell variables, not as make
2101 # macros.
2102 qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'`
2103 qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'`
2104
2105 # Wrap CC_FOR_TARGET and friends, for certain types of builds.
2106 CC_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}"
2107 GCJ_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}"
2108 GFORTRAN_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GFORTRAN_FOR_TARGET}"
2109 CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}"
2110 RAW_CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}"
2111 CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}"
2112 RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}"
2113
2114 # Makefile fragments.
2115 for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2116 do
2117   eval fragval=\$$frag
2118   if test $fragval != /dev/null; then
2119     eval $frag=${srcdir}/$fragval
2120   fi
2121 done
2122 AC_SUBST_FILE(host_makefile_frag)
2123 AC_SUBST_FILE(target_makefile_frag)
2124 AC_SUBST_FILE(alphaieee_frag)
2125 AC_SUBST_FILE(ospace_frag)
2126
2127 # Miscellanea: directories, flags, etc.
2128 AC_SUBST(SET_LIB_PATH)
2129 AC_SUBST(RPATH_ENVVAR)
2130 AC_SUBST(BUILD_PREFIX)
2131 AC_SUBST(BUILD_PREFIX_1)
2132 AC_SUBST(gcc_version_trigger)
2133 AC_SUBST(gcc_version)
2134 AC_SUBST(tooldir)
2135 AC_SUBST(build_tooldir)
2136 AC_SUBST(GDB_TK)
2137 AC_SUBST(gxx_include_dir)
2138 AC_SUBST(libstdcxx_incdir)
2139
2140 # Build module lists & subconfigure args.
2141 AC_SUBST(build_configargs)
2142 AC_SUBST(build_configdirs)
2143
2144 # Host module lists & subconfigure args.
2145 AC_SUBST(host_configargs)
2146 AC_SUBST(configdirs)
2147
2148 # Target module lists & subconfigure args.
2149 AC_SUBST(target_configargs)
2150 AC_SUBST(target_configdirs)
2151
2152 # Build tools.
2153 AC_SUBST(CC_FOR_BUILD)
2154 AC_SUBST(config_shell)
2155
2156 # Host tools.
2157 NCN_STRICT_CHECK_TOOL(AR, ar)
2158 NCN_STRICT_CHECK_TOOL(AS, as)
2159 NCN_STRICT_CHECK_TOOL(DLLTOOL, dlltool)
2160 NCN_STRICT_CHECK_TOOL(LD, ld)
2161 NCN_STRICT_CHECK_TOOL(NM, nm)
2162 NCN_STRICT_CHECK_TOOL(RANLIB, ranlib, :)
2163 NCN_STRICT_CHECK_TOOL(WINDRES, windres)
2164 NCN_STRICT_CHECK_TOOL(OBJCOPY, objcopy)
2165 NCN_STRICT_CHECK_TOOL(OBJDUMP, objdump)
2166 AC_SUBST(CC)
2167 AC_SUBST(CXX)
2168 AC_SUBST(CFLAGS)
2169 AC_SUBST(CFLAGS_FOR_BUILD)
2170 AC_SUBST(CXXFLAGS)
2171
2172 # Target tools.
2173 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_AR_FOR_TARGET, ar)
2174 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_AS_FOR_TARGET, as)
2175 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_DLLTOOL_FOR_TARGET, dlltool)
2176 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_LD_FOR_TARGET, ld)
2177 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_NM_FOR_TARGET, nm)
2178 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_RANLIB_FOR_TARGET, ranlib, :)
2179 NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_WINDRES_FOR_TARGET, windres)
2180
2181 AC_SUBST(GCC_FOR_TARGET)
2182 AC_SUBST(FLAGS_FOR_TARGET)
2183 AC_SUBST(CC_FOR_TARGET)
2184 AC_SUBST(GCJ_FOR_TARGET)
2185 AC_SUBST(GFORTRAN_FOR_TARGET)
2186 AC_SUBST(CXX_FOR_TARGET)
2187 AC_SUBST(RAW_CXX_FOR_TARGET)
2188 AC_SUBST(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)
2189 AC_SUBST(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)
2190
2191 # Fix up target tools.
2192 if test "x${build}" = "x${host}" ; then
2193   # In this case, the newly built tools can and should be used,
2194   # so we override the results of the autoconf tests.
2195   # This should really only happen when the tools are actually being built,
2196   # but that's a further refinement.  The new build scheme, where
2197   # tools are built into a structure paralleling where they're installed,
2198   # should also eliminate all of this cleanly.
2199   AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)"
2200   AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)"
2201   DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)"
2202   LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)"
2203   NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)"
2204   RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)"
2205   WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)"
2206 else
2207   # Just use the ones we found.
2208   AR_FOR_TARGET="\$(CONFIGURED_AR_FOR_TARGET)"
2209   AS_FOR_TARGET="\$(CONFIGURED_AS_FOR_TARGET)"
2210   DLLTOOL_FOR_TARGET="\$(CONFIGURED_DLLTOOL_FOR_TARGET)"
2211   LD_FOR_TARGET="\$(CONFIGURED_LD_FOR_TARGET)"
2212   NM_FOR_TARGET="\$(CONFIGURED_NM_FOR_TARGET)"
2213   RANLIB_FOR_TARGET="\$(CONFIGURED_RANLIB_FOR_TARGET)"
2214   WINDRES_FOR_TARGET="\$(CONFIGURED_WINDRES_FOR_TARGET)"  
2215 fi
2216 AC_SUBST(AR_FOR_TARGET)
2217 AC_SUBST(AS_FOR_TARGET)
2218 AC_SUBST(DLLTOOL_FOR_TARGET)
2219 AC_SUBST(LD_FOR_TARGET)
2220 AC_SUBST(NM_FOR_TARGET)
2221 AC_SUBST(RANLIB_FOR_TARGET)
2222 AC_SUBST(WINDRES_FOR_TARGET)
2223
2224 # Certain tools may need extra flags.
2225 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2226 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2227 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
2228
2229 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2230 AC_ARG_ENABLE(maintainer-mode,
2231 [  --enable-maintainer-mode enable make rules and dependencies not useful
2232                           (and sometimes confusing) to the casual installer],
2233       USE_MAINTAINER_MODE=$enableval,
2234       USE_MAINTAINER_MODE=no)
2235 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2236 AC_SUBST(MAINTAINER_MODE_TRUE)
2237 AC_SUBST(MAINTAINER_MODE_FALSE)
2238 if test "$USE_MAINTAINER_MODE" = yes; then
2239   MAINTAINER_MODE_TRUE=
2240   MAINTAINER_MODE_FALSE='#'
2241 else
2242   MAINTAINER_MODE_TRUE='#'
2243   MAINTAINER_MODE_FALSE=
2244 fi      
2245 MAINT=$MAINTAINER_MODE_TRUE
2246 AC_SUBST(MAINT)dnl
2247
2248 # ---------------------
2249 # GCC bootstrap support
2250 # ---------------------
2251
2252 # Stage specific cflags for build.
2253 stage1_cflags="-g"
2254 case $build in
2255   vax-*-*)
2256     case ${GCC} in
2257       yes) stage1_cflags="-g -Wa,-J" ;;
2258       *) stage1_cflags="-g -J" ;;
2259     esac ;;
2260   powerpc-*-darwin*)
2261     # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
2262     # sources; use -no-cpp-precomp to get to GNU cpp.
2263     # Apple's GCC has bugs in designated initializer handling, so disable
2264     # that too.
2265     stage1_cflags="-g -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
2266     ;;
2267 esac
2268 AC_SUBST(stage1_cflags)
2269
2270 # It makes debugging easier if we create as symlinks the stage directories
2271 # gcc for stageN-gcc and stagePREV-gcc for stage(N-1).  In case this is not
2272 # possible, however, we can resort to mv.
2273 AC_CACHE_CHECK([if symbolic links between directories work],
2274 [gcc_cv_prog_ln_s_dir],
2275 [if test "${LN_S}" = "ln -s" \
2276    && mkdir confdir.s1 \
2277    && ln -s confdir.s1 confdir.s2 \
2278    && echo timestamp1 > confdir.s1/conftest.1 \
2279    && cmp confdir.s1/conftest.1 confdir.s2/conftest.1 \
2280    && echo timestamp2 > confdir.s2/conftest.2 \
2281    && cmp confdir.s1/conftest.2 confdir.s1/conftest.2 \
2282    && rm -f confdir.s2; then
2283   gcc_cv_prog_ln_s_dir=yes
2284 else
2285   gcc_cv_prog_ln_s_dir=yes
2286 fi
2287 rm -rf confdir.s1 confdir.s2])
2288
2289 case ${gcc_cv_prog_ln_s_dir} in
2290   yes)
2291     CREATE_LINK_TO_DIR='ln -s $$1 $$2'
2292     UNDO_LINK_TO_DIR='rm -f $$1' ;;
2293   *)
2294     CREATE_LINK_TO_DIR='mv $$1 $$2'
2295     UNDO_LINK_TO_DIR='mv $$1 $$2' ;;
2296 esac
2297 AC_SUBST(CREATE_LINK_TO_DIR)
2298 AC_SUBST(UNDO_LINK_TO_DIR)
2299
2300 # Enable -Werror in bootstrap stage2 and later.
2301 # Change the default to "no" on release branches.
2302 AC_ARG_ENABLE(werror,
2303 [  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
2304 [enable_werror=yes])
2305 case ${enable_werror} in
2306   yes) stage2_werror_flag="--enable-werror-always" ;;
2307   *) stage2_werror_flag="" ;;
2308 esac
2309 AC_SUBST(stage2_werror_flag)
2310
2311 AC_OUTPUT(Makefile)