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