OSDN Git Service

3041dd4a7c420a4836a466a6f98ccd11fce495cf
[pf3gnuchains/gcc-fork.git] / configure.in
1 #! /bin/bash
2 ##############################################################################
3
4 ## This file is a shell script fragment that supplies the information
5 ## necessary to tailor a template configure script into the configure
6 ## script appropriate for this directory.  For more information, check
7 ## any existing configure script.  
8
9 ## Be warned, there are two types of configure.in files.  There are those
10 ## used by Autoconf, which are macros which are expanded into a configure
11 ## script by autoconf.  The other sort, of which this is one, is executed
12 ## by Cygnus configure.  
13
14 ## For more information on these two systems, check out the documentation
15 ## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).  
16
17 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
18 #   1999, 2000, 2001, 2002 Free Software Foundation, Inc.
19 #
20 # This file is free software; you can redistribute it and/or modify it
21 # under the terms of the GNU General Public License as published by
22 # the Free Software Foundation; either version 2 of the License, or
23 # (at your option) any later version.
24 #
25 # This program is distributed in the hope that it will be useful, but
26 # WITHOUT ANY WARRANTY; without even the implied warranty of
27 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
28 # General Public License for more details.
29 #
30 # You should have received a copy of the GNU General Public License
31 # along with this program; if not, write to the Free Software
32 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
33
34 ##############################################################################
35
36 ### To add a new directory to the tree, first choose whether it is a target
37 ### or a host dependent tool.  Then put it into the appropriate list
38 ### (library or tools, host or target), doing a dependency sort.  For
39 ### example, gdb requires that byacc (or bison) be built first, so it is in
40 ### the ${host_tools} list after byacc and bison.  
41
42
43 # these libraries are used by various programs built for the host environment
44 #
45 host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk tclX itcl tix libgui zlib"
46
47 libstdcxx_version="target-libstdc++-v3"
48
49 # these tools are built for the host environment
50 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
51 # know that we are building the simulator.
52 host_tools="texinfo byacc flex bison binutils ld gas gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool grep diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils snavigator libtool gettext zip fastjar"
53
54 # libgcj represents the runtime libraries only used by gcj.
55 libgcj="target-libffi \
56         target-boehm-gc \
57         target-zlib \
58         target-qthreads \
59         target-libjava"
60
61 # these libraries are built for the target environment, and are built after
62 # the host libraries and the host tools (which may be a cross compiler)
63 #
64 target_libs="target-libiberty \
65                 target-libgloss \
66                 target-newlib \
67                 ${libstdcxx_version} \
68                 target-libf2c \
69                 ${libgcj}
70                 target-libobjc"
71
72 # these tools are built using the target libs, and are intended to run only
73 # in the target environment
74 #
75 # note: any program that *uses* libraries that are in the "target_libs"
76 # list belongs in this list.  those programs are also very likely
77 # candidates for the "native_only" list which follows
78 #
79 target_tools="target-examples target-groff target-gperf"
80
81 ################################################################################
82
83 ## All tools belong in one of the four categories, and are assigned above
84 ## We assign ${configdirs} this way to remove all embedded newlines.  This
85 ## is important because configure will choke if they ever get through.
86 ## ${configdirs} is directories we build using the host tools.
87 ## ${target_configdirs} is directories we build using the target tools.
88 #
89 configdirs=`echo ${host_libs} ${host_tools}`
90 target_configdirs=`echo ${target_libs} ${target_tools}`
91
92 ################################################################################
93
94 srctrigger=move-if-change
95 srcname="gnu development package"
96
97 # This gets set non-empty for some net releases of packages.
98 appdirs=""
99
100 # per-host:
101
102 # There is no longer anything interesting in the per-host section.
103
104 # per-target:
105
106 # Define is_cross_compiler to save on calls to 'test'.
107 is_cross_compiler=
108 if test x"${host}" = x"${target}" ; then
109   is_cross_compiler=no
110 else
111   is_cross_compiler=yes
112 fi      
113
114 # We always want to use the same name for this directory, so that dejagnu
115 # can reliably find it.
116 target_subdir=${target_alias}
117
118 if test ! -d ${target_subdir} ; then
119   if mkdir ${target_subdir} ; then true
120   else
121     echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2
122     exit 1
123   fi
124 fi
125
126 build_subdir=${build_alias}
127
128 if test x"${build_alias}" != x"${host}" ; then
129   if test ! -d ${build_subdir} ; then
130     if mkdir ${build_subdir} ; then true
131     else
132       echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2
133       exit 1
134     fi
135   fi
136 fi
137
138 # Skipdirs are removed silently.
139 skipdirs=
140 # Noconfigdirs are removed loudly.
141 noconfigdirs=""
142
143 use_gnu_ld=
144 # Make sure we don't let GNU ld be added if we didn't want it.
145 if test x$with_gnu_ld = xno ; then
146   use_gnu_ld=no
147   noconfigdirs="$noconfigdirs ld"
148 fi
149
150 use_gnu_as=
151 # Make sure we don't let GNU as be added if we didn't want it.
152 if test x$with_gnu_as = xno ; then
153   use_gnu_as=no
154   noconfigdirs="$noconfigdirs gas"
155 fi
156
157 # some tools are so dependent upon X11 that if we're not building with X, 
158 # it's not even worth trying to configure, much less build, that tool.
159
160 case ${with_x} in
161   yes | "") ;; # the default value for this tree is that X11 is available
162   no)
163     skipdirs="${skipdirs} tk tix itcl libgui"
164     # We won't be able to build gdbtk without X.
165     enable_gdbtk=no 
166     ;;
167   *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
168 esac
169
170 # Some tools are only suitable for building in a "native" situation.
171 # Remove these if host!=target.  
172 native_only="autoconf automake libtool fileutils find gawk gettext grep gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms snavigator gnuserv target-gperf"
173
174 # Similarly, some are only suitable for cross toolchains.
175 # Remove these if host=target.
176 cross_only="target-libgloss target-newlib target-opcodes"
177
178 case $is_cross_compiler in
179   no) skipdirs="${skipdirs} ${cross_only}" ;;
180   yes) skipdirs="${skipdirs} ${native_only}" ;;
181 esac
182
183 # If both --with-headers and --with-libs are specified, default to
184 # --without-newlib.
185 if test x"${with_headers}" != x && test x"${with_libs}" != x ; then
186   if test x"${with_newlib}" = x ; then
187     with_newlib=no
188   fi
189 fi
190
191 # Recognize --with-newlib/--without-newlib.
192 case ${with_newlib} in
193   no) skipdirs="${skipdirs} target-newlib" ;;
194   yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
195 esac
196
197 # Configure extra directories which are host specific
198
199 case "${host}" in
200   i[3456]86-*-go32*)
201     configdirs="$configdirs dosrel" ;;
202   i[3456]86-*-mingw32*)
203     configdirs="$configdirs dosrel" ;;
204   *-cygwin*)
205     configdirs="$configdirs libtermcap dosrel" ;;
206 esac
207
208 # Remove more programs from consideration, based on the host or 
209 # target this usually means that a port of the program doesn't
210 # exist yet.
211
212 case "${host}" in
213   hppa*64*-*-*)
214     noconfigdirs="$noconfigdirs byacc"
215     ;;
216   i[3456]86-*-vsta)
217     noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv gettext"
218     ;;
219   i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*)
220     noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile itcl tix db snavigator gnuserv libffi"
221         ;;
222   i[3456]86-*-mingw32*)
223     # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv"
224      noconfigdirs="expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool"
225         ;;
226   i[3456]86-*-beos*)
227      noconfigdirs="$noconfigdirs tk itcl tix libgui gdb"
228      ;;
229   *-*-cygwin*)
230      noconfigdirs="autoconf automake send-pr rcs guile perl"
231     ;;
232   *-*-netbsd*)
233     noconfigdirs="rcs"
234     ;;
235   ppc*-*-pe)
236      noconfigdirs="patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl tix db snavigator gnuserv"
237     ;;
238   powerpc-*-beos*)
239     noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline"
240     ;;
241 esac
242
243 # Save it here so that, even in case of --enable-libgcj, if the Java
244 # front-end isn't enabled, we still get libgcj disabled.
245 libgcj_saved=$libgcj
246 case $enable_libgcj in
247 yes)
248   # If we reset it here, it won't get added to noconfigdirs in the
249   # target-specific build rules, so it will be forcibly enabled
250   # (unless the Java language itself isn't enabled).
251   libgcj=
252   ;;
253 no)
254   # Make sure we get it printed in the list of not supported target libs.
255   noconfigdirs="$noconfigdirs ${libgcj}"
256   ;;
257 esac
258
259 case "${target}" in
260   *-*-chorusos)
261     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
262     ;;
263   *-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*)
264     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
265     ;;
266   *-*-netbsd*)
267     # Skip some stuff on all NetBSD configurations.
268     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
269
270     # Skip some stuff that's unsupported on some NetBSD configurations.
271     case "${target}" in
272       i*86-*-netbsdelf*) ;;
273       *)
274         noconfigdirs="$noconfigdirs ${libgcj}"
275         ;;
276     esac
277     ;;
278   *-*-netware)
279     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-newlib target-libiberty target-libgloss ${libgcj}"
280     ;;
281   *-*-rtems*)
282     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
283     case ${target} in
284         h8300*-*-* | h8500-*-*)
285           noconfigdirs="$noconfigdirs target-libf2c"
286           ;;
287         *) ;;
288     esac
289     ;;
290   *-*-vxworks*)
291     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
292     ;;
293   alpha*-dec-osf*)
294     # ld works, but does not support shared libraries.
295     # newlib is not 64 bit ready.  I'm not sure about fileutils.
296     # gas doesn't generate exception information.
297     noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
298     ;;
299   alpha*-*-*vms*)
300     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
301     ;;
302   alpha*-*-linux*)
303     # newlib is not 64 bit ready
304     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
305     ;;
306   alpha*-*-freebsd*)
307     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
308     ;;
309   alpha*-*-*)
310     # newlib is not 64 bit ready
311     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
312     ;;
313   sh-*-linux*)
314     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
315     ;;    
316   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
317     noconfigdirs="$noconfigdirs ${libgcj}"
318     noconfigdirs="$noconfigdirs target-examples"
319     noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
320     noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim"
321     noconfigdirs="$noconfigdirs expect dejagnu"
322     # the C++ libraries don't build on top of CE's C libraries
323     noconfigdirs="$noconfigdirs ${libstdcxx_version}"
324     noconfigdirs="$noconfigdirs target-newlib"
325     case "${host}" in
326       *-*-cygwin*) ;; # keep gdb and readline
327       *) noconfigdirs="$noconfigdirs gdb readline ${libstdcxx_version}"
328          ;;
329     esac
330     ;;
331   arc-*-*)
332     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
333     ;;
334   arm-*-coff | strongarm-*-coff | xscale-*-coff)
335     noconfigdirs="$noconfigdirs ${libgcj}"
336     ;;
337   arm-*-elf* | strongarm-*-elf* | xscale-*-elf*)
338     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
339     ;;
340   arm-*-pe*)
341     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
342     ;;
343   arm-*-oabi*)
344     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
345     ;;
346   thumb-*-coff)
347     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
348     ;;
349   thumb-*-elf)
350     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
351     ;;
352   thumb-*-oabi)
353     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
354     ;;
355   thumb-*-pe)
356     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
357     ;;
358   arm-*-riscix*)
359     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
360     ;;
361   avr-*-*)
362     noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}"
363     ;;
364   c4x-*-*)
365     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}"
366     ;;
367   c54x*-*-* | tic54x-*-*)
368     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj} gcc gdb newlib"
369     ;;
370   cris-*-*)
371     noconfigdirs="$noconfigdirs ${libgcj}"
372     ;;
373   d10v-*-*)
374     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}"
375     ;;
376   d30v-*-*)
377     noconfigdirs="$noconfigdirs ${libgcj}"
378     ;;
379   fr30-*-elf*)
380     noconfigdirs="$noconfigdirs ${libgcj}"
381     ;;
382   frv-*-*)
383     noconfigdirs="$noconfigdirs ${libgcj}"
384     ;;
385   h8300*-*-*)
386     noconfigdirs="$noconfigdirs target-libgloss"
387     ;;
388   h8500-*-*)
389     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj} target-libf2c"
390     ;;
391   hppa*64*-*-linux* | parisc*64*-*-linux*)
392     # In this case, it's because the hppa64-linux target is for
393     # the kernel only at this point and has no libc, and thus no
394     # headers, crt*.o, etc., all of which are needed by these.
395     noconfigdirs="$noconfigdirs target-zlib"
396     ;;
397   hppa*-*-*elf* | \
398   parisc*-*-linux* | hppa*-*-linux* | \
399   hppa*-*-lites* | \
400   hppa*-*-openbsd* | \
401   hppa*64*-*-*)
402     noconfigdirs="$noconfigdirs ${libgcj}"
403     # Do configure ld/binutils/gas for this case.
404     ;;
405   hppa*-*-*)
406     # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
407     # build on HP-UX 10.20.
408     noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
409     ;;
410   ia64*-*-elf*)
411     # No gdb support yet.
412     noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
413     ;;
414   ia64*-**-hpux*)
415     # No gdb or ld support yet.
416     noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld"
417     ;;
418   i[3456]86-*-coff | i[3456]86-*-elf)
419     noconfigdirs="$noconfigdirs ${libgcj}"
420     ;;
421   i[34567]86-*-freebsd*)
422     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
423     ;;
424   s390*-*-linux*)
425     # The libffi port is not yet in the GCC tree
426     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
427     ;;
428   i[3456]86-*-linux*)
429     # This section makes it possible to build newlib natively on linux.
430     # If we are using a cross compiler then don't configure newlib.
431     if test x${is_cross_compiler} != xno ; then
432          noconfigdirs="$noconfigdirs target-newlib"
433     fi
434     noconfigdirs="$noconfigdirs target-libgloss"
435     # If we are not using a cross compiler, do configure newlib.
436     # Note however, that newlib will only be configured in this situation
437     # if the --with-newlib option has been given, because otherwise
438     # 'target-newlib' will appear in skipdirs.
439     ;;
440   i[3456]86-*-mingw32*)
441     target_configdirs="$target_configdirs target-mingw"
442     noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}"
443
444     # Can't build gdb for mingw32 if not native.
445     case "${host}" in
446       i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
447       *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv"
448          ;;
449     esac
450     ;;    
451   *-*-cygwin*)
452     target_configdirs="$target_configdirs target-libtermcap target-winsup"
453     noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
454     # always build newlib.
455     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
456
457     # Can't build gdb for Cygwin if not native.
458     case "${host}" in
459       *-*-cygwin*) ;; # keep gdb tcl tk expect etc.
460       *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui db snavigator gnuserv"
461          ;;
462     esac
463     ;;    
464   i[3456]86-*-pe)
465     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}"
466     ;;
467   i[3456]86-*-sco3.2v5*)
468     # The linker does not yet know about weak symbols in COFF,
469     # and is not configured to handle mixed ELF and COFF.
470     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
471     ;;
472   i[3456]86-*-sco*)
473     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
474     ;;
475   i[3456]86-*-solaris2*)
476     noconfigdirs="$noconfigdirs target-libgloss"
477     ;;
478   i[3456]86-*-sysv4*)
479     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
480     ;;
481   i[3456]86-*-beos*)
482      noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
483      ;;
484   m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
485     noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}"
486     ;;
487   m68k-*-elf*)
488     noconfigdirs="$noconfigdirs ${libgcj}"
489     ;;
490   m68k-*-coff*)
491     noconfigdirs="$noconfigdirs ${libgcj}"
492     ;;
493   mcore-*-pe*)
494   # The EPOC C++ environment does not support exceptions or rtti,
495   # and so building libstdc++-v3 tends not to always work.
496     noconfigdirs="$noconfigdirs target-libstdc++-v3"
497     ;;
498   mmix-*-*)
499     noconfigdirs="$noconfigdirs ${libgcj}"
500     ;;
501   mn10200-*-*)
502     noconfigdirs="$noconfigdirs ${libgcj}"
503     ;;
504   mn10300-*-*)
505     noconfigdirs="$noconfigdirs ${libgcj}"
506     ;;
507   powerpc-*-aix*)
508     # copied from rs6000-*-* entry
509     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
510     ;;
511   powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
512     target_configdirs="$target_configdirs target-winsup"
513     noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix db snavigator gnuserv ${libgcj}"
514     # always build newlib.
515     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
516     ;;
517     # This is temporary until we can link against shared libraries
518   powerpcle-*-solaris*)
519     noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db snavigator gnuserv ${libgcj}"
520     ;;
521   powerpc-*-beos*)
522     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
523     ;;
524   powerpc-*-darwin*)
525     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb tk itcl tix libgui gprof ${libgcj}"
526     ;;
527   powerpc-*-eabi)
528     noconfigdirs="$noconfigdirs ${libgcj}"
529     ;;
530   powerpc64*-*-linux*)
531     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
532     # not yet ported.
533     noconfigdirs="$noconfigdirs target-libffi"
534     ;;
535   rs6000-*-lynxos*)
536     noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
537     ;;
538   rs6000-*-aix*)
539     noconfigdirs="$noconfigdirs gprof ${libgcj}"
540     ;;
541   rs6000-*-*)
542     noconfigdirs="$noconfigdirs gprof ${libgcj}"
543     ;;
544   m68k-apollo-*)
545     noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
546     ;;
547   mips*-*-irix5*)
548     # The GNU linker does not support shared libraries.
549     noconfigdirs="$noconfigdirs ld gprof target-libgloss ${libgcj}"
550     ;;
551   mips*-*-irix6*)
552     # The GNU assembler does not support IRIX 6.
553     # Linking libjava exceeds command-line length limits on at least
554     # IRIX 6.2, but not on IRIX 6.5.
555     # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
556     # <oldham@codesourcery.com>
557     noconfigdirs="$noconfigdirs gas gprof target-libgloss ${libgcj}"
558     ;;
559   mips*-dec-bsd*)
560     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
561     ;;
562   mips*-*-bsd*)
563     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
564     ;;
565   mipstx39-*-*)
566     noconfigdirs="$noconfigdirs gprof ${libgcj}"   # same as generic mips
567    ;;
568   mips*-*-linux*)
569     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
570     ;;
571   mips*-*-*)
572     noconfigdirs="$noconfigdirs gprof ${libgcj}"
573     ;;
574   romp-*-*)
575     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
576     ;;
577   sh-*-*)
578     case "${host}" in
579       i[3456]86-*-vsta) ;; # don't add gprof back in
580       i[3456]86-*-go32*) ;; # don't add gprof back in
581       i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in
582       *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
583     esac
584     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
585     ;;
586   sh64-*-*)
587     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
588     ;;
589   sparc-*-elf*)
590     noconfigdirs="$noconfigdirs ${libgcj}"
591     ;;
592   sparc64-*-elf*)
593     noconfigdirs="$noconfigdirs ${libgcj}"
594     ;;
595   sparclite-*-*)
596     noconfigdirs="$noconfigdirs ${libgcj}"
597     ;;
598   sparc-*-sunos4*)
599     noconfigdirs="$noconfigdirs ${libgcj}"
600     if test x${is_cross_compiler} != xno ; then
601            noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
602     else
603            use_gnu_ld=no
604     fi
605     ;;
606   sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
607     ;;
608   v810-*-*)
609     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld ${libstdcxx_version} opcodes target-libgloss ${libgcj}"
610     ;;
611   v850-*-*)
612     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
613     ;;
614   v850e-*-*)
615     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
616     ;;
617   v850ea-*-*)
618     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
619     ;;
620   vax-*-vms)
621     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
622     ;;
623   vax-*-*)
624     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
625     ;;
626   ip2k-*-*)
627     noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}"
628     ;;
629   *-*-linux*)
630     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
631     ;;
632   *-*-lynxos*)
633     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
634     ;; 
635   *-*-*)
636     noconfigdirs="$noconfigdirs ${libgcj}"
637     ;;
638 esac
639
640 # If we aren't building newlib, then don't build libgloss, since libgloss
641 # depends upon some newlib header files.
642 case "${noconfigdirs}" in
643   *target-libgloss*) ;;
644   *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
645 esac
646
647 # Figure out what language subdirectories are present.
648 # Look if the user specified --enable-languages="..."; if not, use
649 # the environment variable $LANGUAGES if defined. $LANGUAGES might
650 # go away some day.
651 # NB:  embedded tabs in this IF block -- do not untabify
652 if test x"${enable_languages+set}" != xset; then
653         if test x"${LANGUAGES+set}" = xset; then
654                 enable_languages="${LANGUAGES}"
655                 echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
656         else
657                 enable_languages=all
658         fi
659 else
660         if test x"${enable_languages}" = x ||
661            test x"${enable_languages}" = xyes;
662         then
663                 echo configure.in: --enable-languages needs at least one language argument 1>&2
664                 exit 1
665         fi
666 fi
667 enable_languages=`echo "${enable_languages}" | sed -e 's/[      ,][     ,]*/,/g' -e 's/,$//'`
668
669 # First scan to see if an enabled language requires some other language.
670 # We assume that a given config-lang.in will list all the language
671 # front ends it requires, even if some are required indirectly.
672 for lang in ${srcdir}/gcc/*/config-lang.in ..
673 do
674    case $lang in
675     ..)
676        ;;
677     # The odd quoting in the next line works around
678     # an apparent bug in bash 1.12 on linux.
679     ${srcdir}/gcc/[*]/config-lang.in)
680        ;;
681     *)
682        lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^      ]*\).*$,\1,p' $lang`
683        this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^    ]*\).*$,\1,p' $lang`
684        for other in $this_lang_requires
685        do
686           case ,${enable_languages}, in
687            *,$other,*)
688               ;;
689            *,all,*)
690               ;;
691            *,$lang_alias,*)
692               echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2
693               enable_languages="$enable_languages,$other"
694               ;;
695           esac
696        done
697        ;;
698    esac
699 done
700
701 subdirs=
702 for lang in ${srcdir}/gcc/*/config-lang.in ..
703 do
704         case $lang in
705         ..) ;;
706         # The odd quoting in the next line works around
707         # an apparent bug in bash 1.12 on linux.
708         ${srcdir}/gcc/[*]/config-lang.in) ;;
709         *)
710           lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
711           this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^         ]*\).*$,\1,p' $lang`
712           this_lang_dirs=`sed -n -e 's,^lang_dirs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_dirs=\([^     ]*\).*$,\1,p' $lang`
713           build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^     ]*\).*$,\1,p' $lang`
714           if test "x$lang_alias" = x
715           then
716                 echo "$lang doesn't set \$language." 1>&2
717                 exit 1
718           fi
719           case ${build_by_default},${enable_languages}, in
720           *,$lang_alias,*) add_this_lang=yes ;;
721           no,*) add_this_lang=no ;;
722           *,all,*) add_this_lang=yes ;;
723           *) add_this_lang=no ;;
724           esac
725           if test x"${add_this_lang}" = xyes; then
726               eval target_libs='"$target_libs "'\"$this_lang_libs\"
727           else
728               eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\"
729           fi
730           ;;
731         esac
732 done
733
734 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
735 # $target_configdirs.
736 # If we have the source for $noconfigdirs entries, add them to $notsupp.
737
738 notsupp=""
739 for dir in . $skipdirs $noconfigdirs ; do
740   dirname=`echo $dir | sed -e s/target-//g`
741   if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
742     configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
743     if test -r $srcdir/$dirname/configure ; then
744       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
745         true
746       else
747         notsupp="$notsupp $dir"
748       fi
749     fi
750   fi
751   if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
752     target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
753     if test -r $srcdir/$dirname/configure ; then
754       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
755         true
756       else
757         notsupp="$notsupp $dir"
758       fi
759     fi
760   fi
761 done
762
763 # Sometimes the tools are distributed with libiberty but with no other
764 # libraries.  In that case, we don't want to build target-libiberty.
765 if test -n "${target_configdirs}" ; then
766   others=
767   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
768     if test "$i" != "libiberty" ; then
769       if test -r $srcdir/$i/configure ; then
770         others=yes;
771         break;
772       fi
773     fi
774   done
775   if test -z "${others}" ; then
776     target_configdirs=
777   fi
778 fi
779
780 # Deconfigure all subdirectories, in case we are changing the
781 # configuration from one where a subdirectory is supported to one where it
782 # is not.
783 if test -z "${norecursion}" && test -n "${configdirs}" ; then
784   for i in `echo ${configdirs} | sed -e s/target-//g` ; do
785     rm -f $i/Makefile
786   done
787 fi
788 if test -z "${norecursion}" && test -n "${target_configdirs}" ; then
789   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
790     rm -f ${target_subdir}/$i/Makefile
791   done
792 fi
793
794 # Quietly strip out all directories which aren't configurable in this tree.
795 # This relies on all configurable subdirectories being autoconfiscated, which
796 # is now the case.
797 configdirs_all="$configdirs"
798 configdirs=
799 for i in ${configdirs_all} ; do
800   if test -f ${srcdir}/$i/configure ; then
801     configdirs="${configdirs} $i"
802   fi
803 done
804 target_configdirs_all="$target_configdirs"
805 target_configdirs=
806 for i in ${target_configdirs_all} ; do
807   j=`echo $i | sed -e s/target-//g` 
808   if test -f ${srcdir}/$j/configure ; then
809     target_configdirs="${target_configdirs} $i"
810   fi
811 done
812
813 # Produce a warning message for the subdirs we can't configure.
814 # This isn't especially interesting in the Cygnus tree, but in the individual
815 # FSF releases, it's important to let people know when their machine isn't
816 # supported by the one or two programs in a package.
817
818 if test -n "${notsupp}" && test -z "${norecursion}" ; then
819   # If $appdirs is non-empty, at least one of those directories must still
820   # be configured, or we error out.  (E.g., if the gas release supports a
821   # specified target in some subdirs but not the gas subdir, we shouldn't
822   # pretend that all is well.)
823   if test -n "$appdirs" ; then
824     for dir in $appdirs ; do
825       if test -r $dir/Makefile.in ; then
826         if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
827           appdirs=""
828           break
829         fi
830         if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
831           appdirs=""
832           break
833         fi
834       fi
835     done
836     if test -n "$appdirs" ; then
837       echo "*** This configuration is not supported by this package." 1>&2
838       exit 1
839     fi
840   fi
841   # Okay, some application will build, or we don't care to check.  Still
842   # notify of subdirs not getting built.
843   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
844   echo "    ${notsupp}" 1>&2
845   echo "    (Any other directories should still work fine.)" 1>&2
846 fi
847
848 case "$host" in
849   *msdosdjgpp*)
850     enable_gdbtk=no ;;
851 esac
852 # Determine whether gdb needs tk/tcl or not.
853 case "$enable_gdbtk" in
854   no)
855     GDB_TK="" ;;
856   *)
857     GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui" ;;
858 esac
859
860 copy_dirs=
861
862 # Handle --with-headers=XXX.  If the value is not "yes", the contents of
863 # the named directory are copied to $(tooldir)/sys-include.
864 if test x"${with_headers}" != x ; then
865   if test x${is_cross_compiler} = xno ; then
866     echo 1>&2 '***' --with-headers is only supported when cross compiling
867     exit 1
868   fi
869   if test x"${with_headers}" != xyes ; then
870     case "${exec_prefixoption}" in
871     "") x=${prefix} ;;
872     *) x=${exec_prefix} ;;
873     esac
874     copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
875   fi
876 fi
877
878 # Handle --with-libs=XXX.  If the value is not "yes", the contents of
879 # the name directories are copied to $(tooldir)/lib.  Multiple directories
880 # are permitted.
881 if test x"${with_libs}" != x ; then
882   if test x${is_cross_compiler} = xno ; then
883     echo 1>&2 '***' --with-libs is only supported when cross compiling
884     exit 1
885   fi
886   if test x"${with_libs}" != xyes ; then
887     # Copy the libraries in reverse order, so that files in the first named
888     # library override files in subsequent libraries.
889     case "${exec_prefixoption}" in
890     "") x=${prefix} ;;
891     *) x=${exec_prefix} ;;
892     esac
893     for l in ${with_libs}; do
894       copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
895     done
896   fi
897 fi
898
899 # Handle ${copy_dirs}
900 set fnord ${copy_dirs}
901 shift
902 while test $# != 0 ; do
903   if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
904     :
905   else
906     echo Copying $1 to $2
907
908     # Use the install script to create the directory and all required
909     # parent directories.
910     if test -d $2 ; then
911       :
912     else
913       echo >config.temp
914       ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
915     fi
916
917     # Copy the directory, assuming we have tar.
918     # FIXME: Should we use B in the second tar?  Not all systems support it.
919     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
920
921     # It is the responsibility of the user to correctly adjust all
922     # symlinks.  If somebody can figure out how to handle them correctly
923     # here, feel free to add the code.
924
925     echo $1 > $2/COPIED
926   fi
927   shift; shift
928 done
929
930 # Work in distributions that contain no compiler tools, like Autoconf.
931 tentative_cc=""
932 if test -d ${srcdir}/config ; then
933 case "${host}" in
934   m68k-hp-hpux*)
935     # Avoid "too much defining" errors from HPUX compiler.
936     tentative_cc="cc -Wp,-H256000"
937     host_makefile_frag="config/mh-hp300"
938     ;;
939   m68k-apollo-sysv*)
940     tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
941     host_makefile_frag="config/mh-apollo68"
942     ;;
943   m68k-apollo-bsd*)
944     #None of the Apollo compilers can compile gas or binutils.  The preprocessor
945     # chokes on bfd, the compiler won't let you assign integers to enums, and
946     # other problems.  Defining CC to gcc is a questionable way to say "don't use
947     # the apollo compiler" (the preferred version of GCC could be called cc,
948     # or whatever), but I'm not sure leaving CC as cc is any better...
949     #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
950     tentative_cc=gcc
951     host_makefile_frag="config/mh-a68bsd"
952     ;;
953   m88k-dg-dgux*)
954     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
955     host_makefile_frag="config/mh-dgux"
956     ;;
957   m88k-harris-cxux*)
958     # Under CX/UX, we want to tell the compiler to use ANSI mode.
959     tentative_cc="cc -Xa"
960     host_makefile_frag="config/mh-cxux"
961     ;;
962   m88k-motorola-sysv*)
963     host_makefile_frag="config/mh-delta88"
964     ;;
965   mips*-dec-ultrix*)
966     tentative_cc="cc -Wf,-XNg1000"
967     host_makefile_frag="config/mh-decstation"
968     ;;
969   mips*-nec-sysv4*)
970     # The C compiler on NEC MIPS SVR4 needs bigger tables.
971     tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
972     host_makefile_frag="config/mh-necv4"
973     ;;
974   mips*-sgi-irix6*)
975     host_makefile_frag="config/mh-irix6"
976     ;;
977   mips*-sgi-irix5*)
978     host_makefile_frag="config/mh-irix5"
979     ;;
980   mips*-sgi-irix4*)
981     # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
982     # environment.  Also bump switch table size so that cp-parse will
983     # compile.  Bump string length limit so linker builds.
984     tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
985     ;;
986   mips*-sgi-irix3*)
987     host_makefile_frag="config/mh-sysv"
988     ;;
989   mips*-*-sysv4*)
990     host_makefile_frag="config/mh-sysv4"
991     ;;
992   mips*-*-sysv*)
993     # This is for a MIPS running RISC/os 4.52C.
994
995     # This is needed for GDB, but needs to be in the top-level make because
996     # if a library is compiled with the bsd headers and gets linked with the
997     # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
998     # a different size).
999     # ptrace(2) apparently has problems in the BSD environment.  No workaround is
1000     # known except to select the sysv environment.  Could we use /proc instead?
1001     # These "sysv environments" and "bsd environments" often end up being a pain.
1002     #
1003     # This is not part of CFLAGS because perhaps not all C compilers have this
1004     # option.
1005     tentative_cc="cc -systype sysv"
1006     host_makefile_frag="config/mh-riscos"
1007     ;;
1008   i370-ibm-opened*)
1009     tentative_cc="c89"
1010     host_makefile_frag="config/mh-openedition"
1011     ;;
1012   i[3456]86-*-sysv5*)
1013     host_makefile_frag="config/mh-sysv5"
1014     ;;
1015   i[3456]86-*-dgux*)
1016     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1017     host_makefile_frag="config/mh-dgux386"
1018     ;;
1019   i[3456]86-ncr-sysv4.3*)
1020     # The MetaWare compiler will generate a copyright message unless you
1021     # turn it off by adding the -Hnocopyr flag.
1022     tentative_cc="cc -Hnocopyr"
1023     host_makefile_frag="config/mh-ncrsvr43"
1024     ;;
1025   i[3456]86-ncr-sysv4*)
1026     # for an NCR 3000 (i486/SVR4) system.
1027     # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
1028     # This compiler not only emits obnoxious copyright messages every time
1029     # you run it, but it chokes and dies on a whole bunch of GNU source
1030     # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
1031     tentative_cc="/usr/ccs/ATT/cc"
1032     host_makefile_frag="config/mh-ncr3000"
1033     ;;
1034   i[3456]86-*-sco3.2v5*)
1035     host_makefile_frag="config/mh-sysv"
1036     ;;
1037   i[3456]86-*-sco*)
1038     # The native C compiler botches some simple uses of const.  Unfortunately,
1039     # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
1040     tentative_cc="cc -Dconst="
1041     host_makefile_frag="config/mh-sco"
1042     ;;
1043   i[3456]86-*-udk*)
1044     host_makefile_frag="config/mh-sysv5"
1045     ;;
1046   i[3456]86-*-isc*)
1047     host_makefile_frag="config/mh-sysv"
1048     ;;
1049   i[3456]86-*-solaris2*)
1050     host_makefile_frag="config/mh-sysv4"
1051     ;;
1052   i[3456]86-*-aix*)
1053     host_makefile_frag="config/mh-aix386"
1054     ;;
1055   i[3456]86-*-msdosdjgpp*)
1056     host_makefile_frag="config/mh-djgpp"
1057     ;;
1058   *-cygwin*)
1059     host_makefile_frag="config/mh-cygwin"
1060     ;;
1061   *-mingw32*)
1062     host_makefile_frag="config/mh-mingw32"
1063     ;;
1064   *-interix*)
1065     host_makefile_frag="config/mh-interix"
1066     ;;
1067   vax-*-ultrix2*)
1068     # The old BSD pcc isn't up to compiling parts of gdb so use gcc
1069     tentative_cc=gcc
1070     ;;
1071   *-*-solaris2*)
1072     host_makefile_frag="config/mh-solaris"
1073     ;;
1074   m68k-sun-sunos*)
1075     # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
1076     # without overflowing the jump tables (-J says to use a 32 bit table)
1077     tentative_cc="cc -J"
1078     ;;
1079   *-hp-hpux[78]*)
1080     tentative_cc="cc -Wp,-H256000"
1081     host_makefile_frag="config/mh-hpux8"
1082     ;;
1083   *-hp-hpux*)
1084     tentative_cc="cc -Wp,-H256000"
1085     host_makefile_frag="config/mh-hpux"
1086     ;;
1087   *-*-hiux*)
1088     tentative_cc="cc -Wp,-H256000"
1089     host_makefile_frag="config/mh-hpux"
1090     ;;
1091   rs6000-*-lynxos*)
1092     # /bin/cc is less than useful for our purposes.  Always use GCC
1093     tentative_cc="/usr/cygnus/progressive/bin/gcc"
1094     host_makefile_frag="config/mh-lynxrs6k"
1095     ;;
1096   *-*-lynxos*)
1097     # /bin/cc is less than useful for our purposes.  Always use GCC
1098     tentative_cc="/bin/gcc"
1099     ;;
1100   *-*-sysv4*)
1101     host_makefile_frag="config/mh-sysv4"
1102     ;;
1103   *-*-sysv*)
1104     host_makefile_frag="config/mh-sysv"
1105     ;;
1106 esac
1107 fi
1108
1109 rm -f mh-frag
1110 if test -n "${host_makefile_frag}" ; then
1111   for f in ${host_makefile_frag}
1112   do
1113     cat ${srcdir}/$f >> mh-frag
1114   done
1115   host_makefile_frag=mh-frag
1116 fi
1117
1118 case "${target}" in
1119   v810*)
1120     target_makefile_frag="config/mt-v810"
1121     ;;
1122   i[3456]86-*-netware*)
1123     target_makefile_frag="config/mt-netware"
1124     ;;
1125   powerpc-*-netware*)
1126     target_makefile_frag="config/mt-netware"
1127     ;;
1128   *-*-linux*)
1129     target_makefile_frag="config/mt-linux"
1130     ;;
1131   *-*-aix4.[3456789]* | *-*-aix[56789].*)
1132     target_makefile_frag="config/mt-aix43"
1133     ;;
1134   mips*-*-pe | sh*-*-pe | *arm-wince-pe)
1135     target_makefile_frag="config/mt-wince"
1136     ;;
1137 esac
1138
1139 alphaieee_frag=
1140 case $target in
1141   alpha*-*-*)
1142     # This just makes sure to use the -mieee option to build target libs.
1143     # This should probably be set individually by each library.
1144     alphaieee_frag="config/mt-alphaieee"
1145     ;;
1146 esac
1147
1148 # If --enable-target-optspace always use -Os instead of -O2 to build
1149 # the target libraries, similarly if it is not specified, use -Os
1150 # on selected platforms.
1151 ospace_frag=
1152 case "${enable_target_optspace}:${target}" in
1153   yes:*)
1154     ospace_frag="config/mt-ospace"
1155     ;;
1156   :d30v-*)
1157     ospace_frag="config/mt-d30v"
1158     ;;
1159   :m32r-* | :d10v-* | :fr30-*)
1160     ospace_frag="config/mt-ospace"
1161     ;;
1162   no:* | :*)
1163     ;;
1164   *)
1165     echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1166     ;;
1167 esac
1168
1169 rm -f mt-frag
1170 if test -n "${target_makefile_frag}${alphaieee_frag}${ospace_frag}" ; then
1171   for f in ${target_makefile_frag} ${alphaieee_frag} ${ospace_frag}
1172   do
1173     cat ${srcdir}/$f >> mt-frag
1174   done
1175   target_makefile_frag=mt-frag
1176 fi
1177
1178 # Set with_gnu_as and with_gnu_ld as appropriate.
1179 #
1180 # This is done by determining whether or not the appropriate directory
1181 # is available, and by checking whether or not specific configurations
1182 # have requested that this magic not happen.
1183
1184 # The command line options always override the explicit settings in 
1185 # configure.in, and the settings in configure.in override this magic.
1186 #
1187 # If the default for a toolchain is to use GNU as and ld, and you don't 
1188 # want to do that, then you should use the --without-gnu-as and
1189 # --without-gnu-ld options for the configure script.
1190
1191 if test x${use_gnu_as} = x &&
1192    echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1193   with_gnu_as=yes
1194   withoptions="$withoptions --with-gnu-as"
1195 fi
1196
1197 if test x${use_gnu_ld} = x &&
1198    echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1199   with_gnu_ld=yes
1200   withoptions="$withoptions --with-gnu-ld"
1201 fi
1202
1203 # If using newlib, add --with-newlib to the withoptions so that gcc/configure
1204 # can detect this case.
1205
1206 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1207   with_newlib=yes
1208   withoptions="$withoptions --with-newlib"
1209 fi
1210
1211 # We default to --with-shared on platforms where -fpic is meaningless.
1212 # Well, we don't yet, but we will.
1213 if false && test "${host}" = "${target}" && test x${enable_shared} = x ; then
1214   case "${target}" in
1215     alpha*-dec-osf*)    enable_shared=yes ;;
1216     alpha*-*-linux*)    enable_shared=yes ;;
1217     mips-sgi-irix5*)    enable_shared=yes ;;
1218     *)                  enable_shared=no ;;
1219   esac
1220 fi
1221
1222 case "${enable_shared}" in
1223   yes) shared=yes ;;
1224   no) shared=no ;;
1225   "") shared=no ;;
1226   *) shared=yes ;;
1227 esac
1228
1229
1230 # Default to using --with-stabs for certain targets.
1231 if test x${with_stabs} = x ; then
1232   case "${target}" in
1233   mips*-*-irix6*o32)
1234     with_stabs=yes;
1235     withoptions="${withoptions} --with-stabs"
1236     ;;
1237   mips*-*-irix6*)
1238     ;;
1239   mips*-*-* | alpha*-*-osf*)
1240     with_stabs=yes;
1241     withoptions="${withoptions} --with-stabs"
1242     ;;
1243   esac
1244 fi
1245
1246 # hpux11 in 64bit mode has libraries in a weird place.  Arrange to find
1247 # them automatically.
1248 case "${host}" in
1249   hppa*64*-*-hpux11*)   
1250     withoptions="$withoptions -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
1251     ;;
1252 esac
1253
1254 # If we aren't going to be using gcc, see if we can extract a definition
1255 # of CC from the fragment.
1256 # Actually, use the 'pre-extracted' version above.
1257 if test -z "${CC}" && test "${build}" = "${host}" ; then
1258   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
1259   found=
1260   for dir in $PATH; do
1261     test -z "$dir" && dir=.
1262     if test -f $dir/gcc; then
1263       found=yes
1264       break
1265     fi
1266   done
1267   IFS="$save_ifs"
1268   if test -z "${found}" && test -n "${tentative_cc}" ; then
1269     CC=$tentative_cc
1270   fi
1271 fi
1272
1273 # post-target:
1274
1275 # Make sure that the compiler is able to generate an executable.  If it
1276 # can't, we are probably in trouble.  We don't care whether we can run the
1277 # executable--we might be using a cross compiler--we only care whether it
1278 # can be created.  At this point the main configure script has set CC.
1279 we_are_ok=no
1280 echo "int main () { return 0; }" > conftest.c
1281 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1282 if test $? = 0 ; then
1283   if test -s conftest || test -s conftest.exe ; then
1284     we_are_ok=yes
1285   fi
1286 fi 
1287 case $we_are_ok in
1288   no)
1289     echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1290     echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1291     rm -f conftest*
1292     exit 1
1293     ;;
1294 esac
1295 rm -f conftest*
1296
1297 # The Solaris /usr/ucb/cc compiler does not appear to work.
1298 case "${host}" in
1299   sparc-sun-solaris2*)
1300       CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1301       if test "`type $CCBASE | sed 's/^[^/]*//'`" = "/usr/ucb/cc" ; then
1302           could_use=
1303           test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1304           if test -d /opt/cygnus/bin ; then
1305               if test "$could_use" = "" ; then
1306                   could_use="/opt/cygnus/bin"
1307               else
1308                   could_use="$could_use or /opt/cygnus/bin"
1309               fi
1310           fi
1311         if test "$could_use" = "" ; then
1312             echo "Warning: compilation may fail because you're using"
1313             echo "/usr/ucb/cc.  You should change your PATH or CC "
1314             echo "variable and rerun configure."
1315         else
1316             echo "Warning: compilation may fail because you're using"
1317             echo "/usr/ucb/cc, when you should use the C compiler from"
1318             echo "$could_use.  You should change your"
1319             echo "PATH or CC variable and rerun configure."
1320         fi
1321       fi
1322   ;;
1323 esac
1324
1325 # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1326 # binutils tools will find libbfd.so.
1327 if test "${shared}" = "yes" ; then
1328   sed -e 's/^SET_LIB_PATH[      ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
1329       Makefile > Makefile.tem
1330   rm -f Makefile
1331   mv -f Makefile.tem Makefile
1332
1333   case "${host}" in
1334   *-*-hpux*)
1335     sed -e 's/^RPATH_ENVVAR[    ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
1336         Makefile > Makefile.tem
1337     rm -f Makefile
1338     mv -f Makefile.tem Makefile
1339     ;;
1340   esac
1341 fi
1342
1343 # Base args.  Strip norecursion, cache-file, srcdir, host, build, target.
1344 # These are the ones we might not want to pass down to subconfigures.
1345 baseargs=`echo "${arguments}" | \
1346         sed -e 's/--no[^        ]*//' \
1347             -e 's/--cache[a-z-]*=[^     ]*//' \
1348             -e 's/--sr[a-z-]*=[^        ]*//' \
1349             -e 's/--ho[a-z-]*=[^        ]*//' \
1350             -e 's/--bu[a-z-]*=[^        ]*//' \
1351             -e 's/--ta[a-z-]*=[^        ]*//'`
1352
1353 # For the build-side libraries, we just need to pretend we're native,
1354 # and not use the same cache file.  Multilibs are neither needed nor
1355 # desired.
1356 buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}"
1357
1358 # Record target_configdirs and the configure arguments for target and
1359 # build configuration in Makefile.
1360 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1361 targargs=${baseargs}
1362
1363 # Passing a --with-cross-host argument lets the target libraries know
1364 # whether they are being built with a cross-compiler or being built
1365 # native.  However, it would be better to use other mechanisms to make the
1366 # sorts of decisions they want to make on this basis.  Please consider
1367 # this option to be deprecated.  FIXME.
1368 if test x${is_cross_compiler} = xyes ; then
1369   targargs="--with-cross-host=${host_alias} ${targargs}"
1370 fi
1371
1372 # Default to --enable-multilib.
1373 if test x${enable_multilib} = x ; then
1374   targargs="--enable-multilib ${targargs}"
1375 fi
1376
1377 # Pass --with-newlib if appropriate.  Note that target_configdirs has
1378 # changed from the earlier setting of with_newlib.
1379 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
1380   targargs="--with-newlib ${targargs}"
1381 fi
1382
1383 # Pass the appropriate --host, --build, and --cache-file arguments.
1384 targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
1385
1386 # provide a proper gxx_include_dir.
1387 # Note, if you change the default, make sure to fix both here and in
1388 # the gcc and libstdc++-v3 subdirectories.
1389 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
1390 gxx_include_dir=
1391 if test -n "${with_gxx_include_dir}"; then
1392   case "${with_gxx_include_dir}" in
1393     yes )
1394       echo "configure.in: error: bad value ${withval} given for g++ include directory" 1>&2
1395       exit 1
1396       ;;
1397     no )
1398       ;;
1399     * )
1400       gxx_include_dir=${with_gxx_include_dir}
1401       ;;
1402   esac
1403 fi
1404 if test x${gxx_include_dir} = x; then
1405   if test x${enable_version_specific_runtime_libs} = xyes; then
1406     gxx_include_dir='${libsubdir}/include/c++'
1407   else
1408     . ${srcdir}/config.if
1409     gxx_include_dir='${prefix}/include/${libstdcxx_incdir}'
1410   fi
1411 else
1412   gxx_include_dir=${gxx_include_dir}
1413 fi
1414
1415 FLAGS_FOR_TARGET=
1416 case " $target_configdirs " in
1417  *" newlib "*)
1418   case " $targargs " in
1419   *" --with-newlib "*)
1420    case "$target" in
1421    *-cygwin*)
1422      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 -isystem $$s/newlib/libc/sys/cygwin -isystem $$s/newlib/libc/sys/cygwin32' ;;
1423    esac
1424
1425    # If we're not building GCC, don't discard standard headers.
1426    if test -d ${srcdir}/gcc; then
1427      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
1428
1429      if test "${build}" != "${host}"; then
1430        # On Canadian crosses, CC_FOR_TARGET will have already been set
1431        # by `configure', so we won't have an opportunity to add -Bgcc/
1432        # to it.  This is right: we don't want to search that directory
1433        # for binaries, but we want the header files in there, so add
1434        # them explicitly.
1435        FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
1436
1437        # Someone might think of using the pre-installed headers on
1438        # Canadian crosses, in case the installed compiler is not fully
1439        # compatible with the compiler being built.  In this case, it
1440        # would be better to flag an error than risking having
1441        # incompatible object files being constructed.  We can't
1442        # guarantee that an error will be flagged, but let's hope the
1443        # compiler will do it, when presented with incompatible header
1444        # files.
1445      fi
1446    fi
1447
1448    case "${target}-${is_cross_compiler}" in
1449    i[3456]86-*-linux*-no)
1450       # Here host == target, so we don't need to build gcc,
1451       # so we don't want to discard standard headers.
1452       FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
1453       ;;
1454    *)
1455       # If we're building newlib, use its generic headers last, but search
1456       # for any libc-related directories first (so make it the last -B
1457       # switch).
1458       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
1459       ;;
1460    esac
1461    ;;
1462   esac
1463   ;;
1464 esac
1465
1466 # On Canadian crosses, we'll be searching the right directories for
1467 # the previously-installed cross compiler, so don't bother to add
1468 # flags for directories within the install tree of the compiler
1469 # being built; programs in there won't even run.
1470 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
1471   # Search for pre-installed headers if nothing else fits.
1472   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include'
1473 fi
1474
1475 if test "x${use_gnu_ld}" = x &&
1476    echo " ${configdirs} " | grep " ld " > /dev/null ; then
1477   # Arrange for us to find uninstalled linker scripts.
1478   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
1479 fi
1480
1481 if test "x${CC_FOR_TARGET+set}" = xset; then
1482   :
1483 elif test -d ${srcdir}/gcc; then
1484   CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
1485 elif test "$host" = "$target"; then
1486   CC_FOR_TARGET='$(CC)'
1487 else
1488   CC_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
1489 fi
1490 # On Canadian crosses, configure reads CC_FOR_TARGET from Makefile,
1491 # if Makefile exists.  Prevent $(FLAGS_FOR_TARGET) from being duplicated.
1492 case $CC_FOR_TARGET in
1493 *' $(FLAGS_FOR_TARGET)') ;;
1494 *) CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1495 esac
1496
1497 if test "x${GCJ_FOR_TARGET+set}" = xset; then
1498   :
1499 elif test -d ${srcdir}/gcc; then
1500   GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/'
1501 elif test "$host" = "$target"; then
1502   GCJ_FOR_TARGET='gcj'
1503 else
1504   GCJ_FOR_TARGET=`echo gcj | sed -e 's/x/x/' ${program_transform_name}`
1505 fi
1506 case $GCJ_FOR_TARGET in
1507 *' $(FLAGS_FOR_TARGET)') ;;
1508 *) GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1509 esac
1510
1511 # Don't use libstdc++-v3's flags to configure/build itself.
1512 libstdcxx_flags='`case $$dir in libstdc++-v3 | libjava) ;; *) test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
1513
1514 if test "x${CXX_FOR_TARGET+set}" = xset; then
1515   :
1516 elif test -d ${srcdir}/gcc; then
1517   # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead
1518   # of g++ for linking C++ or Java, because g++ has -shared-libgcc by
1519   # default whereas gcc does not.
1520   CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3 | libjava) echo xgcc -shared-libgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
1521 elif test "$host" = "$target"; then
1522   CXX_FOR_TARGET='$(CXX)'
1523 else
1524   CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}`
1525 fi
1526 case $CXX_FOR_TARGET in
1527 *' $(FLAGS_FOR_TARGET)') ;;
1528 *) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1529 esac
1530 qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
1531
1532 # We want to defer the evaluation of `cmd`s and shell variables in
1533 # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
1534 # bootstrap.  We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single
1535 # quotes, but we still have to duplicate `$'s so that shell variables
1536 # can be expanded by the nested make as shell variables, not as make
1537 # macros.
1538 qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
1539
1540 sedtemp=sed.$$
1541 cat >$sedtemp <<EOF
1542 s:@target_configdirs@:${target_configdirs}:
1543 s%@target_configargs@%${targargs}%
1544 s%@FLAGS_FOR_TARGET@%${FLAGS_FOR_TARGET}%
1545 s%@CC_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}%
1546 s%@GCJ_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}%
1547 s%@CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}%
1548 s%@CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}%
1549 s%@target_subdir@%${target_subdir}%
1550 s%@build_subdir@%${build_subdir}%
1551 s%@build_configargs@%${buildargs}%
1552 s%@gxx_include_dir@%${gxx_include_dir}%
1553 EOF
1554 sed -f $sedtemp Makefile > Makefile.tem
1555 rm -f Makefile $sedtemp
1556 mv -f Makefile.tem Makefile
1557
1558 #
1559 # Local Variables:
1560 # fill-column: 131
1561 # End:
1562 #