OSDN Git Service

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