OSDN Git Service

Fix ppc-darwin bootstrap failure.
[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-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
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   *-*-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)