OSDN Git Service

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