OSDN Git Service

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