OSDN Git Service

PR c++/11645
[pf3gnuchains/gcc-fork.git] / configure.in
1 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
2 #   1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
3 #
4 # This file is free software; you can redistribute it and/or modify it
5 # under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18 ##############################################################################
19 ### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
20
21 AC_INIT(move-if-change)
22 AC_PREREQ(2.13)
23 AC_CANONICAL_SYSTEM
24 AC_ARG_PROGRAM
25
26 # Get 'install' or 'install-sh' and its variants.
27 AC_PROG_INSTALL
28
29 sinclude(config/acx.m4)
30
31 ### we might need to use some other shell than /bin/sh for running subshells
32 ### If we are on Windows, search for the shell.  This will permit people
33 ### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
34 ### without also having to set CONFIG_SHELL.  This code will work when
35 ### using bash, which sets OSTYPE.
36 case "${OSTYPE}" in
37 *win32*)
38   if test x${CONFIG_SHELL} = x ; then
39     if test ! -f /bin/sh ; then
40       if test x${SHELL} != x && test -f ${SHELL} ; then
41         CONFIG_SHELL=${SHELL}
42         export CONFIG_SHELL
43       else
44         for prog in sh sh.exe bash bash.exe; do
45           IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
46           for dir in $PATH; do
47             test -z "$dir" && dir=.
48             if test -f $dir/$prog; then
49               CONFIG_SHELL=$dir/$prog
50               export CONFIG_SHELL
51               break
52             fi
53           done
54           IFS="$save_ifs"
55           test -n "${CONFIG_SHELL}" && break
56         done
57       fi
58     fi
59   fi
60   ;;
61 esac
62
63 config_shell=${CONFIG_SHELL-/bin/sh}
64
65 progname=$0
66 # if PWD already has a value, it is probably wrong.
67 if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
68
69 # Export original configure arguments for use by sub-configures.
70 TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@"
71 AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
72
73 moveifchange=${srcdir}/move-if-change
74
75 # Set srcdir to "." if that's what it is.
76 # This is important for multilib support.
77 pwd=`${PWDCMD-pwd}`
78 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
79 if test "${pwd}" = "${srcpwd}" ; then
80   srcdir=.
81 fi
82
83 topsrcdir=$srcpwd
84
85 extra_host_args=
86 # Define the trigger file to make sure configure will re-run whenever
87 # the gcc version number changes.
88 if test "${with_gcc_version_trigger+set}" = set ; then
89   gcc_version_trigger="$with_gcc_version_trigger"
90   gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'`
91 else
92   # If gcc's sources are available, define the trigger file.
93   if test -f ${topsrcdir}/gcc/version.c ; then
94     gcc_version_trigger=${topsrcdir}/gcc/version.c
95     gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'`
96     case "$ac_configure_args" in
97       *--with-gcc-version-trigger=$gcc_version_trigger* )
98         ;;
99       * )
100         # Add to all subconfigure arguments: build, host, and target.
101         ac_configure_args="$ac_configure_args --with-gcc-version-trigger=$gcc_version_trigger"
102         ;;
103     esac
104   fi
105 fi
106
107 ### To add a new directory to the tree, first choose whether it is a target
108 ### or a host dependent tool.  Then put it into the appropriate list
109 ### (library or tools, host or target), doing a dependency sort.
110
111 # Subdirs will be configured in the order listed in build_configdirs, 
112 # configdirs, or target_configdirs; see the serialization section below.
113
114 # Dependency sorting is only needed when *configuration* must be done in 
115 # a particular order.  In all cases a dependency should be specified in 
116 # the Makefile, whether or not it's implicitly specified here.
117
118 # Double entries in build_configdirs, configdirs, or target_configdirs may
119 # cause circular dependencies and break everything horribly.
120
121 # these libraries are used by various programs built for the host environment
122 #
123 host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl tix libgui zlib"
124
125 # these tools are built for the host environment
126 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
127 # know that we are building the simulator.
128 # binutils, gas and ld appear in that order because it makes sense to run
129 # "make check" in that particular order.
130 host_tools="texinfo byacc flex bison binutils gas ld gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar"
131
132 # libgcj represents the runtime libraries only used by gcj.
133 libgcj="target-libffi \
134         target-boehm-gc \
135         target-zlib \
136         target-qthreads \
137         target-libjava"
138
139 # these libraries are built for the target environment, and are built after
140 # the host libraries and the host tools (which may be a cross compiler)
141 #
142 target_libraries="target-libiberty \
143                 target-libgloss \
144                 target-newlib \
145                 target-libstdc++-v3 \
146                 target-libf2c \
147                 ${libgcj} \
148                 target-libobjc"
149
150 # these tools are built using the target libraries, and are intended to
151 # run only in the target environment
152 #
153 # note: any program that *uses* libraries that are in the "target_libraries"
154 # list belongs in this list.  those programs are also very likely
155 # candidates for the "native_only" list which follows
156 #
157 target_tools="target-examples target-groff target-gperf target-rda"
158
159 ################################################################################
160
161 ## All tools belong in one of the four categories, and are assigned above
162 ## We assign ${configdirs} this way to remove all embedded newlines.  This
163 ## is important because configure will choke if they ever get through.
164 ## ${configdirs} is directories we build using the host tools.
165 ## ${target_configdirs} is directories we build using the target tools.
166 #
167 configdirs=`echo ${host_libs} ${host_tools}`
168 target_configdirs=`echo ${target_libraries} ${target_tools}`
169
170 # Only make build modules if build != host.
171 # This should be done more generally, but at the moment it doesn't matter.
172 if test ${host_alias} != ${build_alias} ; then
173   # This is the only build module.
174   build_modules=libiberty
175 else
176   build_modules=
177 fi
178
179
180 ################################################################################
181
182 srcname="gnu development package"
183
184 # This gets set non-empty for some net releases of packages.
185 appdirs=""
186
187 # Define is_cross_compiler to save on calls to 'test'.
188 is_cross_compiler=
189 if test x"${host}" = x"${target}" ; then
190   is_cross_compiler=no
191 else
192   is_cross_compiler=yes
193 fi      
194
195 # Find the build and target subdirs.
196 GCC_TOPLEV_SUBDIRS
197
198 if test ! -d ${target_subdir} ; then
199   if mkdir ${target_subdir} ; then true
200   else
201     echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2
202     exit 1
203   fi
204 fi
205
206 if test x"${build_alias}" != x"${host}" ; then
207   if test ! -d ${build_subdir} ; then
208     if mkdir ${build_subdir} ; then true
209     else
210       echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2
211       exit 1
212     fi
213   fi
214 fi
215
216 # Skipdirs are removed silently.
217 skipdirs=
218 # Noconfigdirs are removed loudly.
219 noconfigdirs=""
220
221 use_gnu_ld=
222 # Make sure we don't let GNU ld be added if we didn't want it.
223 if test x$with_gnu_ld = xno ; then
224   use_gnu_ld=no
225   noconfigdirs="$noconfigdirs ld"
226 fi
227
228 use_gnu_as=
229 # Make sure we don't let GNU as be added if we didn't want it.
230 if test x$with_gnu_as = xno ; then
231   use_gnu_as=no
232   noconfigdirs="$noconfigdirs gas"
233 fi
234
235 # some tools are so dependent upon X11 that if we're not building with X, 
236 # it's not even worth trying to configure, much less build, that tool.
237
238 case ${with_x} in
239   yes | "") ;; # the default value for this tree is that X11 is available
240   no)
241     skipdirs="${skipdirs} tk tix itcl libgui"
242     # We won't be able to build gdbtk without X.
243     enable_gdbtk=no 
244     ;;
245   *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
246 esac
247
248 # Some tools are only suitable for building in a "native" situation.
249 # Remove these if host!=target.  
250 native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
251
252 # Similarly, some are only suitable for cross toolchains.
253 # Remove these if host=target.
254 cross_only="target-libgloss target-newlib target-opcodes"
255
256 case $is_cross_compiler in
257   no) skipdirs="${skipdirs} ${cross_only}" ;;
258   yes) skipdirs="${skipdirs} ${native_only}" ;;
259 esac
260
261 # If both --with-headers and --with-libs are specified, default to
262 # --without-newlib.
263 if test x"${with_headers}" != x && test x"${with_libs}" != x ; then
264   if test x"${with_newlib}" = x ; then
265     with_newlib=no
266   fi
267 fi
268
269 # Recognize --with-newlib/--without-newlib.
270 case ${with_newlib} in
271   no) skipdirs="${skipdirs} target-newlib" ;;
272   yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
273 esac
274
275 # Configure extra directories which are host specific
276
277 case "${host}" in
278   *-cygwin*)
279     configdirs="$configdirs libtermcap" ;;
280 esac
281
282 # Remove more programs from consideration, based on the host or 
283 # target this usually means that a port of the program doesn't
284 # exist yet.
285
286 case "${host}" in
287   hppa*64*-*-*)
288     noconfigdirs="$noconfigdirs byacc"
289     ;;
290   i[[3456789]]86-*-vsta)
291     noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix gnuserv gettext"
292     ;;
293   i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*)
294     noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile itcl tix gnuserv libffi"
295     ;;
296   i[[3456789]]86-*-mingw32*)
297     # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl tix gnuserv"
298     noconfigdirs="expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool"
299     ;;
300   i[[3456789]]86-*-beos*)
301     noconfigdirs="$noconfigdirs tk itcl tix libgui gdb"
302     ;;
303   *-*-cygwin*)
304     noconfigdirs="autoconf automake send-pr rcs guile perl"
305     ;;
306   *-*-netbsd*)
307     noconfigdirs="rcs"
308     ;;
309   ppc*-*-pe)
310     noconfigdirs="patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl tix gnuserv"
311     ;;
312   powerpc-*-beos*)
313     noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline"
314     ;;
315   *-*-darwin*)
316     noconfigdirs="$noconfigdirs tk itcl tix libgui"
317     ;;
318 esac
319
320 # Save it here so that, even in case of --enable-libgcj, if the Java
321 # front-end isn't enabled, we still get libgcj disabled.
322 libgcj_saved=$libgcj
323 case $enable_libgcj in
324 yes)
325   # If we reset it here, it won't get added to noconfigdirs in the
326   # target-specific build rules, so it will be forcibly enabled
327   # (unless the Java language itself isn't enabled).
328   libgcj=
329   ;;
330 no)
331   # Make sure we get it printed in the list of not supported target libs.
332   noconfigdirs="$noconfigdirs ${libgcj}"
333   ;;
334 esac
335
336 case "${target}" in
337   *-*-chorusos)
338     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
339     ;;
340   *-*-darwin*)
341     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
342     noconfigdirs="$noconfigdirs target-libobjc ${libgcj}"
343     ;;
344   *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
345     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
346     ;;
347   *-*-kaos*)
348     # Remove unsupported stuff on all kaOS configurations.
349     skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-libf2c target-librx"
350     skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
351     skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
352     noconfigdirs="$noconfigdirs target-libgloss"
353     ;;
354   *-*-netbsd*)
355     # Skip some stuff on all NetBSD configurations.
356     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
357
358     # Skip some stuff that's unsupported on some NetBSD configurations.
359     case "${target}" in
360       i*86-*-netbsdelf*) ;;
361       arm*-*-netbsdelf*) ;;
362       *)
363         noconfigdirs="$noconfigdirs ${libgcj}"
364         ;;
365     esac
366     ;;
367   *-*-netware)
368     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-newlib target-libiberty target-libgloss ${libgcj}"
369     ;;
370   *-*-rtems*)
371     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
372     case ${target} in
373         h8300*-*-* | h8500-*-*)
374           noconfigdirs="$noconfigdirs target-libf2c"
375           ;;
376         *) ;;
377     esac
378     ;;
379   *-*-vxworks*)
380     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
381     ;;
382   alpha*-dec-osf*)
383     # ld works, but does not support shared libraries.
384     # newlib is not 64 bit ready.  I'm not sure about fileutils.
385     # gas doesn't generate exception information.
386     noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
387     ;;
388   alpha*-*-*vms*)
389     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
390     ;;
391   alpha*-*-linux*)
392     # newlib is not 64 bit ready
393     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
394     ;;
395   alpha*-*-freebsd*)
396     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
397     ;;
398   alpha*-*-*)
399     # newlib is not 64 bit ready
400     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
401     ;;
402   am33_2.0-*-linux*)
403     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
404     ;;
405   sh-*-linux*)
406     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
407     ;;    
408   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
409     noconfigdirs="$noconfigdirs ${libgcj}"
410     noconfigdirs="$noconfigdirs target-examples"
411     noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
412     noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim"
413     noconfigdirs="$noconfigdirs expect dejagnu"
414     # the C++ libraries don't build on top of CE's C libraries
415     noconfigdirs="$noconfigdirs target-libstdc++-v3"
416     noconfigdirs="$noconfigdirs target-newlib"
417     case "${host}" in
418       *-*-cygwin*) ;; # keep gdb and readline
419       *) noconfigdirs="$noconfigdirs gdb readline"
420          ;;
421     esac
422     ;;
423   arc-*-*)
424     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
425     ;;
426   arm-*-coff | strongarm-*-coff | xscale-*-coff)
427     noconfigdirs="$noconfigdirs ${libgcj}"
428     ;;
429   arm-*-elf* | strongarm-*-elf* | xscale-*-elf*)
430     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
431     ;;
432   arm-*-pe*)
433     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
434     ;;
435   arm-*-oabi*)
436     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
437     ;;
438   thumb-*-coff)
439     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
440     ;;
441   thumb-*-elf)
442     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
443     ;;
444   thumb-*-oabi)
445     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
446     ;;
447   thumb-*-pe)
448     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
449     ;;
450   arm-*-riscix*)
451     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
452     ;;
453   avr-*-*)
454     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
455     ;;
456   c4x-*-* | tic4x-*-*)
457     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
458     ;;
459   c54x*-*-* | tic54x-*-*)
460     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
461     ;;
462   cris-*-*)
463     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
464     ;;
465   d10v-*-*)
466     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
467     ;;
468   d30v-*-*)
469     noconfigdirs="$noconfigdirs ${libgcj} gdb"
470     ;;
471   fr30-*-elf*)
472     noconfigdirs="$noconfigdirs ${libgcj} gdb"
473     ;;
474   frv-*-*)
475     noconfigdirs="$noconfigdirs ${libgcj}"
476     ;;
477   h8300*-*-*)
478     noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c"
479     ;;
480   h8500-*-*)
481     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c"
482     ;;
483   hppa*64*-*-linux* | parisc*64*-*-linux*)
484     # In this case, it's because the hppa64-linux target is for
485     # the kernel only at this point and has no libc, and thus no
486     # headers, crt*.o, etc., all of which are needed by these.
487     noconfigdirs="$noconfigdirs target-zlib"
488     ;;
489   hppa*-*-*elf* | \
490   parisc*-*-linux* | hppa*-*-linux* | \
491   hppa*-*-lites* | \
492   hppa*-*-openbsd* | \
493   hppa*64*-*-*)
494     noconfigdirs="$noconfigdirs ${libgcj}"
495     # Do configure ld/binutils/gas for this case.
496     ;;
497   hppa*-*-*)
498     # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
499     # build on HP-UX 10.20.
500     noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
501     ;;
502   i960-*-*)
503     noconfigdirs="$noconfigdirs ${libgcj} gdb"
504     ;;
505   ia64*-*-elf*)
506     # No gdb support yet.
507     noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb"
508     ;;
509   ia64*-**-hpux*)
510     # No gdb or ld support yet.
511     noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld"
512     ;;
513   i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
514     noconfigdirs="$noconfigdirs ${libgcj}"
515     ;;
516   i[[3456789]]86-*-freebsd*)
517     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
518     ;;
519   i[[3456789]]86-*-linux*)
520     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
521     # not build java stuff by default.
522     case "${target}" in
523       *-*-*libc1*)
524         noconfigdirs="$noconfigdirs ${libgcj}";;
525     esac
526
527     # This section makes it possible to build newlib natively on linux.
528     # If we are using a cross compiler then don't configure newlib.
529     if test x${is_cross_compiler} != xno ; then
530       noconfigdirs="$noconfigdirs target-newlib"
531     fi
532     noconfigdirs="$noconfigdirs target-libgloss"
533     # If we are not using a cross compiler, do configure newlib.
534     # Note however, that newlib will only be configured in this situation
535     # if the --with-newlib option has been given, because otherwise
536     # 'target-newlib' will appear in skipdirs.
537     ;;
538   i[[3456789]]86-*-mingw32*)
539     target_configdirs="$target_configdirs target-mingw"
540     noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}"
541
542     # Can't build gdb for mingw32 if not native.
543     case "${host}" in
544       i[[3456789]]86-*-mingw32) ;; # keep gdb tcl tk expect etc.
545       *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix gnuserv"
546          ;;
547     esac
548     ;;    
549   *-*-cygwin*)
550     target_configdirs="$target_configdirs target-libtermcap target-winsup"
551     noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
552     # always build newlib.
553     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
554
555     # Can't build gdb for Cygwin if not native.
556     case "${host}" in
557       *-*-cygwin*) ;; # keep gdb tcl tk expect etc.
558       *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui gnuserv"
559          ;;
560     esac
561     ;;    
562   i[[3456789]]86-*-pe)
563     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
564     ;;
565   i[[3456789]]86-*-sco3.2v5*)
566     # The linker does not yet know about weak symbols in COFF,
567     # and is not configured to handle mixed ELF and COFF.
568     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
569     ;;
570   i[[3456789]]86-*-sco*)
571     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
572     ;;
573   i[[3456789]]86-*-solaris2*)
574     noconfigdirs="$noconfigdirs target-libgloss"
575     ;;
576   i[[3456789]]86-*-sysv4*)
577     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
578     ;;
579   i[[3456789]]86-*-beos*)
580     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
581     ;;
582   m32r-*-*)
583     noconfigdirs="$noconfigdirs ${libgcj} gdb"
584     ;;
585   m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
586     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
587     ;;
588   m68k-*-elf*)
589     noconfigdirs="$noconfigdirs ${libgcj}"
590     ;;
591   m68k-*-coff*)
592     noconfigdirs="$noconfigdirs ${libgcj}"
593     ;;
594   mcore-*-pe*)
595   # The EPOC C++ environment does not support exceptions or rtti,
596   # and so building libstdc++-v3 tends not to always work.
597     noconfigdirs="$noconfigdirs target-libstdc++-v3"
598     ;;
599   mmix-*-*)
600     noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss"
601     ;;
602   mn10200-*-*)
603     noconfigdirs="$noconfigdirs ${libgcj}"
604     ;;
605   mn10300-*-*)
606     noconfigdirs="$noconfigdirs ${libgcj}"
607     ;;
608   powerpc-*-aix*)
609     # copied from rs6000-*-* entry
610     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
611     ;;
612   powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
613     target_configdirs="$target_configdirs target-winsup"
614     noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix gnuserv ${libgcj}"
615     # always build newlib.
616     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
617     ;;
618     # This is temporary until we can link against shared libraries
619   powerpcle-*-solaris*)
620     noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix gnuserv ${libgcj}"
621     ;;
622   powerpc-*-beos*)
623     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
624     ;;
625   powerpc-*-eabi)
626     noconfigdirs="$noconfigdirs ${libgcj}"
627     ;;
628   rs6000-*-lynxos*)
629     noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
630     ;;
631   rs6000-*-aix*)
632     noconfigdirs="$noconfigdirs gprof ${libgcj}"
633     ;;
634   rs6000-*-*)
635     noconfigdirs="$noconfigdirs gprof ${libgcj}"
636     ;;
637   m68k-apollo-*)
638     noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
639     ;;
640   mips*-*-irix5*)
641     # The GNU linker does not support shared libraries.
642     noconfigdirs="$noconfigdirs ld gprof target-libgloss ${libgcj}"
643     ;;
644   mips*-*-irix6*)
645     # Linking libjava exceeds command-line length limits on at least
646     # IRIX 6.2, but not on IRIX 6.5.
647     # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
648     # <oldham@codesourcery.com>
649     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
650     ;;
651   mips*-dec-bsd*)
652     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
653     ;;
654   mips*-*-bsd*)
655     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
656     ;;
657   mipstx39-*-*)
658     noconfigdirs="$noconfigdirs gprof ${libgcj}"   # same as generic mips
659     ;;
660   mips*-*-linux*)
661     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
662     ;;
663   mips*-*-*)
664     noconfigdirs="$noconfigdirs gprof ${libgcj}"
665     ;;
666   romp-*-*)
667     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
668     ;;
669   sh-*-*)
670     case "${host}" in
671       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
672       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
673       i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
674       *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
675     esac
676     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
677     ;;
678   sh64-*-*)
679     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
680     ;;
681   sparc-*-elf*)
682     noconfigdirs="$noconfigdirs ${libgcj}"
683     ;;
684   sparc64-*-elf*)
685     noconfigdirs="$noconfigdirs ${libgcj}"
686     ;;
687   sparclite-*-*)
688     noconfigdirs="$noconfigdirs ${libgcj}"
689     ;;
690   sparc-*-sunos4*)
691     noconfigdirs="$noconfigdirs ${libgcj}"
692     if test x${is_cross_compiler} != xno ; then
693            noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
694     else
695            use_gnu_ld=no
696     fi
697     ;;
698   sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
699     ;;
700   v810-*-*)
701     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
702     ;;
703   v850-*-*)
704     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
705     ;;
706   v850e-*-*)
707     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
708     ;;
709   v850ea-*-*)
710     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
711     ;;
712   vax-*-vms)
713     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
714     ;;
715   vax-*-*)
716     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
717     ;;
718   xtensa-*-*)
719     noconfigdirs="$noconfigdirs ${libgcj}"
720     ;;
721   ip2k-*-*)
722     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
723     ;;
724   *-*-linux*)
725     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
726     ;;
727   *-*-lynxos*)
728     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
729     ;; 
730   *-*-*)
731     noconfigdirs="$noconfigdirs ${libgcj}"
732     ;;
733 esac
734
735 # If we aren't building newlib, then don't build libgloss, since libgloss
736 # depends upon some newlib header files.
737 case "${noconfigdirs}" in
738   *target-libgloss*) ;;
739   *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
740 esac
741
742 # Figure out what language subdirectories are present.
743 # Look if the user specified --enable-languages="..."; if not, use
744 # the environment variable $LANGUAGES if defined. $LANGUAGES might
745 # go away some day.
746 # NB:  embedded tabs in this IF block -- do not untabify
747 if test x"${enable_languages+set}" != xset; then
748   if test x"${LANGUAGES+set}" = xset; then
749     enable_languages="${LANGUAGES}"
750       echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
751   else
752     enable_languages=all
753   fi
754 else
755   if test x"${enable_languages}" = x ||
756      test x"${enable_languages}" = xyes;
757      then
758     echo configure.in: --enable-languages needs at least one language argument 1>&2
759     exit 1
760   fi
761 fi
762 enable_languages=`echo "${enable_languages}" | sed -e 's/[[     ,]][[   ,]]*/,/g' -e 's/,$//'`
763
764 # First scan to see if an enabled language requires some other language.
765 # We assume that a given config-lang.in will list all the language
766 # front ends it requires, even if some are required indirectly.
767 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
768   case ${lang_frag} in
769     ..) ;;
770     # The odd quoting in the next line works around
771     # an apparent bug in bash 1.12 on linux.
772     ${srcdir}/gcc/[[*]]/config-lang.in) ;;
773     *)
774       # From the config-lang.in, get $language, $lang_requires
775       language=
776       lang_requires=
777       . ${lang_frag}
778       for other in ${lang_requires} ; do
779         case ,${enable_languages}, in
780           *,$other,*) ;;
781           *,all,*) ;;
782           *,$language,*)
783             echo " \`$other' language required by \`$language'; enabling" 1>&2
784             enable_languages="${enable_languages},${other}"
785             ;;
786         esac
787       done
788       ;;
789   esac
790 done
791
792 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
793   case ${lang_frag} in
794     ..) ;;
795     # The odd quoting in the next line works around
796     # an apparent bug in bash 1.12 on linux.
797     ${srcdir}/gcc/[[*]]/config-lang.in) ;;
798     *)
799       # From the config-lang.in, get $language, $target_libs, 
800       # $lang_dirs, and $build_by_default
801       language=
802       target_libs=
803       lang_dirs=
804       build_by_default=
805       . ${lang_frag}
806       if test "x$language" = x ; then
807         echo "${lang_frag} doesn't set \$language." 1>&2
808         exit 1
809       fi
810       case ,${enable_languages}, in
811         *,${language},*)
812           # Language was explicitly selected; include it.
813           add_this_lang=yes
814           ;;
815         *,all,*)
816           # 'all' was selected; include 'default' languages.
817           case ${build_by_default} in
818             no) add_this_lang=no ;;
819             *) add_this_lang=yes ;;
820           esac 
821           ;;
822         *) add_this_lang=no ;;
823       esac
824       case ${add_this_lang} in
825         no)
826           # Remove language-dependent dirs.
827           eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
828           ;;
829       esac
830       ;;
831   esac
832 done
833
834 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
835 # $target_configdirs.
836 # If we have the source for $noconfigdirs entries, add them to $notsupp.
837
838 notsupp=""
839 for dir in . $skipdirs $noconfigdirs ; do
840   dirname=`echo $dir | sed -e s/target-//g`
841   if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
842     configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
843     if test -r $srcdir/$dirname/configure ; then
844       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
845         true
846       else
847         notsupp="$notsupp $dir"
848       fi
849     fi
850   fi
851   if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
852     target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
853     if test -r $srcdir/$dirname/configure ; then
854       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
855         true
856       else
857         notsupp="$notsupp $dir"
858       fi
859     fi
860   fi
861 done
862
863 # Sometimes the tools are distributed with libiberty but with no other
864 # libraries.  In that case, we don't want to build target-libiberty.
865 if test -n "${target_configdirs}" ; then
866   others=
867   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
868     if test "$i" != "libiberty" ; then
869       if test -r $srcdir/$i/configure ; then
870         others=yes;
871         break;
872       fi
873     fi
874   done
875   if test -z "${others}" ; then
876     target_configdirs=
877   fi
878 fi
879
880 # Quietly strip out all directories which aren't configurable in this tree.
881 # This relies on all configurable subdirectories being autoconfiscated, which
882 # is now the case.
883 configdirs_all="$configdirs"
884 configdirs=
885 for i in ${configdirs_all} ; do
886   if test -f ${srcdir}/$i/configure ; then
887     configdirs="${configdirs} $i"
888   fi
889 done
890 target_configdirs_all="$target_configdirs"
891 target_configdirs=
892 for i in ${target_configdirs_all} ; do
893   j=`echo $i | sed -e s/target-//g` 
894   if test -f ${srcdir}/$j/configure ; then
895     target_configdirs="${target_configdirs} $i"
896   fi
897 done
898
899 # Produce a warning message for the subdirs we can't configure.
900 # This isn't especially interesting in the Cygnus tree, but in the individual
901 # FSF releases, it's important to let people know when their machine isn't
902 # supported by the one or two programs in a package.
903
904 if test -n "${notsupp}" && test -z "${norecursion}" ; then
905   # If $appdirs is non-empty, at least one of those directories must still
906   # be configured, or we error out.  (E.g., if the gas release supports a
907   # specified target in some subdirs but not the gas subdir, we shouldn't
908   # pretend that all is well.)
909   if test -n "$appdirs" ; then
910     for dir in $appdirs ; do
911       if test -r $dir/Makefile.in ; then
912         if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
913           appdirs=""
914           break
915         fi
916         if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
917           appdirs=""
918           break
919         fi
920       fi
921     done
922     if test -n "$appdirs" ; then
923       echo "*** This configuration is not supported by this package." 1>&2
924       exit 1
925     fi
926   fi
927   # Okay, some application will build, or we don't care to check.  Still
928   # notify of subdirs not getting built.
929   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
930   echo "    ${notsupp}" 1>&2
931   echo "    (Any other directories should still work fine.)" 1>&2
932 fi
933
934 case "$host" in
935   *msdosdjgpp*)
936     enable_gdbtk=no ;;
937 esac
938
939 copy_dirs=
940
941 # Handle --with-headers=XXX.  If the value is not "yes", the contents of
942 # the named directory are copied to $(tooldir)/sys-include.
943 if test x"${with_headers}" != x ; then
944   if test x${is_cross_compiler} = xno ; then
945     echo 1>&2 '***' --with-headers is only supported when cross compiling
946     exit 1
947   fi
948   if test x"${with_headers}" != xyes ; then
949     case "${exec_prefixoption}" in
950     "") x=${prefix} ;;
951     *) x=${exec_prefix} ;;
952     esac
953     copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
954   fi
955 fi
956
957 # Handle --with-libs=XXX.  If the value is not "yes", the contents of
958 # the name directories are copied to $(tooldir)/lib.  Multiple directories
959 # are permitted.
960 if test x"${with_libs}" != x ; then
961   if test x${is_cross_compiler} = xno ; then
962     echo 1>&2 '***' --with-libs is only supported when cross compiling
963     exit 1
964   fi
965   if test x"${with_libs}" != xyes ; then
966     # Copy the libraries in reverse order, so that files in the first named
967     # library override files in subsequent libraries.
968     case "${exec_prefixoption}" in
969     "") x=${prefix} ;;
970     *) x=${exec_prefix} ;;
971     esac
972     for l in ${with_libs}; do
973       copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
974     done
975   fi
976 fi
977
978 # Handle ${copy_dirs}
979 set fnord ${copy_dirs}
980 shift
981 while test $# != 0 ; do
982   if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
983     :
984   else
985     echo Copying $1 to $2
986
987     # Use the install script to create the directory and all required
988     # parent directories.
989     if test -d $2 ; then
990       :
991     else
992       echo >config.temp
993       ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
994     fi
995
996     # Copy the directory, assuming we have tar.
997     # FIXME: Should we use B in the second tar?  Not all systems support it.
998     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
999
1000     # It is the responsibility of the user to correctly adjust all
1001     # symlinks.  If somebody can figure out how to handle them correctly
1002     # here, feel free to add the code.
1003
1004     echo $1 > $2/COPIED
1005   fi
1006   shift; shift
1007 done
1008
1009 # Work in distributions that contain no compiler tools, like Autoconf.
1010 tentative_cc=""
1011 host_makefile_frag=/dev/null
1012 if test -d ${srcdir}/config ; then
1013 case "${host}" in
1014   m68k-hp-hpux*)
1015     # Avoid "too much defining" errors from HPUX compiler.
1016     tentative_cc="cc -Wp,-H256000"
1017     # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
1018     # If it's HP/UX ar, this should be harmless.
1019     RANLIB="ar ts"
1020     ;;
1021   m68k-apollo-sysv*)
1022     tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
1023     ;;
1024   m68k-apollo-bsd*)
1025     #None of the Apollo compilers can compile gas or binutils.  The preprocessor
1026     # chokes on bfd, the compiler won't let you assign integers to enums, and
1027     # other problems.  Defining CC to gcc is a questionable way to say "don't use
1028     # the apollo compiler" (the preferred version of GCC could be called cc,
1029     # or whatever), but I'm not sure leaving CC as cc is any better...
1030     #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
1031     # Used to have BISON=yacc.
1032     tentative_cc=gcc
1033     ;;
1034   m88k-dg-dgux*)
1035     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1036     ;;
1037   m88k-harris-cxux*)
1038     # Under CX/UX, we want to tell the compiler to use ANSI mode.
1039     tentative_cc="cc -Xa"
1040     host_makefile_frag="config/mh-cxux"
1041     ;;
1042   m88k-motorola-sysv*)
1043     ;;
1044   mips*-dec-ultrix*)
1045     tentative_cc="cc -Wf,-XNg1000"
1046     host_makefile_frag="config/mh-decstation"
1047     ;;
1048   mips*-nec-sysv4*)
1049     # The C compiler on NEC MIPS SVR4 needs bigger tables.
1050     tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
1051     host_makefile_frag="config/mh-necv4"
1052     ;;
1053   mips*-sgi-irix4*)
1054     # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
1055     # environment.  Also bump switch table size so that cp-parse will
1056     # compile.  Bump string length limit so linker builds.
1057     tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
1058     ;;
1059   mips*-*-sysv4*)
1060     host_makefile_frag="config/mh-sysv4"
1061     ;;
1062   mips*-*-sysv*)
1063     # This is for a MIPS running RISC/os 4.52C.
1064
1065     # This is needed for GDB, but needs to be in the top-level make because
1066     # if a library is compiled with the bsd headers and gets linked with the
1067     # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
1068     # a different size).
1069     # ptrace(2) apparently has problems in the BSD environment.  No workaround is
1070     # known except to select the sysv environment.  Could we use /proc instead?
1071     # These "sysv environments" and "bsd environments" often end up being a pain.
1072     #
1073     # This is not part of CFLAGS because perhaps not all C compilers have this
1074     # option.
1075     tentative_cc="cc -systype sysv"
1076     ;;
1077   i370-ibm-opened*)
1078     tentative_cc="c89"
1079     ;;
1080   i[[3456789]]86-*-sysv5*)
1081     host_makefile_frag="config/mh-sysv5"
1082     ;;
1083   i[[3456789]]86-*-dgux*)
1084     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1085     host_makefile_frag="config/mh-dgux386"
1086     ;;
1087   i[[3456789]]86-ncr-sysv4.3*)
1088     # The MetaWare compiler will generate a copyright message unless you
1089     # turn it off by adding the -Hnocopyr flag.
1090     tentative_cc="cc -Hnocopyr"
1091     ;;
1092   i[[3456789]]86-ncr-sysv4*)
1093     # for an NCR 3000 (i486/SVR4) system.
1094     # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
1095     # This compiler not only emits obnoxious copyright messages every time
1096     # you run it, but it chokes and dies on a whole bunch of GNU source
1097     # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
1098     tentative_cc="/usr/ccs/ATT/cc"
1099     host_makefile_frag="config/mh-ncr3000"
1100     ;;
1101   i[[3456789]]86-*-sco3.2v5*)
1102     ;;
1103   i[[3456789]]86-*-sco*)
1104     # The native C compiler botches some simple uses of const.  Unfortunately,
1105     # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
1106     tentative_cc="cc -Dconst="
1107     host_makefile_frag="config/mh-sco"
1108     ;;
1109   i[[3456789]]86-*-udk*)
1110     host_makefile_frag="config/mh-sysv5"
1111     ;;
1112   i[[3456789]]86-*-solaris2*)
1113     host_makefile_frag="config/mh-sysv4"
1114     ;;
1115   i[[3456789]]86-*-msdosdjgpp*)
1116     host_makefile_frag="config/mh-djgpp"
1117     ;;
1118   *-cygwin*)
1119     host_makefile_frag="config/mh-cygwin"
1120     ;;
1121   *-mingw32*)
1122     host_makefile_frag="config/mh-mingw32"
1123     ;;
1124   *-interix*)
1125     host_makefile_frag="config/mh-interix"
1126     ;;
1127   vax-*-ultrix2*)
1128     # The old BSD pcc isn't up to compiling parts of gdb so use gcc
1129     tentative_cc=gcc
1130     ;;
1131   *-*-solaris2*)
1132     host_makefile_frag="config/mh-solaris"
1133     ;;
1134   m68k-sun-sunos*)
1135     # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
1136     # without overflowing the jump tables (-J says to use a 32 bit table)
1137     tentative_cc="cc -J"
1138     ;;
1139   *-hp-hpux*)
1140     tentative_cc="cc -Wp,-H256000"
1141     ;;
1142   *-*-hiux*)
1143     tentative_cc="cc -Wp,-H256000"
1144     ;;
1145   rs6000-*-lynxos*)
1146     # /bin/cc is less than useful for our purposes.  Always use GCC
1147     tentative_cc="/usr/cygnus/progressive/bin/gcc"
1148     host_makefile_frag="config/mh-lynxrs6k"
1149     ;;
1150   *-*-lynxos*)
1151     # /bin/cc is less than useful for our purposes.  Always use GCC
1152     tentative_cc="/bin/gcc"
1153     ;;
1154   *-*-sysv4*)
1155     host_makefile_frag="config/mh-sysv4"
1156     ;;
1157 esac
1158 fi
1159
1160 extra_arflags_for_target=
1161 extra_nmflags_for_target=
1162 extra_ranlibflags_for_target=
1163 target_makefile_frag=/dev/null
1164 case "${target}" in
1165   i[[3456789]]86-*-netware*)
1166     target_makefile_frag="config/mt-netware"
1167     ;;
1168   powerpc-*-netware*)
1169     target_makefile_frag="config/mt-netware"
1170     ;;
1171   *-*-linux*)
1172     target_makefile_frag="config/mt-linux"
1173     ;;
1174   *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
1175     # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
1176     # commands to handle both 32-bit and 64-bit objects.  These flags are
1177     # harmless if we're using GNU nm or ar.
1178     extra_arflags_for_target=" -X32_64"
1179     extra_nmflags_for_target=" -B -X32_64"
1180     ;;
1181   *-*-darwin*)
1182     # ranlib from Darwin requires the -c flag to look at common symbols.
1183     extra_ranlibflags_for_target=" -c"
1184     ;;
1185   mips*-*-pe | sh*-*-pe | *arm-wince-pe)
1186     target_makefile_frag="config/mt-wince"
1187     ;;
1188 esac
1189
1190 alphaieee_frag=/dev/null
1191 case $target in
1192   alpha*-*-*)
1193     # This just makes sure to use the -mieee option to build target libs.
1194     # This should probably be set individually by each library.
1195     alphaieee_frag="config/mt-alphaieee"
1196     ;;
1197 esac
1198
1199 # If --enable-target-optspace always use -Os instead of -O2 to build
1200 # the target libraries, similarly if it is not specified, use -Os
1201 # on selected platforms.
1202 ospace_frag=/dev/null
1203 case "${enable_target_optspace}:${target}" in
1204   yes:*)
1205     ospace_frag="config/mt-ospace"
1206     ;;
1207   :d30v-*)
1208     ospace_frag="config/mt-d30v"
1209     ;;
1210   :m32r-* | :d10v-* | :fr30-*)
1211     ospace_frag="config/mt-ospace"
1212     ;;
1213   no:* | :*)
1214     ;;
1215   *)
1216     echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1217     ;;
1218 esac
1219
1220 # Set with_gnu_as and with_gnu_ld as appropriate.
1221 #
1222 # This is done by determining whether or not the appropriate directory
1223 # is available, and by checking whether or not specific configurations
1224 # have requested that this magic not happen.
1225
1226 # The command line options always override the explicit settings in 
1227 # configure.in, and the settings in configure.in override this magic.
1228 #
1229 # If the default for a toolchain is to use GNU as and ld, and you don't 
1230 # want to do that, then you should use the --without-gnu-as and
1231 # --without-gnu-ld options for the configure script.
1232
1233 if test x${use_gnu_as} = x &&
1234    echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1235   with_gnu_as=yes
1236   extra_host_args="$extra_host_args --with-gnu-as"
1237 fi
1238
1239 if test x${use_gnu_ld} = x &&
1240    echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1241   with_gnu_ld=yes
1242   extra_host_args="$extra_host_args --with-gnu-ld"
1243 fi
1244
1245 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1246 # can detect this case.
1247
1248 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1249   with_newlib=yes
1250   extra_host_args="$extra_host_args --with-newlib"
1251 fi
1252
1253
1254 # Default to using --with-stabs for certain targets.
1255 if test x${with_stabs} = x ; then
1256   case "${target}" in
1257   mips*-*-irix6*)
1258     ;;
1259   mips*-*-* | alpha*-*-osf*)
1260     with_stabs=yes;
1261     extra_host_args="${extra_host_args} --with-stabs"
1262     ;;
1263   esac
1264 fi
1265
1266 # hpux11 in 64bit mode has libraries in a weird place.  Arrange to find
1267 # them automatically.
1268 case "${host}" in
1269   hppa*64*-*-hpux11*)   
1270     extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
1271     ;;
1272 esac
1273
1274 # If we aren't going to be using gcc, see if we can extract a definition
1275 # of CC from the fragment.
1276 # Actually, use the 'pre-extracted' version above.
1277 if test -z "${CC}" && test "${build}" = "${host}" ; then
1278   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
1279   found=
1280   for dir in $PATH; do
1281     test -z "$dir" && dir=.
1282     if test -f $dir/gcc; then
1283       found=yes
1284       break
1285     fi
1286   done
1287   IFS="$save_ifs"
1288   if test -z "${found}" && test -n "${tentative_cc}" ; then
1289     CC=$tentative_cc
1290   fi
1291 fi
1292
1293 # Some systems (e.g., one of the i386-aix systems the gas testers are
1294 # using) don't handle "\$" correctly, so don't use it here.
1295 tooldir='${exec_prefix}'/${target_alias}
1296 build_tooldir=${tooldir}
1297
1298 # Generate a default definition for YACC.  This is used if the makefile can't
1299 # locate bison or byacc in objdir.
1300
1301 for prog in 'bison -y' byacc yacc
1302 do
1303   set dummy $prog; tmp=$2
1304   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
1305   for dir in $PATH; do
1306     test -z "$dir" && dir=.
1307     if test -f $dir/$tmp; then
1308       DEFAULT_YACC="$prog"
1309       break
1310     fi
1311   done
1312   IFS="$save_ifs"
1313
1314   test -n "$DEFAULT_YACC" && break
1315 done
1316
1317 # Generate a default definition for M4.  This is used if the makefile can't
1318 # locate m4 in objdir.
1319
1320 for prog in gm4 gnum4 m4
1321 do
1322   set dummy $prog; tmp=$2
1323   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
1324   for dir in $PATH; do
1325     test -z "$dir" && dir=.
1326     if test -f $dir/$tmp; then
1327       DEFAULT_M4="$prog"
1328       break
1329     fi
1330   done
1331   IFS="$save_ifs"
1332
1333   test -n "$DEFAULT_M4" && break
1334 done
1335
1336 # Generate a default definition for LEX.  This is used if the makefile can't
1337 # locate flex in objdir.
1338
1339 for prog in flex lex
1340 do
1341   set dummy $prog; tmp=$2
1342   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
1343   for dir in $PATH; do
1344     test -z "$dir" && dir=.
1345     if test -f $dir/$tmp; then
1346       DEFAULT_LEX="$prog"
1347       break
1348     fi
1349   done
1350   IFS="$save_ifs"
1351
1352   test -n "$DEFAULT_LEX" && break
1353 done
1354
1355 if test "${build}" != "${host}" ; then
1356   # If we are doing a Canadian Cross, in which the host and build systems
1357   # are not the same, we set reasonable default values for the tools.
1358
1359   BISON=${BISON-bison}
1360   CC=${CC-${host_alias}-gcc}
1361   CFLAGS=${CFLAGS-"-g -O2"}
1362   CXX=${CXX-${host_alias}-c++}
1363   CXXFLAGS=${CXXFLAGS-"-g -O2"}
1364   CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1365   CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
1366   CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
1367   GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
1368   GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
1369   BUILD_PREFIX=${build_alias}-
1370   BUILD_PREFIX_1=${build_alias}-
1371   MAKEINFO=${MAKEINFO-makeinfo}
1372
1373   if test -z "${YACC}" ; then
1374     IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}:"
1375     for dir in $PATH; do
1376       test -z "$dir" && dir=.
1377       if test -f $dir/bison; then
1378         YACC="bison -y"
1379         break
1380       fi
1381       if test -f $dir/byacc; then
1382         YACC=byacc
1383         break
1384       fi
1385       if test -f $dir/yacc; then
1386         YACC=yacc
1387         break
1388       fi
1389     done
1390     IFS="$save_ifs"
1391     if test -z "${YACC}" ; then
1392       YACC="bison -y"
1393     fi
1394   fi
1395
1396   if test -z "${LEX}" ; then
1397     IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}:"
1398     for dir in $PATH; do
1399       test -z "$dir" && dir=.
1400       if test -f $dir/flex; then
1401         LEX=flex
1402         break
1403       fi
1404       if test -f $dir/lex; then
1405         LEX=lex
1406         break
1407       fi
1408     done
1409     IFS="$save_ifs"
1410     LEX=${LEX-flex}
1411   fi
1412
1413 else
1414   # Set reasonable default values for some tools even if not Canadian.
1415   # Of course, these are different reasonable default values, originally
1416   # specified directly in the Makefile.
1417   # We don't export, so that autoconf can do its job.
1418   # Note that all these settings are above the fragment inclusion point
1419   # in Makefile.in, so can still be overridden by fragments.
1420   # This is all going to change when we autoconfiscate...
1421
1422   BISON="\$(USUAL_BISON)"
1423   CC_FOR_BUILD="\$(CC)"
1424   GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
1425   BUILD_PREFIX=
1426   BUILD_PREFIX_1=loser-
1427   MAKEINFO="\$(USUAL_MAKEINFO)"
1428   LEX="\$(USUAL_LEX)"
1429   YACC="\$(USUAL_YACC)"
1430
1431   # If CC is still not set, try to get gcc.
1432   cc_prog_is_gcc=
1433   if test -z "${CC}" ; then
1434     IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}:"
1435     for dir in $PATH; do
1436       test -z "$dir" && dir=.
1437       if test -f $dir/gcc; then
1438         CC="gcc"
1439         cc_prog_is_gcc=yes
1440         echo 'void f(){}' > conftest.c
1441         if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1442           CFLAGS=${CFLAGS-"-g -O2"}
1443           CXXFLAGS=${CXXFLAGS-"-g -O2"}
1444         else
1445           CFLAGS=${CFLAGS-"-O2"}
1446           CXXFLAGS=${CXXFLAGS-"-O2"}
1447         fi
1448         rm -f conftest*
1449         break
1450       fi
1451     done
1452     IFS="$save_ifs"
1453     CC=${CC-cc}
1454   else
1455     # Determine if we are using gcc.
1456     cat > conftest.c <<EOF
1457 #ifdef __GNUC__
1458   yes;
1459 #endif
1460 EOF
1461     if ${CC} -E conftest.c | grep yes >/dev/null 2>&1; then
1462       cc_prog_is_gcc=yes
1463     fi
1464     rm -f conftest.c
1465     if test -z "${CFLAGS}"; then
1466       # Here CC is set but CFLAGS is not.  Use a quick hack to use -O2 if CC
1467       # is set to a version of gcc.
1468       if test "$cc_prog_is_gcc" = yes; then
1469         echo 'void f(){}' > conftest.c
1470         if test -z "`${CC} -g -c conftest.c 2>&1`"; then
1471           CFLAGS=${CFLAGS-"-g -O2"}
1472           CXXFLAGS=${CXXFLAGS-"-g -O2"}
1473         else
1474           CFLAGS=${CFLAGS-"-O2"}
1475           CXXFLAGS=${CXXFLAGS-"-O2"}
1476         fi
1477         rm -f conftest*
1478       fi
1479     fi
1480   fi
1481
1482   # We must set the default linker to the linker used by gcc for the correct
1483   # operation of libtool.  If LD is not defined and we are using gcc, try to
1484   # set the LD default to the ld used by gcc.
1485   if test -z "$LD"; then
1486     if test "$cc_prog_is_gcc" = yes; then
1487       case $build in
1488       *-*-mingw*)
1489         gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1490       *)
1491         gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1492       esac
1493       case $gcc_prog_ld in
1494       # Accept absolute paths.
1495       [[\\/]* | [A-Za-z]:[\\/]*)]
1496         LD="$gcc_prog_ld" ;;
1497       esac
1498     fi
1499   fi
1500
1501   CXX=${CXX-"c++"}
1502   CFLAGS=${CFLAGS-"-g"}
1503   CXXFLAGS=${CXXFLAGS-"-g -O2"}
1504 fi
1505
1506 # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
1507 # Set up the list of links to be made.
1508 # ${links} is the list of link names, and ${files} is the list of names to link to.
1509
1510 # Make the links.
1511 configlinks="${links}"
1512 if test -r ./config.status  ; then
1513   mv -f ./config.status ./config.back
1514 fi
1515 while test -n "${files}" ; do
1516   # set file to car of files, files to cdr of files
1517   set ${files}; file=$1; shift; files=$*
1518   set ${links}; link=$1; shift; links=$*
1519
1520   if test ! -r ${srcdir}/${file} ; then
1521     if test ! -r ${file} ; then
1522       echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
1523       echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
1524       exit 1
1525     else
1526       srcfile=${file}
1527     fi
1528   else
1529     srcfile=${srcdir}/${file}
1530   fi
1531
1532   ${remove} -f ${link}
1533   # Make a symlink if possible, otherwise try a hard link
1534   if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
1535     true
1536   else
1537     # We need to re-remove the file because Lynx leaves a 
1538     # very strange directory there when it fails an NFS symlink.
1539     ${remove} -r -f ${link}
1540     ${hard_link} ${srcfile} ${link}
1541   fi
1542   if test ! -r ${link} ; then
1543     echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
1544     exit 1
1545   fi
1546
1547   echo "Linked \"${link}\" to \"${srcfile}\"."
1548 done
1549
1550 # Create a .gdbinit file which runs the one in srcdir
1551 # and tells GDB to look there for source files.
1552
1553 if test -r ${srcdir}/.gdbinit ; then
1554   case ${srcdir} in
1555     .) ;;
1556     *) cat > ./.gdbinit <<EOF
1557 # ${NO_EDIT}
1558 dir ${srcdir}
1559 dir .
1560 source ${srcdir}/.gdbinit
1561 EOF
1562     ;;
1563   esac
1564 fi
1565
1566 # Make sure that the compiler is able to generate an executable.  If it
1567 # can't, we are probably in trouble.  We don't care whether we can run the
1568 # executable--we might be using a cross compiler--we only care whether it
1569 # can be created.  At this point the main configure script has set CC.
1570 we_are_ok=no
1571 echo "int main () { return 0; }" > conftest.c
1572 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1573 if test $? = 0 ; then
1574   if test -s conftest || test -s conftest.exe ; then
1575     we_are_ok=yes
1576   fi
1577 fi 
1578 case $we_are_ok in
1579   no)
1580     echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1581     echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1582     rm -f conftest*
1583     exit 1
1584     ;;
1585 esac
1586 rm -f conftest*
1587
1588 # The Solaris /usr/ucb/cc compiler does not appear to work.
1589 case "${host}" in
1590   sparc-sun-solaris2*)
1591       CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1592       if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
1593           could_use=
1594           test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1595           if test -d /opt/cygnus/bin ; then
1596               if test "$could_use" = "" ; then
1597                   could_use="/opt/cygnus/bin"
1598               else
1599                   could_use="$could_use or /opt/cygnus/bin"
1600               fi
1601           fi
1602         if test "$could_use" = "" ; then
1603             echo "Warning: compilation may fail because you're using"
1604             echo "/usr/ucb/cc.  You should change your PATH or CC "
1605             echo "variable and rerun configure."
1606         else
1607             echo "Warning: compilation may fail because you're using"
1608             echo "/usr/ucb/cc, when you should use the C compiler from"
1609             echo "$could_use.  You should change your"
1610             echo "PATH or CC variable and rerun configure."
1611         fi
1612       fi
1613   ;;
1614 esac
1615
1616 # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
1617 # binutils tools will find libbfd.so.
1618 case "${enable_shared}" in
1619   no | "") SET_LIB_PATH= ;;
1620   *) SET_LIB_PATH="\$(REALLY_SET_LIB_PATH)" ;;
1621 esac
1622
1623 case "${host}" in
1624   *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
1625   *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1626 esac
1627
1628 # Record target_configdirs and the configure arguments for target and
1629 # build configuration in Makefile.
1630 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1631
1632 # This is the final value for target_configdirs.  configdirs already
1633 # has its final value, as does build_modules.  It's time to create some 
1634 # lists of valid targets.
1635
1636 all_build_modules=
1637 configure_build_modules=
1638 for module in ${build_modules} ; do
1639   all_build_modules=all-build-${module}
1640   configure_build_modules=configure-build-${module}
1641 done
1642
1643 # Determine whether gdb needs tk/tcl or not.
1644 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1645 # and in that case we want gdb to be built without tk.  Ugh!
1646 # In fact I believe gdb is the *only* package directly dependent on tk,
1647 # so we should be able to put the 'maybe's in unconditionally and
1648 # leave out the maybe dependencies when enable_gdbtk is false.  I'm not
1649 # 100% sure that that's safe though.
1650
1651 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui"
1652 case "$enable_gdbtk" in
1653   no)
1654     GDB_TK="" ;;
1655   yes)
1656     GDB_TK="${gdb_tk}" ;;
1657   *)
1658     # Only add the dependency on gdbtk when GDBtk is part of the gdb
1659     # distro.  Eventually someone will fix this and move Insight, nee
1660     # gdbtk to a separate directory.
1661     if test -d ${srcdir}/gdb/gdbtk ; then
1662       GDB_TK="${gdb_tk}"
1663     else
1664       GDB_TK=""
1665     fi
1666     ;;
1667 esac
1668
1669 # Create the 'maybe dependencies'.  This uses a temporary file.
1670
1671 # While at that, we remove Makefiles if we were started for recursive
1672 # configuration, so that the top-level Makefile reconfigures them,
1673 # like we used to do when configure itself was recursive.
1674 rm -f maybedep.tmp
1675 echo '# maybedep.tmp' > maybedep.tmp
1676
1677 # Make-targets which may need maybe dependencies.
1678 mts="configure all install check clean distclean dvi info install-info"
1679 mts="${mts} installcheck mostlyclean maintainer-clean TAGS"
1680
1681 # Loop over modules and make-targets.
1682 for module in ${build_modules} ; do
1683   if test -z "${no_recursion}" \
1684      && test -f ${build_subdir}/${module}/Makefile; then
1685     echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
1686     rm -f ${build_subdir}/${module}/Makefile
1687   fi
1688   for mt in ${mts} ; do
1689     case ${mt} in
1690       install) ;; # No installing build modules.
1691       *) echo "maybe-${mt}-build-${module}: ${mt}-build-${module}" >> maybedep.tmp ;;
1692     esac
1693   done
1694 done
1695 for module in ${configdirs} ; do
1696   if test -z "${no_recursion}" \
1697      && test -f ${module}/Makefile; then
1698     echo 1>&2 "*** removing ${module}/Makefile to force reconfigure"
1699     rm -f ${module}/Makefile
1700   fi
1701   for mt in ${mts} ; do
1702     echo "maybe-${mt}-${module}: ${mt}-${module}" >> maybedep.tmp
1703   done
1704 done
1705 for module in ${target_configdirs} ; do
1706   if test -z "${no_recursion}" \
1707      && test -f ${target_subdir}/${module}/Makefile; then
1708     echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
1709     rm -f ${target_subdir}/${module}/Makefile
1710   fi
1711   for mt in ${mts} ; do
1712     echo "maybe-${mt}-target-${module}: ${mt}-target-${module}" >> maybedep.tmp
1713   done
1714 done
1715 maybe_dependencies=maybedep.tmp
1716 AC_SUBST_FILE(maybe_dependencies)
1717
1718 # Create the serialization dependencies.  This uses a temporary file.
1719
1720 AC_ARG_ENABLE([serial-configure],
1721 [  --enable-serial-[{host,target,build}-]configure
1722                           Force sequential configuration of
1723                           sub-packages for the host, target or build
1724                           machine, or all sub-packages])
1725
1726 case ${enable_serial_configure} in
1727   yes)
1728     enable_serial_build_configure=yes
1729     enable_serial_host_configure=yes
1730     enable_serial_target_configure=yes
1731     ;;
1732 esac
1733
1734 # These force 'configure's to be done one at a time, to avoid problems
1735 # with contention over a shared config.cache.
1736 rm -f serdep.tmp
1737 echo '# serdep.tmp' > serdep.tmp
1738 olditem=
1739 test "x${enable_serial_build_configure}" = xyes &&
1740 for item in ${build_configdirs} ; do
1741   case ${olditem} in
1742     "") ;;
1743     *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
1744   esac
1745   olditem=${item}
1746 done
1747 olditem=
1748 test "x${enable_serial_host_configure}" = xyes &&
1749 for item in ${configdirs} ; do
1750   case ${olditem} in
1751     "") ;;
1752     *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
1753   esac
1754   olditem=${item}
1755 done
1756 olditem=
1757 test "x${enable_serial_target_configure}" = xyes &&
1758 for item in ${target_configdirs} ; do
1759   case ${olditem} in
1760     "") ;;
1761     *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
1762   esac
1763   olditem=${item}
1764 done
1765 serialization_dependencies=serdep.tmp
1766 AC_SUBST_FILE(serialization_dependencies)
1767
1768 # Base args.  Strip norecursion, cache-file, srcdir, host, build,
1769 # target and nonopt.  These are the ones we might not want to pass
1770 # down to subconfigures.
1771 baseargs=`echo " ${ac_configure_args} " | \
1772         sed -e 's/ --no[[^ ]]* / /' \
1773             -e 's/ --c[[a-z-]]*[[= ]][[^ ]]* / /' \
1774             -e 's/ --sr[[a-z-]]*[[= ]][[^ ]]* / /' \
1775             -e 's/ --ho[[a-z-]]*[[= ]][[^ ]]* / /' \
1776             -e 's/ --bu[[a-z-]]*[[= ]][[^ ]]* / /' \
1777             -e 's/ --t[[a-z-]]*[[= ]][[^ ]]* / /' \
1778             -e 's/ -cache-file[[= ]][[^ ]]* / /' \
1779             -e 's/ -srcdir[[= ]][[^ ]]* / /' \
1780             -e 's/ -host[[= ]][[^ ]]* / /' \
1781             -e 's/ -build[[= ]][[^ ]]* / /' \
1782             -e 's/ -target[[= ]][[^ ]]* / /' \
1783             -e "s/ [[^' -][^ ]*] / /" \
1784             -e 's/^ *//;s/ *$//'`
1785
1786 # For the build-side libraries, we just need to pretend we're native,
1787 # and not use the same cache file.  Multilibs are neither needed nor
1788 # desired.
1789 build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}"
1790
1791 # For host modules, accept cache file option, or specification as blank.
1792 case "${cache_file}" in
1793 "") # empty
1794   cache_file_option="" ;;
1795 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
1796   cache_file_option="--cache-file=${cache_file}" ;;
1797 *) # relative path
1798   cache_file_option="--cache-file=../${cache_file}" ;;
1799 esac
1800
1801 host_configargs="${cache_file_option} --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}"
1802
1803 target_configargs=${baseargs}
1804
1805 # Passing a --with-cross-host argument lets the target libraries know
1806 # whether they are being built with a cross-compiler or being built
1807 # native.  However, it would be better to use other mechanisms to make the
1808 # sorts of decisions they want to make on this basis.  Please consider
1809 # this option to be deprecated.  FIXME.
1810 if test x${is_cross_compiler} = xyes ; then
1811   target_configargs="--with-cross-host=${host_alias} ${target_configargs}"
1812 fi
1813
1814 # Default to --enable-multilib.
1815 if test x${enable_multilib} = x ; then
1816   target_configargs="--enable-multilib ${target_configargs}"
1817 fi
1818
1819 # Pass --with-newlib if appropriate.  Note that target_configdirs has
1820 # changed from the earlier setting of with_newlib.
1821 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
1822   target_configargs="--with-newlib ${target_configargs}"
1823 fi
1824
1825 # Pass the appropriate --host, --build, and --cache-file arguments.
1826 target_configargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${target_configargs}"
1827
1828 # provide a proper gxx_include_dir.
1829 # Note, if you change the default, make sure to fix both here and in
1830 # the gcc and libstdc++-v3 subdirectories.
1831 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
1832 case "${with_gxx_include_dir}" in
1833   yes)
1834     AC_MSG_ERROR([--with-gxx-include-dir=[[dir]] requires a directory])
1835     ;;
1836   no | "")
1837     case "${enable_version_specific_runtime_libs}" in
1838       yes) gxx_include_dir='${libsubdir}/include/c++' ;;
1839       *)
1840         . ${srcdir}/config.if
1841         gxx_include_dir='${prefix}/include/'${libstdcxx_incdir} ;;
1842     esac ;;
1843   *) gxx_include_dir=${with_gxx_include_dir} ;;
1844 esac
1845
1846 FLAGS_FOR_TARGET=
1847 case " $target_configdirs " in
1848  *" newlib "*)
1849   case " $target_configargs " in
1850   *" --with-newlib "*)
1851    case "$target" in
1852    *-cygwin*)
1853      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' ;;
1854    esac
1855
1856    # If we're not building GCC, don't discard standard headers.
1857    if test -d ${srcdir}/gcc; then
1858      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
1859
1860      if test "${build}" != "${host}"; then
1861        # On Canadian crosses, CC_FOR_TARGET will have already been set
1862        # by `configure', so we won't have an opportunity to add -Bgcc/
1863        # to it.  This is right: we don't want to search that directory
1864        # for binaries, but we want the header files in there, so add
1865        # them explicitly.
1866        FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
1867
1868        # Someone might think of using the pre-installed headers on
1869        # Canadian crosses, in case the installed compiler is not fully
1870        # compatible with the compiler being built.  In this case, it
1871        # would be better to flag an error than risking having
1872        # incompatible object files being constructed.  We can't
1873        # guarantee that an error will be flagged, but let's hope the
1874        # compiler will do it, when presented with incompatible header
1875        # files.
1876      fi
1877    fi
1878
1879    case "${target}-${is_cross_compiler}" in
1880    i[[3456789]]86-*-linux*-no)
1881       # Here host == target, so we don't need to build gcc,
1882       # so we don't want to discard standard headers.
1883       FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
1884       ;;
1885    *)
1886       # If we're building newlib, use its generic headers last, but search
1887       # for any libc-related directories first (so make it the last -B
1888       # switch).
1889       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
1890       ;;
1891    esac
1892    ;;
1893   esac
1894   ;;
1895 esac
1896
1897 # On Canadian crosses, we'll be searching the right directories for
1898 # the previously-installed cross compiler, so don't bother to add
1899 # flags for directories within the install tree of the compiler
1900 # being built; programs in there won't even run.
1901 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
1902   # Search for pre-installed headers if nothing else fits.
1903   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
1904 fi
1905
1906 if test "x${use_gnu_ld}" = x &&
1907    echo " ${configdirs} " | grep " ld " > /dev/null ; then
1908   # Arrange for us to find uninstalled linker scripts.
1909   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
1910 fi
1911
1912 if test "x${CC_FOR_TARGET+set}" = xset; then
1913   :
1914 elif test -d ${srcdir}/gcc; then
1915   CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
1916 elif test "$host" = "$target"; then
1917   CC_FOR_TARGET='$(CC)'
1918 else
1919   CC_FOR_TARGET=`echo gcc | sed "${program_transform_name}"`
1920 fi
1921 CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)'
1922
1923 if test "x${GCJ_FOR_TARGET+set}" = xset; then
1924   :
1925 elif test -d ${srcdir}/gcc; then
1926   GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/'
1927 elif test "$host" = "$target"; then
1928   GCJ_FOR_TARGET='gcj'
1929 else
1930   GCJ_FOR_TARGET=`echo gcj | sed "${program_transform_name}"`
1931 fi
1932 GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)'
1933
1934 # Don't use libstdc++-v3's flags to configure/build itself.
1935 libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
1936 raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs'
1937
1938 if test "x${CXX_FOR_TARGET+set}" = xset; then
1939   :
1940 elif test -d ${srcdir}/gcc; then
1941   # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead
1942   # of g++ for linking C++ or Java, because g++ has -shared-libgcc by
1943   # default whereas gcc does not.
1944   # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for
1945   # all other cases.
1946   CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
1947   RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags
1948 elif test "$host" = "$target"; then
1949   CXX_FOR_TARGET='$(CXX)'
1950   RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
1951 else
1952   CXX_FOR_TARGET=`echo c++ | sed "${program_transform_name}"`
1953   RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
1954 fi
1955 CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
1956 RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
1957
1958 qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'`
1959 qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'`
1960
1961 # We want to defer the evaluation of `cmd`s and shell variables in
1962 # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for
1963 # bootstrap.  We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single
1964 # quotes, but we still have to duplicate `$'s so that shell variables
1965 # can be expanded by the nested make as shell variables, not as make
1966 # macros.
1967 qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'`
1968 qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'`
1969
1970 # Wrap CC_FOR_TARGET and friends, for certain types of builds.
1971 CC_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}"
1972 GCJ_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}"
1973 CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}"
1974 RAW_CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}"
1975 CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}"
1976 RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}"
1977
1978 # Makefile fragments.
1979 host_makefile_frag=${srcdir}/${host_makefile_frag}
1980 target_makefile_frag=${srcdir}/${target_makefile_frag}
1981 alphaieee_frag=${srcdir}/${alphaieee_frag}
1982 ospace_frag=${srcdir}/${ospace_frag}
1983 AC_SUBST_FILE(host_makefile_frag)
1984 AC_SUBST_FILE(target_makefile_frag)
1985 AC_SUBST_FILE(alphaieee_frag)
1986 AC_SUBST_FILE(ospace_frag)
1987
1988 # Miscellanea: directories, flags, etc.
1989 AC_SUBST(SET_LIB_PATH)
1990 AC_SUBST(RPATH_ENVVAR)
1991 AC_SUBST(BUILD_PREFIX)
1992 AC_SUBST(BUILD_PREFIX_1)
1993 AC_SUBST(configlinks)
1994 AC_SUBST(gcc_version_trigger)
1995 AC_SUBST(gcc_version)
1996 AC_SUBST(tooldir)
1997 AC_SUBST(build_tooldir)
1998 AC_SUBST(GDB_TK)
1999 AC_SUBST(gxx_include_dir)
2000 AC_SUBST(libstdcxx_incdir)
2001
2002 # Build module lists & subconfigure args.
2003 AC_SUBST(build_configargs)
2004 AC_SUBST(configure_build_modules)
2005 AC_SUBST(all_build_modules)
2006
2007 # Host module lists & subconfigure args.
2008 AC_SUBST(host_configargs)
2009 AC_SUBST(configdirs)
2010
2011 # Target module lists & subconfigure args.
2012 AC_SUBST(target_configargs)
2013 AC_SUBST(target_configdirs)
2014
2015 # Build tools.
2016 AC_SUBST(BISON)
2017 AC_SUBST(CC_FOR_BUILD)
2018 AC_SUBST(LEX)
2019 AC_SUBST(MAKEINFO)
2020 AC_SUBST(YACC)
2021 AC_SUBST(config_shell)
2022
2023 # Host tools.
2024 NCN_STRICT_CHECK_TOOL(AR, ar)
2025 NCN_STRICT_CHECK_TOOL(AS, as)
2026 NCN_STRICT_CHECK_TOOL(DLLTOOL, dlltool)
2027 NCN_STRICT_CHECK_TOOL(LD, ld)
2028 NCN_STRICT_CHECK_TOOL(NM, nm)
2029 NCN_STRICT_CHECK_TOOL(RANLIB, ranlib, :)
2030 NCN_STRICT_CHECK_TOOL(WINDRES, windres)
2031 NCN_STRICT_CHECK_TOOL(OBJCOPY, objcopy)
2032 NCN_STRICT_CHECK_TOOL(OBJDUMP, objdump)
2033 AC_SUBST(CC)
2034 AC_SUBST(CXX)
2035 AC_SUBST(CFLAGS)
2036 AC_SUBST(CXXFLAGS)
2037 AC_SUBST(DEFAULT_YACC)
2038 AC_SUBST(DEFAULT_LEX)
2039 AC_SUBST(DEFAULT_M4)
2040
2041 # Target tools.
2042 NCN_STRICT_CHECK_TARGET_TOOL(AR_FOR_TARGET, ar)
2043 NCN_STRICT_CHECK_TARGET_TOOL(AS_FOR_TARGET, as)
2044 NCN_STRICT_CHECK_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
2045 NCN_STRICT_CHECK_TARGET_TOOL(LD_FOR_TARGET, ld)
2046 NCN_STRICT_CHECK_TARGET_TOOL(NM_FOR_TARGET, nm)
2047 NCN_STRICT_CHECK_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :)
2048 NCN_STRICT_CHECK_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
2049
2050 AC_SUBST(GCC_FOR_TARGET)
2051 AC_SUBST(FLAGS_FOR_TARGET)
2052 AC_SUBST(CC_FOR_TARGET)
2053 AC_SUBST(GCJ_FOR_TARGET)
2054 AC_SUBST(CXX_FOR_TARGET)
2055 AC_SUBST(RAW_CXX_FOR_TARGET)
2056 AC_SUBST(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)
2057 AC_SUBST(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)
2058
2059 # Fix up target tools.
2060 if test "x${build}" = "x${host}" ; then
2061   # In this case, the newly built tools can and should be used,
2062   # so we override the results of the autoconf tests.
2063   # This should really only happen when the tools are actually being built,
2064   # but that's a further refinement.  The new build scheme, where
2065   # tools are built into a structure paralleling where they're installed,
2066   # should also eliminate all of this cleanly.
2067   AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)"
2068   AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)"
2069   DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)"
2070   LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)"
2071   NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)"
2072   RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)"
2073   WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)"
2074 fi
2075 # Certain tools may need extra flags.
2076 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2077 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2078 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
2079
2080 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2081 AC_ARG_ENABLE(maintainer-mode,
2082 [  --enable-maintainer-mode enable make rules and dependencies not useful
2083                           (and sometimes confusing) to the casual installer],
2084       USE_MAINTAINER_MODE=$enableval,
2085       USE_MAINTAINER_MODE=no)
2086 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2087 AC_SUBST(MAINTAINER_MODE_TRUE)
2088 AC_SUBST(MAINTAINER_MODE_FALSE)
2089 if test "$USE_MAINTAINER_MODE" = yes; then
2090   MAINTAINER_MODE_TRUE=
2091   MAINTAINER_MODE_FALSE='#'
2092 else
2093   MAINTAINER_MODE_TRUE='#'
2094   MAINTAINER_MODE_FALSE=
2095 fi      
2096 MAINT=$MAINTAINER_MODE_TRUE
2097 AC_SUBST(MAINT)dnl
2098
2099 AC_OUTPUT(Makefile)