OSDN Git Service

* testsuite/27_io/istream_seeks.cc: Inform DejaGnu of required files.
[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 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) ;; *) cat $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/libstdc++.INC 2>/dev/null || : ;; 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 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     *-*-*)
332       if test -f ${srcdir}/config/mh-${host_cpu}pic; then
333         host_makefile_frag="${host_makefile_frag} config/mh-${host_cpu}pic"
334       fi
335       ;;
336   esac
337 fi
338
339 rm -f mh-frag
340 if [ -n "${host_makefile_frag}" ] ; then
341   for f in ${host_makefile_frag}
342   do
343     cat ${srcdir}/$f >> mh-frag
344   done
345   host_makefile_frag=mh-frag
346 fi
347
348 # per-target:
349
350 case "${target}" in
351   *-*-chorusos)
352     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
353     ;;
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 copy_dirs=
452
453 # Handle --with-headers=XXX.  The contents of the named directory are
454 # copied to $(tooldir)/sys-include.
455 if [ x"${with_headers}" != x ]; then
456   if [ x${is_cross_compiler} = xno ]; then
457     echo 1>&2 '***' --with-headers is only supported when cross compiling
458     exit 1
459   fi
460   case "${exec_prefixoption}" in
461   "") x=${prefix} ;;
462   *) x=${exec_prefix} ;;
463   esac
464   copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
465 fi
466
467 # Handle --with-libs=XXX.  Multiple directories are permitted.  The
468 # contents are copied to $(tooldir)/lib.
469 if [ x"${with_libs}" != x ]; then
470   if [ x${is_cross_compiler} = xno ]; then
471     echo 1>&2 '***' --with-libs is only supported when cross compiling
472     exit 1
473   fi
474   # Copy the libraries in reverse order, so that files in the first named
475   # library override files in subsequent libraries.
476   case "${exec_prefixoption}" in
477   "") x=${prefix} ;;
478   *) x=${exec_prefix} ;;
479   esac
480   for l in ${with_libs}; do
481     copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
482   done
483 fi
484
485 # If both --with-headers and --with-libs are specified, default to
486 # --without-newlib.
487 if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
488   if [ x"${with_newlib}" = x ]; then
489     with_newlib=no
490   fi
491 fi
492
493 # Recognize --with-newlib/--without-newlib.
494 if [ x${with_newlib} = xno ]; then
495   skipdirs="${skipdirs} target-newlib"
496 elif [ x${with_newlib} = xyes ]; then
497   skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
498 fi
499
500 # Default to using --with-stabs for certain targets.
501 if [ x${with_stabs} = x ]; then
502   case "${target}" in
503   mips*-*-irix6*)
504     ;;
505   mips*-*-* | alpha*-*-osf*)
506     with_stabs=yes;
507     withoptions="${withoptions} --with-stabs"
508     ;;
509   esac
510 fi
511
512 # Handle ${copy_dirs}
513 set fnord ${copy_dirs}
514 shift
515 while [ $# != 0 ]; do
516   if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
517     :
518   else
519     echo Copying $1 to $2
520
521     # Use the install script to create the directory and all required
522     # parent directories.
523     if [ -d $2 ]; then
524       :
525     else
526       echo >config.temp
527       ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
528     fi
529
530     # Copy the directory, assuming we have tar.
531     # FIXME: Should we use B in the second tar?  Not all systems support it.
532     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
533
534     # It is the responsibility of the user to correctly adjust all
535     # symlinks.  If somebody can figure out how to handle them correctly
536     # here, feel free to add the code.
537
538     echo $1 > $2/COPIED
539   fi
540   shift; shift
541 done
542
543 # Configure extra directories which are host specific
544
545 case "${host}" in
546         i[3456]86-*-go32*)
547           configdirs="$configdirs dosrel" ;;
548         i[3456]86-*-mingw32*)
549           configdirs="$configdirs dosrel" ;;
550         *-cygwin*)
551           configdirs="$configdirs libtermcap dosrel" ;;
552 esac
553
554 # Remove more programs from consideration, based on the host or 
555 # target this usually means that a port of the program doesn't
556 # exist yet.
557
558 noconfigdirs=""
559
560 case "${host}" in
561   hppa*64*-*-*)
562     noconfigdirs="$noconfigdirs byacc"
563     ;;
564   i[3456]86-*-vsta)
565     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"
566     ;;
567   i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*)
568     noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile apache inet itcl tix db snavigator gnuserv libffi"
569         ;;
570   i[3456]86-*-mingw32*)
571     # 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"
572      noconfigdirs="expect dejagnu cvs autoconf automake send-pr rcs guile perl texinfo apache inet libtool"
573         ;;
574   i[3456]86-*-beos*)
575      noconfigdirs="$noconfigdirs tk itcl tix libgui gdb"
576      ;;
577   *-*-cygwin*)
578      noconfigdirs="autoconf automake send-pr rcs guile perl apache inet"
579     ;;
580   *-*-netbsd*)
581     noconfigdirs="rcs"
582     ;;
583   ppc*-*-pe)
584      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"
585     ;;
586   powerpc-*-beos*)
587     noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline"
588     ;;
589 esac
590
591 case "${target}" in
592   *-*-netware)
593     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-newlib target-libiberty target-libgloss ${libgcj}"
594     ;;
595   *-*-rtems*)
596     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
597     ;;
598   *-*-vxworks*)
599     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
600     ;;
601   alpha*-dec-osf*)
602     # ld works, but does not support shared libraries.  emacs doesn't
603     # work.  newlib is not 64 bit ready.  I'm not sure about fileutils.
604     # gas doesn't generate exception information.
605     noconfigdirs="$noconfigdirs gas ld emacs fileutils target-newlib target-libgloss ${libgcj}"
606     ;;
607   alpha*-*-*vms*)
608     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
609     ;;
610   alpha*-*-linux*)
611     # newlib is not 64 bit ready
612     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
613     # linux has rx in libc
614     skipdirs="$skipdirs target-librx"
615     ;;
616   alpha*-*-*)
617     # newlib is not 64 bit ready
618     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
619     ;;
620   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
621     noconfigdirs="$noconfigdirs ${libgcj}"
622     noconfigdirs="$noconfigdirs target-examples"
623     noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
624     noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim"
625     noconfigdirs="$noconfigdirs expect dejagnu"
626     # the C++ libraries don't build on top of CE's C libraries
627     noconfigdirs="$noconfigdirs ${libstdcxx_version}"
628     skipdirs="$skipdirs target-newlib"
629     case "${host}" in
630       *-*-cygwin*) ;; # keep gdb and readline
631       *) noconfigdirs="$noconfigdirs gdb readline ${libstdcxx_version}"
632          ;;
633     esac
634     ;;
635   arc-*-*)
636     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
637     ;;
638   arm-*-pe*)
639     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
640     ;;
641   arm-*-coff*)
642     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
643     if [ x${is_cross_compiler} != xno ] ; then
644            target_configdirs="${target_configdirs} target-bsp target-cygmon"
645     fi
646     ;;
647   arm-*-elf*)
648     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
649     if [ x${is_cross_compiler} != xno ] ; then
650            target_configdirs="${target_configdirs} target-bsp target-cygmon"
651     fi
652     ;;
653   arm-*-oabi*)
654     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
655     ;;
656   c4x-*-*)
657     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-libgloss ${libgcj}"
658     ;;
659   c54x*-*-* | tic54x-*-*)
660     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj} gcc gdb newlib"
661     ;;
662   thumb-*-coff)
663     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
664     ;;
665   thumb-*-elf)
666     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
667     ;;
668   thumb-*-oabi)
669     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
670     ;;
671   strongarm-*-elf)
672     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
673     if [ x${is_cross_compiler} != xno ] ; then
674            target_configdirs="${target_configdirs} target-bsp target-cygmon"
675     fi
676     ;;
677   strongarm-*-coff)
678     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
679     if [ x${is_cross_compiler} != xno ] ; then
680            target_configdirs="${target_configdirs} target-bsp target-cygmon"
681     fi
682     ;;
683   xscale-*-elf)
684     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
685     if [ x${is_cross_compiler} != xno ] ; then
686            target_configdirs="${target_configdirs} target-bsp target-cygmon"
687     fi
688     ;;
689   xscale-*-coff)
690     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
691     if [ x${is_cross_compiler} != xno ] ; then
692            target_configdirs="${target_configdirs} target-bsp target-cygmon"
693     fi
694     ;;
695   thumb-*-pe)
696     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
697     ;;
698   arm-*-riscix*)
699     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
700     ;;
701   d10v-*-*)
702     noconfigdirs="$noconfigdirs target-librx ${libstdcxx_version} target-libgloss ${libgcj}"
703     ;;
704   d30v-*-*)
705     noconfigdirs="${libgcj}"
706     ;;
707   fr30-*-elf*)
708     noconfigdirs="${libgcj}"
709     if [ x${is_cross_compiler} != xno ] ; then
710            target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
711     fi
712     ;;
713   h8300*-*-* | \
714   h8500-*-*)
715     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-libgloss ${libgcj}"
716     ;;
717   hppa*64*-*-linux* | parisc*64*-*-linux*)
718     # In this case, it's because the hppa64-linux target is for
719     # the kernel only at this point and has no libc, and thus no
720     # headers, crt*.o, etc., all of which are needed by these.
721     noconfigdirs="$noconfigdirs target-zlib"
722     ;;
723   hppa*-*-*elf* | \
724   parisc*-*-linux* | hppa*-*-linux* | \
725   hppa*-*-lites* | \
726   hppa*64*-*-*)
727     noconfigdirs="${libgcj}"
728     # Do configure ld/binutils/gas for this case.
729     ;;
730   hppa*-*-*)
731     # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
732     # cc is gcc, and on any system a user should be able to link cc to
733     # whatever they want.  FIXME, emacs emacs19).
734     case "${CC}" in
735         "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
736         *) ;;
737     esac
738     noconfigdirs="$noconfigdirs ld shellutils"
739     ;;
740   ia64*-*-elf*)
741     # No gdb support yet.
742     noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
743     ;;
744   i[3456]86-*-coff | i[3456]86-*-elf)
745     noconfigdirs="${libgcj}"
746     if [ x${is_cross_compiler} != xno ] ; then
747          target_configdirs="${target_configdirs} target-libstub target-cygmon"
748     fi
749     ;;
750   *-*-linux*)
751     # linux has rx in libc
752     skipdirs="$skipdirs target-librx"
753     ;;
754   i[3456]86-*-mingw32*)
755     target_configdirs="$target_configdirs target-mingw"
756     noconfigdirs="$noconfigdirs expect target-libgloss"
757
758     # Can't build gdb for mingw32 if not native.
759     case "${host}" in
760       i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
761       *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv"
762          ;;
763     esac
764     ;;    
765   *-*-cygwin*)
766     target_configdirs="$target_configdirs target-libtermcap target-winsup"
767     noconfigdirs="$noconfigdirs target-gperf target-libgloss"
768     # always build newlib.
769     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
770
771     # Can't build gdb for Cygwin if not native.
772     case "${host}" in
773       *-*-cygwin*) ;; # keep gdb tcl tk expect etc.
774       *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui db snavigator gnuserv"
775          ;;
776     esac
777     ;;    
778   i[3456]86-*-pe)
779     noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-libgloss ${libgcj}"
780     ;;
781   i[3456]86-*-sco3.2v5*)
782     # The linker does not yet know about weak symbols in COFF,
783     # and is not configured to handle mixed ELF and COFF.
784     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
785     ;;
786   i[3456]86-*-sco*)
787     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
788     ;;
789   i[3456]86-*-solaris2*)
790     noconfigdirs="$noconfigdirs target-libgloss"
791     ;;
792   i[3456]86-*-sysv4*)
793     # The SYSV4 C compiler doesn't handle Emacs correctly
794     case "${CC}" in
795         "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
796         *) ;;
797     esac
798     # but that's okay since emacs doesn't work anyway
799     noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss ${libgcj}"
800     ;;
801   i[3456]86-*-beos*)
802      noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
803      ;;
804   m68k-*-elf*)
805     noconfigdirs="${libgcj}"
806     if [ x${is_cross_compiler} != xno ] ; then
807            target_configdirs="${target_configdirs} target-bsp target-cygmon"
808     fi
809     ;;
810   m68k-*-coff*)
811     noconfigdirs="${libgcj}"
812     if [ x${is_cross_compiler} != xno ] ; then
813            target_configdirs="${target_configdirs} target-bsp target-cygmon"
814     fi
815     ;;
816   mn10200-*-*)
817     noconfigdirs="$noconfigdirs ${libgcj}"
818     if [ x${is_cross_compiler} != xno ] ; then
819            target_configdirs="${target_configdirs} target-libstub target-cygmon"
820     fi
821     ;;
822   mn10300-*-*)
823     noconfigdirs="$noconfigdirs ${libgcj}"
824     if [ x${is_cross_compiler} != xno ] ; then
825            target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
826     fi
827     ;;
828   powerpc-*-aix*)
829     # copied from rs6000-*-* entry
830     # The configure and build of ld are currently disabled because
831     # GNU ld is known to be broken for AIX 4.2 and 4.3 (at least)
832     # The symptom is that GDBtk 4.18 fails at startup with a segfault
833     # if linked by GNU ld, but not if linked by the native ld.
834     noconfigdirs="$noconfigdirs gprof cvssrc target-libgloss ${libgcj} ld"
835     use_gnu_ld=no
836     ;;
837   powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
838     target_configdirs="$target_configdirs target-winsup"
839     noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix db snavigator gnuserv ${libgcj}"
840     # always build newlib.
841     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
842     ;;
843     # This is temporary until we can link against shared libraries
844   powerpcle-*-solaris*)
845     noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db snavigator gnuserv ${libgcj}"
846     ;;
847   powerpc-*-beos*)
848     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
849     ;;
850   powerpc-*-eabi)
851     noconfigdirs="${libgcj}"
852     if [ x${is_cross_compiler} != xno ] ; then
853            target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
854     fi
855     ;;
856   rs6000-*-lynxos*)
857     # The CVS server code doesn't work on the RS/6000
858     noconfigdirs="$noconfigdirs target-newlib gprof cvssrc ${libgcj}"
859     ;;
860   rs6000-*-aix*)
861     # The configure and build of ld are currently disabled because
862     # GNU ld is known to be broken for AIX 4.2 and 4.3 (at least)
863     # The symptom is that GDBtk 4.18 fails at startup with a segfault
864     # if linked by GNU ld, but not if linked by the native ld.
865     noconfigdirs="$noconfigdirs gprof ld ${libgcj}"
866     use_gnu_ld=no
867     ;;
868   rs6000-*-*)
869     noconfigdirs="$noconfigdirs gprof ${libgcj}"
870     ;;
871   m68k-apollo-*)
872     noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
873     ;;
874   mips*-*-irix5*)
875     # The GNU linker does not support shared libraries.
876     # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
877     noconfigdirs="$noconfigdirs ld gprof emacs target-libgloss ${libgcj}"
878     ;;
879   mips*-*-irix6*)
880     # The GNU assembler does not support IRIX 6.
881     # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
882     noconfigdirs="$noconfigdirs gas gprof emacs target-libgloss"
883     ;;
884   mips*-dec-bsd*)
885     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
886     ;;
887   mips*-*-bsd*)
888     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
889     ;;
890   mipstx39-*-*)
891     noconfigdirs="$noconfigdirs gprof ${libgcj}"   # same as generic mips
892     target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
893    ;;
894   mips*-*-*)
895     noconfigdirs="$noconfigdirs gprof ${libgcj}"
896     ;;
897   romp-*-*)
898     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
899     ;;
900   sh-*-*)
901     case "${host}" in
902       i[3456]86-*-vsta) ;; # don't add gprof back in
903       i[3456]86-*-go32*) ;; # don't add gprof back in
904       i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in
905       *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
906     esac
907     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
908     ;;
909   sparc-*-elf*)
910     if [ x${is_cross_compiler} != xno ] ; then
911            target_configdirs="${target_configdirs} target-libstub target-cygmon"
912     fi
913     ;;
914   sparc64-*-elf*)
915     if [ x${is_cross_compiler} != xno ] ; then
916            target_configdirs="${target_configdirs} target-libstub target-cygmon"
917     fi
918     ;;
919   sparclite-*-*)
920     if [ x${is_cross_compiler} != xno ] ; then
921            target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon"
922     fi
923     noconfigdirs="${libgcj}"
924     ;;
925   sparc-*-sunos4*)
926     noconfigdirs="${libgcj}"
927     if [ x${is_cross_compiler} != xno ] ; then
928            noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss"
929     else
930            use_gnu_ld=no
931     fi
932     ;;
933   sparc-*-solaris*)
934     ;;
935   v810-*-*)
936     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld ${libstdcxx_version} opcodes target-libgloss ${libgcj}"
937     ;;
938   v850-*-*)
939     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
940     ;;
941   v850e-*-*)
942     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
943     ;;
944   v850ea-*-*)
945     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
946     ;;
947   vax-*-vms)
948     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
949     ;;
950   vax-*-*)
951     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
952     ;;
953   *-*-lynxos*)
954     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
955     ;; 
956   *-*-macos* | \
957   *-*-mpw*)
958     # Macs want a resource compiler.
959     configdirs="$configdirs grez"
960     noconfigdirs="${libgcj}"
961     ;;    
962   *-*-*)
963     noconfigdirs="${libgcj}"
964     ;;
965 esac
966
967 # If we aren't building newlib, then don't build libgloss, since libgloss
968 # depends upon some newlib header files.
969 case "${noconfigdirs}" in
970   *target-libgloss*) ;;
971   *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
972 esac
973
974 # Make sure we don't let GNU ld be added if we didn't want it.
975 if [ x$with_gnu_ld = xno ]; then
976   use_gnu_ld=no
977   noconfigdirs="$noconfigdirs ld"
978 fi
979
980 # Make sure we don't let GNU as be added if we didn't want it.
981 if [ x$with_gnu_as = xno ]; then
982   use_gnu_as=no
983   noconfigdirs="$noconfigdirs gas"
984 fi
985
986 # Figure out what language subdirectories are present.
987 # Look if the user specified --enable-languages="..."; if not, use
988 # the environment variable $LANGUAGES if defined. $LANGUAGES might
989 # go away some day.
990 if test x"${enable_languages+set}" != xset; then
991         if test x"${LANGUAGES+set}" = xset; then
992                 enable_languages="`echo ${LANGUAGES} | tr ' ' ','`"
993         else
994                 enable_languages=all
995         fi
996 else
997         if test x"${enable_languages}" = x; then
998                 echo configure.in: --enable-languages needs at least one argument 1>&2
999                 exit 1
1000         fi
1001 fi
1002
1003 # First scan to see if an enabled language requires some other language.
1004 # We assume that a given config-lang.in will list all the language
1005 # front ends it requires, even if some are required indirectly.
1006 for lang in ${srcdir}/gcc/*/config-lang.in ..
1007 do
1008    case $lang in
1009     ..)
1010        ;;
1011     # The odd quoting in the next line works around
1012     # an apparent bug in bash 1.12 on linux.
1013     ${srcdir}/gcc/[*]/config-lang.in)
1014        ;;
1015     *)
1016        lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^      ]*\).*$,\1,p' $lang`
1017        this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^    ]*\).*$,\1,p' $lang`
1018        for other in $this_lang_requires
1019        do
1020           case ,${enable_languages}, in
1021            *,$other,*)
1022               ;;
1023            *,all,*)
1024               ;;
1025            *,$lang_alias,*)
1026               echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2
1027               enable_languages="$enable_languages,$other"
1028               ;;
1029           esac
1030        done
1031        ;;
1032    esac
1033 done
1034
1035 subdirs=
1036 for lang in ${srcdir}/gcc/*/config-lang.in ..
1037 do
1038         case $lang in
1039         ..) ;;
1040         # The odd quoting in the next line works around
1041         # an apparent bug in bash 1.12 on linux.
1042         ${srcdir}/gcc/[*]/config-lang.in) ;;
1043         *)
1044           lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
1045           this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^         ]*\).*$,\1,p' $lang`
1046           this_lang_dirs=`sed -n -e 's,^lang_dirs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_dirs=\([^     ]*\).*$,\1,p' $lang`
1047           build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^     ]*\).*$,\1,p' $lang`
1048           if test "x$lang_alias" = x
1049           then
1050                 echo "$lang doesn't set \$language." 1>&2
1051                 exit 1
1052           fi
1053           case ${build_by_default},${enable_languages}, in
1054           *,$lang_alias,*) add_this_lang=yes ;;
1055           no,*) add_this_lang=no ;;
1056           *,all,*) add_this_lang=yes ;;
1057           *) add_this_lang=no ;;
1058           esac
1059           if test x"${add_this_lang}" = xyes; then
1060               eval target_libs='"$target_libs "'\"$this_lang_libs\"
1061           else
1062               eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\"
1063           fi
1064           ;;
1065         esac
1066 done
1067
1068 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
1069 # $target_configdirs.
1070 # If we have the source for $noconfigdirs entries, add them to $notsupp.
1071
1072 notsupp=""
1073 for dir in . $skipdirs $noconfigdirs ; do
1074   dirname=`echo $dir | sed -e s/target-//g`
1075   if [ $dir != . ]  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1076     configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1077     if [ -r $srcdir/$dirname/configure ] \
1078         || [ -r $srcdir/$dirname/configure.in ]; then
1079       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1080         true
1081       else
1082         notsupp="$notsupp $dir"
1083       fi
1084     fi
1085   fi
1086   if [ $dir != . ]  && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1087     target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1088     if [ -r $srcdir/$dirname/configure ] \
1089         || [ -r $srcdir/$dirname/configure.in ]; then
1090       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1091         true
1092       else
1093         notsupp="$notsupp $dir"
1094       fi
1095     fi
1096   fi
1097 done
1098
1099 # Sometimes the tools are distributed with libiberty but with no other
1100 # libraries.  In that case, we don't want to build target-libiberty.
1101 if [ -n "${target_configdirs}" ]; then
1102   others=
1103   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1104     if [ "$i" != "libiberty" ]; then
1105       if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
1106         others=yes;
1107         break;
1108       fi
1109     fi
1110   done
1111   if [ -z "${others}" ]; then
1112     target_configdirs=
1113   fi
1114 fi
1115
1116 # Deconfigure all subdirectories, in case we are changing the
1117 # configuration from one where a subdirectory is supported to one where it
1118 # is not.
1119 if [ -z "${norecursion}" ] && [ -n "${configdirs}" ]; then
1120   for i in `echo ${configdirs} | sed -e s/target-//g` ; do
1121     rm -f $i/Makefile
1122   done
1123 fi
1124 if [ -z "${norecursion}" ] && [ -n "${target_configdirs}" ]; then
1125   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1126     rm -f ${target_subdir}/$i/Makefile
1127   done
1128 fi
1129
1130 # Produce a warning message for the subdirs we can't configure.
1131 # This isn't especially interesting in the Cygnus tree, but in the individual
1132 # FSF releases, it's important to let people know when their machine isn't
1133 # supported by the one or two programs in a package.
1134
1135 if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
1136   # If $appdirs is non-empty, at least one of those directories must still
1137   # be configured, or we error out.  (E.g., if the gas release supports a
1138   # specified target in some subdirs but not the gas subdir, we shouldn't
1139   # pretend that all is well.)
1140   if [ -n "$appdirs" ]; then
1141     for dir in $appdirs ; do
1142       if [ -r $dir/Makefile.in ]; then
1143         if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1144           appdirs=""
1145           break
1146         fi
1147         if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1148           appdirs=""
1149           break
1150         fi
1151       fi
1152     done
1153     if [ -n "$appdirs" ]; then
1154       echo "*** This configuration is not supported by this package." 1>&2
1155       exit 1
1156     fi
1157   fi
1158   # Okay, some application will build, or we don't care to check.  Still
1159   # notify of subdirs not getting built.
1160   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1161   echo "    ${notsupp}" 1>&2
1162   echo "    (Any other directories should still work fine.)" 1>&2
1163 fi
1164
1165 # Set with_gnu_as and with_gnu_ld as appropriate.
1166 #
1167 # This is done by determining whether or not the appropriate directory
1168 # is available, and by checking whether or not specific configurations
1169 # have requested that this magic not happen.
1170
1171 # The command line options always override the explicit settings in 
1172 # configure.in, and the settings in configure.in override this magic.
1173 #
1174 # If the default for a toolchain is to use GNU as and ld, and you don't 
1175 # want to do that, then you should use the --without-gnu-as and
1176 # --without-gnu-ld options for the configure script.
1177
1178 if [ x${use_gnu_as} = x ] ; then
1179   if [ x${with_gnu_as} != xno ] && echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
1180     with_gnu_as=yes
1181     withoptions="$withoptions --with-gnu-as"
1182   fi
1183 fi
1184
1185 if [ x${use_gnu_ld} = x ] ; then
1186   if [ x${with_gnu_ld} != xno ] && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
1187     with_gnu_ld=yes
1188     withoptions="$withoptions --with-gnu-ld"
1189   fi
1190 fi
1191
1192 # If using newlib, add --with-newlib to the withoptions so that gcc/configure
1193 # can detect this case.
1194
1195 if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then
1196   with_newlib=yes
1197   withoptions="$withoptions --with-newlib"
1198 fi
1199
1200 if [ x${shared} = xyes ]; then
1201   case "${target}" in
1202     hppa* | parisc*)
1203       target_makefile_frag="${target_makefile_frag} config/mt-papic"
1204       ;;
1205     i[3456]86-*)
1206       target_makefile_frag="${target_makefile_frag} config/mt-x86pic"
1207       ;;
1208     ia64-*)
1209       target_makefile_frag="${target_makefile_frag} config/mt-ia64pic"
1210       ;;
1211     powerpc*-*-aix*)
1212       # We don't want -fPIC on AIX.
1213       ;;
1214     powerpc*-*)
1215       target_makefile_frag="${target_makefile_frag} config/mt-ppcpic"
1216       ;;
1217     alpha*-*-linux*)
1218       target_makefile_frag="${target_makefile_frag} config/mt-elfalphapic"
1219       ;;
1220     *)
1221       if test -f ${srcdir}/config/mt-${target_cpu}pic; then
1222         target_makefile_frag="${target_makefile_frag} config/mt-${target_cpu}pic"
1223       fi
1224       ;;
1225   esac
1226 fi
1227
1228 rm -f mt-frag
1229 if [ -n "${target_makefile_frag}" ] ; then
1230   for f in ${target_makefile_frag}
1231   do
1232     cat ${srcdir}/$f >> mt-frag
1233   done
1234   target_makefile_frag=mt-frag
1235 fi
1236
1237 # post-target:
1238
1239 # Make sure that the compiler is able to generate an executable.  If it
1240 # can't, we are probably in trouble.  We don't care whether we can run the
1241 # executable--we might be using a cross compiler--we only care whether it
1242 # can be created.  At this point the main configure script has set CC.
1243 echo "int main () { return 0; }" > conftest.c
1244 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1245 if [ $? = 0 ] && [ -s conftest -o -s conftest.exe ]; then
1246   :
1247 else
1248   echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1249   echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1250   rm -f conftest*
1251   exit 1
1252 fi
1253 rm -f conftest*
1254
1255 # The Solaris /usr/ucb/cc compiler does not appear to work.
1256 case "${host}" in
1257   sparc-sun-solaris2*)
1258       CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1259       if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then
1260           could_use=
1261           [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
1262           if [ -d /opt/cygnus/bin ] ; then
1263               if [ "$could_use" = "" ] ; then
1264                   could_use="/opt/cygnus/bin"
1265               else
1266                   could_use="$could_use or /opt/cygnus/bin"
1267               fi
1268           fi
1269         if [ "$could_use" = "" ] ; then
1270             echo "Warning: compilation may fail because you're using"
1271             echo "/usr/ucb/cc.  You should change your PATH or CC "
1272             echo "variable and rerun configure."
1273         else
1274             echo "Warning: compilation may fail because you're using"
1275             echo "/usr/ucb/cc, when you should use the C compiler from"
1276             echo "$could_use.  You should change your"
1277             echo "PATH or CC variable and rerun configure."
1278         fi
1279       fi
1280   ;;
1281 esac
1282
1283 # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1284 # binutils tools will find libbfd.so.
1285 if [ "${shared}" = "yes" ]; then
1286   sed -e 's/^SET_LIB_PATH[      ]*=.*$/SET_LIB_PATH = $(REALLY_SET_LIB_PATH)/' \
1287       Makefile > Makefile.tem
1288   rm -f Makefile
1289   mv -f Makefile.tem Makefile
1290
1291   case "${host}" in
1292   *-*-hpux*)
1293     sed -e 's/^RPATH_ENVVAR[    ]*=.*$/RPATH_ENVVAR = SHLIB_PATH/' \
1294         Makefile > Makefile.tem
1295     rm -f Makefile
1296     mv -f Makefile.tem Makefile
1297     ;;
1298   esac
1299 fi
1300
1301 # Record target_configdirs and the configure arguments in Makefile.
1302 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1303 targargs=`echo "${arguments}" | \
1304         sed -e 's/--no[^        ]*//' \
1305             -e 's/--cache[a-z-]*=[^     ]*//' \
1306             -e 's/--ho[a-z-]*=[^        ]*//' \
1307             -e 's/--bu[a-z-]*=[^        ]*//' \
1308             -e 's/--ta[a-z-]*=[^        ]*//'`
1309
1310 # Passing a --with-cross-host argument lets the target libraries know
1311 # whether they are being built with a cross-compiler or being built
1312 # native.  However, it would be better to use other mechanisms to make the
1313 # sorts of decisions they want to make on this basis.  Please consider
1314 # this option to be deprecated.  FIXME.
1315 if [ x${is_cross_compiler} = xyes ]; then
1316   targargs="--with-cross-host=${host_alias} ${targargs}"
1317 fi
1318
1319 # Default to --enable-multilib.
1320 if [ x${enable_multilib} = x ]; then
1321   targargs="--enable-multilib ${targargs}"
1322 fi
1323
1324 # Pass --with-newlib if appropriate.  Note that target_configdirs has
1325 # changed from the earlier setting of with_newlib.
1326 if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && [ -d ${srcdir}/newlib ] ; then
1327   targargs="--with-newlib ${targargs}"
1328 fi
1329
1330 # provide a proper gxx_include_dir.
1331 # Note, if you change the default, make sure to fix both here and in
1332 # the gcc and libstdc++-v3 subdirectories.
1333 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
1334 gxx_include_dir=
1335 if test -n "${with_gxx_include_dir}"; then
1336   case "${with_gxx_include_dir}" in
1337     yes )
1338       echo "configure.in: error: bad value ${withval} given for g++ include directory" 1>&2
1339       exit 1
1340       ;;
1341     no )
1342       ;;
1343     * )
1344       gxx_include_dir=${with_gxx_include_dir}
1345       ;;
1346   esac
1347 fi
1348 if test x${gxx_include_dir} = x; then
1349   if test x${enable_version_specific_runtime_libs} = xyes; then
1350     gxx_include_dir='${libsubdir}/include/g++'
1351   else
1352     . ${topsrcdir}/config.if
1353     gxx_include_dir='${prefix}/include/${libstdcxx_incdir}'
1354   fi
1355 else
1356   gxx_include_dir=${gxx_include_dir}
1357 fi
1358
1359 FLAGS_FOR_TARGET=
1360 case " $skipdirs " in
1361 *" target-newlib "*) ;;
1362 *)
1363  case " $target_configdirs " in
1364  *" newlib "*)
1365   case " $targargs " in
1366   *" --with-newlib "*)
1367    case "$target" in
1368    *-cygwin*)
1369      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' ;;
1370    esac
1371
1372    # If we're not building GCC, don't discard standard headers.
1373    if test -d ${topsrcdir}/gcc; then
1374      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
1375
1376      if test "${build}" != "${host}"; then
1377        # On Canadian crosses, CC_FOR_TARGET will have already been set
1378        # by `configure', so we won't have an opportunity to add -Bgcc/
1379        # to it.  This is right: we don't want to search that directory
1380        # for binaries, but we want the header files in there, so add
1381        # them explicitly.
1382        FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
1383
1384        # Someone might think of using the pre-installed headers on
1385        # Canadian crosses, in case the installed compiler is not fully
1386        # compatible with the compiler being built.  In this case, it
1387        # would be better to flag an error than risking having
1388        # incompatible object files being constructed.  We can't
1389        # guarantee that an error will be flagged, but let's hope the
1390        # compiler will do it, when presented with incompatible header
1391        # files.
1392      fi
1393    fi
1394
1395    # If we're building newlib, use its generic headers last, but search
1396    # for any libc-related directories first (so make it the last -B
1397    # switch).
1398    FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
1399    ;;
1400   esac
1401   ;;
1402  esac
1403  ;;
1404 esac
1405
1406 # On Canadian crosses, we'll be searching the right directories for
1407 # the previously-installed cross compiler, so don't bother to add
1408 # flags for directories within the install tree of the compiler
1409 # being built; programs in there won't even run.
1410 if test "${build}" = "${host}" && test -d ${topsrcdir}/gcc; then
1411   # Search for pre-installed headers if nothing else fits.
1412   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include'
1413 fi
1414
1415 if test "x${use_gnu_ld}" = x && test "x${with_gnu_ld}" != xno &&
1416    echo " ${configdirs} " | grep " ld " > /dev/null &&
1417    test -d ${srcdir}/ld; then
1418   # Arrange for us to find uninstalled linker scripts.
1419   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
1420 fi
1421
1422 if test "x${CC_FOR_TARGET+set}" = xset; then
1423   :
1424 elif test -d ${topsrcdir}/gcc; then
1425   CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
1426 elif test "$host" = "$target"; then
1427   CC_FOR_TARGET='$(CC)'
1428 else
1429   CC_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
1430 fi
1431 # On Canadian crosses, configure reads CC_FOR_TARGET from Makefile,
1432 # if Makefile exists.  Prevent $(FLAGS_FOR_TARGET) from being duplicated.
1433 case $CC_FOR_TARGET in
1434 *' $(FLAGS_FOR_TARGET)') ;;
1435 *) CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1436 esac
1437
1438 if test "x${CHILL_FOR_TARGET+set}" = xset; then
1439   :
1440 elif test -d ${topsrcdir}/gcc; then
1441   CHILL_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/ -L$$r/gcc/ch/runtime/'
1442 elif test "$host" = "$target"; then
1443   CHILL_FOR_TARGET='$(CC)'
1444 else
1445   CHILL_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
1446 fi
1447 case $CHILL_FOR_TARGET in
1448 *' $(FLAGS_FOR_TARGET)') ;;
1449 *) CHILL_FOR_TARGET=$CHILL_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1450 esac
1451
1452 if test "x${GCJ_FOR_TARGET+set}" = xset; then
1453   :
1454 elif test -d ${topsrcdir}/gcc; then
1455   GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/'
1456 elif test "$host" = "$target"; then
1457   GCJ_FOR_TARGET='gcj'
1458 else
1459   GCJ_FOR_TARGET=`echo gcj | sed -e 's/x/x/' ${program_transform_name}`
1460 fi
1461
1462 if test "x${CXX_FOR_TARGET+set}" = xset; then
1463   :
1464 elif test -d ${topsrcdir}/gcc; then
1465   CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3) echo xgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
1466 elif test "$host" = "$target"; then
1467   CXX_FOR_TARGET='$(CXX)'
1468 else
1469   CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}`
1470 fi
1471 case $CXX_FOR_TARGET in
1472 *' $(FLAGS_FOR_TARGET)') ;;
1473 *) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
1474 esac
1475 qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
1476
1477 # We want to defer the evaluation of `cmd`s and shell variables in
1478 # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
1479 # bootstrap.  We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single
1480 # quotes, but we still have to duplicate `$'s so that shell variables
1481 # can be expanded by the nested make as shell variables, not as make
1482 # macros.
1483 qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
1484
1485 targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
1486 sed -e "s:^TARGET_CONFIGDIRS[   ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
1487     -e "s%^CONFIG_ARGUMENTS[    ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
1488     -e "s%^FLAGS_FOR_TARGET[    ]*=.*$%FLAGS_FOR_TARGET = ${FLAGS_FOR_TARGET}%" \
1489     -e "s%^CC_FOR_TARGET[       ]*=.*$%CC_FOR_TARGET = ${CC_FOR_TARGET}%" \
1490     -e "s%^CHILL_FOR_TARGET[    ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%" \
1491     -e "s%^GCJ_FOR_TARGET[      ]*=.*$%GCJ_FOR_TARGET = ${GCJ_FOR_TARGET}%" \
1492     -e "s%^CXX_FOR_TARGET[      ]*=.*$%CXX_FOR_TARGET = ${qCXX_FOR_TARGET}%" \
1493     -e "s%^CXX_FOR_TARGET_FOR_RECURSIVE_MAKE[   ]*=.*$%CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = ${qqCXX_FOR_TARGET}%" \
1494     -e "s%^TARGET_SUBDIR[       ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
1495     -e "s%^gxx_include_dir[     ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \
1496        Makefile > Makefile.tem
1497 rm -f Makefile
1498 mv -f Makefile.tem Makefile
1499
1500 #
1501 # Local Variables:
1502 # fill-column: 131
1503 # End:
1504 #