2007-10-17 Zack Weinberg <zack@codesourcery.com>
[binutils.git] / configure.ac
blobda6adf1e6b89820ef670e64342cba6ec2cb24771
1 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2 #   2001, 2002, 2003, 2004, 2005, 2006, 2007 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 ##############################################################################
19 ### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
21 sinclude(config/acx.m4)
23 AC_INIT(move-if-change)
24 AC_PREREQ(2.59)
26 # Find the build, host, and target systems.
27 ACX_NONCANONICAL_BUILD
28 ACX_NONCANONICAL_HOST
29 ACX_NONCANONICAL_TARGET
31 dnl Autoconf 2.5x and later will set a default program prefix if
32 dnl --target was used, even if it was the same as --host.  Disable
33 dnl that behavior.  This must be done before AC_CANONICAL_SYSTEM
34 dnl to take effect.
35 test "$host_noncanonical" = "$target_noncanonical" &&
36   test "$program_prefix$program_suffix$program_transform_name" = \
37     NONENONEs,x,x, &&
38   program_transform_name=s,y,y,
40 AC_CANONICAL_SYSTEM
41 AC_ARG_PROGRAM
43 m4_pattern_allow([^AS_FOR_TARGET$])dnl
44 m4_pattern_allow([^AS_FOR_BUILD$])dnl
46 # Get 'install' or 'install-sh' and its variants.
47 AC_PROG_INSTALL
48 ACX_PROG_LN
49 AC_PROG_LN_S
51 ### we might need to use some other shell than /bin/sh for running subshells
52 ### If we are on Windows, search for the shell.  This will permit people
53 ### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
54 ### without also having to set CONFIG_SHELL.  This code will work when
55 ### using bash, which sets OSTYPE.
56 case "${OSTYPE}" in
57 *win32*)
58   if test x${CONFIG_SHELL} = x ; then
59     if test ! -f /bin/sh ; then
60       if test x${SHELL} != x && test -f ${SHELL} ; then
61         CONFIG_SHELL=${SHELL}
62         export CONFIG_SHELL
63       else
64         for prog in sh sh.exe bash bash.exe; do
65           IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
66           for dir in $PATH; do
67             test -z "$dir" && dir=.
68             if test -f $dir/$prog; then
69               CONFIG_SHELL=$dir/$prog
70               export CONFIG_SHELL
71               break
72             fi
73           done
74           IFS="$save_ifs"
75           test -n "${CONFIG_SHELL}" && break
76         done
77       fi
78     fi
79   fi
80   ;;
81 esac
83 config_shell=${CONFIG_SHELL-/bin/sh}
85 progname=$0
86 # if PWD already has a value, it is probably wrong.
87 if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
89 # Export original configure arguments for use by sub-configures.
90 # Quote arguments with shell meta charatcers.
91 TOPLEVEL_CONFIGURE_ARGUMENTS=
92 set -- "$progname" "$@"
93 for ac_arg
95   case "$ac_arg" in
96   *" "*|*"      "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
97     ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
98     # if the argument is of the form -foo=baz, quote the baz part only
99     ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
100   *) ;;
101   esac
102   # Add the quoted argument to the list.
103   TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
104 done
105 if test "$silent" = yes; then
106   TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
108 # Remove the initial space we just introduced and, as these will be
109 # expanded by make, quote '$'.
110 TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
111 AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
113 moveifchange=${srcdir}/move-if-change
115 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
117 # We pass INSTALL explicitly to sub-makes.  Make sure that it is not
118 # a relative path.
119 if test "$INSTALL" = "${srcdir}/install-sh -c"; then
120   INSTALL="${srcpwd}/install-sh -c"
123 # Set srcdir to "." if that's what it is.
124 # This is important for multilib support.
125 pwd=`${PWDCMD-pwd}`
126 if test "${pwd}" = "${srcpwd}" ; then
127   srcdir=.
130 topsrcdir=$srcpwd
132 extra_host_args=
134 ### To add a new directory to the tree, first choose whether it is a target
135 ### or a host dependent tool.  Then put it into the appropriate list
136 ### (library or tools, host or target), doing a dependency sort.
138 # Subdirs will be configured in the order listed in build_configdirs, 
139 # configdirs, or target_configdirs; see the serialization section below.
141 # Dependency sorting is only needed when *configuration* must be done in 
142 # a particular order.  In all cases a dependency should be specified in 
143 # the Makefile, whether or not it's implicitly specified here.
145 # Double entries in build_configdirs, configdirs, or target_configdirs may
146 # cause circular dependencies and break everything horribly.
148 # these library is used by various programs built for the build
149 # environment
151 build_libs="build-libiberty"
153 # these tools are built for the build environment
154 build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes"
156 # these libraries are used by various programs built for the host environment
158 host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr"
160 # these tools are built for the host environment
161 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
162 # know that we are building the simulator.
163 # binutils, gas and ld appear in that order because it makes sense to run
164 # "make check" in that particular order.
165 host_tools="texinfo byacc flex bison binutils gas ld fixincludes 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 gnattools"
167 # libgcj represents the runtime libraries only used by gcj.
168 libgcj="target-libffi \
169         target-zlib \
170         target-qthreads \
171         target-libjava"
173 # these libraries are built for the target environment, and are built after
174 # the host libraries and the host tools (which may be a cross compiler)
176 target_libraries="target-libgcc \
177                 target-libiberty \
178                 target-libgloss \
179                 target-newlib \
180                 target-libgomp \
181                 target-libstdc++-v3 \
182                 target-libmudflap \
183                 target-libssp \
184                 target-libgfortran \
185                 target-boehm-gc \
186                 ${libgcj} \
187                 target-libobjc \
188                 target-libada"
190 # these tools are built using the target libraries, and are intended to
191 # run only in the target environment
193 # note: any program that *uses* libraries that are in the "target_libraries"
194 # list belongs in this list.  those programs are also very likely
195 # candidates for the "native_only" list which follows
197 target_tools="target-examples target-groff target-gperf target-rda"
199 ################################################################################
201 ## All tools belong in one of the four categories, and are assigned above
202 ## We assign ${configdirs} this way to remove all embedded newlines.  This
203 ## is important because configure will choke if they ever get through.
204 ## ${configdirs} is directories we build using the host tools.
205 ## ${target_configdirs} is directories we build using the target tools.
206 configdirs=`echo ${host_libs} ${host_tools}`
207 target_configdirs=`echo ${target_libraries} ${target_tools}`
208 build_configdirs=`echo ${build_libs} ${build_tools}`
210 ################################################################################
212 srcname="gnu development package"
214 # This gets set non-empty for some net releases of packages.
215 appdirs=""
217 # Define is_cross_compiler to save on calls to 'test'.
218 is_cross_compiler=
219 if test x"${host}" = x"${target}" ; then
220   is_cross_compiler=no
221 else
222   is_cross_compiler=yes
223 fi      
225 # Find the build and target subdir names.
226 GCC_TOPLEV_SUBDIRS
228 # Skipdirs are removed silently.
229 skipdirs=
230 # Noconfigdirs are removed loudly.
231 noconfigdirs=""
233 use_gnu_ld=
234 # Make sure we don't let GNU ld be added if we didn't want it.
235 if test x$with_gnu_ld = xno ; then
236   use_gnu_ld=no
237   noconfigdirs="$noconfigdirs ld"
240 use_gnu_as=
241 # Make sure we don't let GNU as be added if we didn't want it.
242 if test x$with_gnu_as = xno ; then
243   use_gnu_as=no
244   noconfigdirs="$noconfigdirs gas"
247 # some tools are so dependent upon X11 that if we're not building with X, 
248 # it's not even worth trying to configure, much less build, that tool.
250 case ${with_x} in
251   yes | "") ;; # the default value for this tree is that X11 is available
252   no)
253     skipdirs="${skipdirs} tk itcl libgui"
254     # We won't be able to build gdbtk without X.
255     enable_gdbtk=no 
256     ;;
257   *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
258 esac
260 # Some tools are only suitable for building in a "native" situation.
261 # Remove these if host!=target.  
262 native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf"
264 # Similarly, some are only suitable for cross toolchains.
265 # Remove these if host=target.
266 cross_only="target-libgloss target-newlib target-opcodes"
268 case $is_cross_compiler in
269   no) skipdirs="${skipdirs} ${cross_only}" ;;
270   yes) skipdirs="${skipdirs} ${native_only}" ;;
271 esac
273 # If both --with-headers and --with-libs are specified, default to
274 # --without-newlib.
275 if test x"${with_headers}" != x && test x"${with_headers}" != xno \
276    && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
277   if test x"${with_newlib}" = x ; then
278     with_newlib=no
279   fi
282 # Recognize --with-newlib/--without-newlib.
283 case ${with_newlib} in
284   no) skipdirs="${skipdirs} target-newlib" ;;
285   yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
286 esac
288 # Configure extra directories which are host specific
290 case "${host}" in
291   *-cygwin*)
292     configdirs="$configdirs libtermcap" ;;
293 esac
295 # A target can indicate whether a language isn't supported for some reason.
296 # Only spaces may be used in this macro; not newlines or tabs.
297 unsupported_languages=
299 # Remove more programs from consideration, based on the host or 
300 # target this usually means that a port of the program doesn't
301 # exist yet.
303 case "${host}" in
304   hppa*64*-*-*)
305     noconfigdirs="$noconfigdirs byacc"
306     ;;
307   i[[3456789]]86-*-vsta)
308     noconfigdirs="$noconfigdirs tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl gnuserv gettext"
309     ;;
310   i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*)
311     noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl gnuserv libffi"
312     ;;
313   x86_64-*-mingw*)
314     noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool newlib"
315     ;;
316   i[[3456789]]86-*-mingw32*)
317     # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl gnuserv"
318     noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool newlib"
319     ;;
320   i[[3456789]]86-*-beos*)
321     noconfigdirs="$noconfigdirs tk itcl libgui gdb"
322     ;;
323   *-*-cygwin*)
324     noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl"
325     ;;
326   *-*-netbsd*)
327     noconfigdirs="$noconfigdirs rcs"
328     ;;
329   ppc*-*-pe)
330     noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv"
331     ;;
332   powerpc-*-beos*)
333     noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
334     ;;
335 esac
338 AC_ARG_ENABLE(libada,
339 [  --enable-libada         build libada directory],
340 ENABLE_LIBADA=$enableval,
341 ENABLE_LIBADA=yes)
342 if test "${ENABLE_LIBADA}" != "yes" ; then
343   noconfigdirs="$noconfigdirs gnattools"
346 AC_ARG_ENABLE(libssp,
347 [  --enable-libssp         build libssp directory],
348 ENABLE_LIBSSP=$enableval,
349 ENABLE_LIBSSP=yes)
351 # Save it here so that, even in case of --enable-libgcj, if the Java
352 # front-end isn't enabled, we still get libgcj disabled.
353 libgcj_saved=$libgcj
354 case $enable_libgcj in
355 yes)
356   # If we reset it here, it won't get added to noconfigdirs in the
357   # target-specific build rules, so it will be forcibly enabled
358   # (unless the Java language itself isn't enabled).
359   libgcj=
360   ;;
362   # Make sure we get it printed in the list of not supported target libs.
363   noconfigdirs="$noconfigdirs ${libgcj}"
364   ;;
365 esac
368 # Disable libmudflap on some systems.
369 if test x$enable_libmudflap = x ; then
370     case "${target}" in
371     *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux*)
372         # Enable libmudflap by default in GNU and friends.
373         ;;
374     *-*-freebsd*)
375         # Enable libmudflap by default in FreeBSD.
376         ;;
377     *)
378         # Disable it by default everywhere else.
379         noconfigdirs="$noconfigdirs target-libmudflap"
380         ;;
381     esac
384 # Disable libgomp on non POSIX hosted systems.
385 if test x$enable_libgomp = x ; then
386     # Enable libgomp by default on hosted POSIX systems.
387     case "${target}" in
388     *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
389         ;;
390     *-*-netbsd* | *-*-freebsd* | *-*-openbsd*)
391         ;;
392     *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11*)
393         ;;
394     *-*-darwin* | *-*-aix*)
395         ;;
396     *)
397         noconfigdirs="$noconfigdirs target-libgomp"
398         ;;
399     esac
402 # Default libgloss CPU subdirectory.
403 libgloss_dir="$target_cpu"
405 case "${target}" in
406   *-*-chorusos)
407     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
408     ;;
409   powerpc-*-darwin* | i[[3456789]]86-*-darwin*)
410     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
411     noconfigdirs="$noconfigdirs sim target-rda"
412     ;;
413   *-*-darwin*)
414     noconfigdirs="$noconfigdirs ld gas gdb gprof"
415     noconfigdirs="$noconfigdirs sim target-rda"
416     noconfigdirs="$noconfigdirs ${libgcj}"
417     ;;
418   *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
419     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
420     ;;
421   *-*-freebsd*)
422     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
423     if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
424         && test -f /usr/local/include/gmp.h; then
425       with_gmp=/usr/local
426     fi
428     # Skip some stuff that's unsupported on some FreeBSD configurations.
429     case "${target}" in
430       i*86-*-*) ;;
431       alpha*-*-*) ;;
432       *)
433         noconfigdirs="$noconfigdirs ${libgcj}"
434         ;;
435     esac
436     ;;
437   *-*-kaos*)
438     # Remove unsupported stuff on all kaOS configurations.
439     skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
440     skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
441     skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
442     noconfigdirs="$noconfigdirs target-libgloss"
443     ;;
444   *-*-netbsd*)
445     # Skip some stuff on all NetBSD configurations.
446     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
448     # Skip some stuff that's unsupported on some NetBSD configurations.
449     case "${target}" in
450       i*86-*-netbsdelf*) ;;
451       arm*-*-netbsdelf*) ;;
452       *)
453         noconfigdirs="$noconfigdirs ${libgcj}"
454         ;;
455     esac
456     ;;
457   *-*-netware*)
458     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
459     ;;
460   *-*-rtems*)
461     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
462     ;;
463     # The tpf target doesn't support gdb yet.
464   *-*-tpf*)
465     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
466     ;;
467   *-*-uclinux*)
468     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
469     ;;
470   *-*-vxworks*)
471     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
472     ;;
473   alpha*-dec-osf*)
474     # ld works, but does not support shared libraries.
475     # newlib is not 64 bit ready.  I'm not sure about fileutils.
476     # gas doesn't generate exception information.
477     noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
478     ;;
479   alpha*-*-*vms*)
480     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
481     ;;
482   alpha*-*-linux*)
483     # newlib is not 64 bit ready
484     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
485     ;;
486   alpha*-*-*)
487     # newlib is not 64 bit ready
488     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
489     ;;
490   am33_2.0-*-linux*)
491     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
492     ;;
493   sh-*-linux*)
494     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
495     ;;    
496   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
497     noconfigdirs="$noconfigdirs ${libgcj}"
498     noconfigdirs="$noconfigdirs target-examples"
499     noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
500     noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
501     noconfigdirs="$noconfigdirs expect dejagnu"
502     # the C++ libraries don't build on top of CE's C libraries
503     noconfigdirs="$noconfigdirs target-libstdc++-v3"
504     noconfigdirs="$noconfigdirs target-newlib"
505     case "${host}" in
506       *-*-cygwin*) ;; # keep gdb and readline
507       *) noconfigdirs="$noconfigdirs gdb readline"
508          ;;
509     esac
510     libgloss_dir=wince
511     ;;
512   arc-*-*)
513     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
514     ;;
515   arm-semi-aof )
516     ;;
517   arm-*-coff | strongarm-*-coff | xscale-*-coff)
518     noconfigdirs="$noconfigdirs ${libgcj}"
519     libgloss_dir=arm
520     ;;
521   arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
522     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
523     libgloss_dir=arm
524     ;;
525   arm*-*-linux-gnueabi)
526     noconfigdirs="$noconfigdirs target-qthreads"
527     noconfigdirs="$noconfigdirs target-libobjc"
528     case ${with_newlib} in
529       no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
530     esac
531     libgloss_dir=arm
532     ;;
533   arm*-*-symbianelf*)
534     noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
535     libgloss_dir=arm
536     ;;
537   arm-*-pe*)
538     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
539     ;;
540   thumb-*-coff)
541     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
542     ;;
543   thumb-*-elf)
544     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
545     ;;
546   thumb-*-pe)
547     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
548     ;;
549   arm-*-riscix*)
550     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
551     ;;
552   avr-*-*)
553     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
554     ;;
555   bfin-*-*)
556     noconfigdirs="$noconfigdirs gdb"
557     if test x${is_cross_compiler} != xno ; then
558       target_configdirs="${target_configdirs} target-bsp target-cygmon"
559     fi
560     ;;
561   c4x-*-* | tic4x-*-*)
562     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
563     ;;
564   c54x*-*-* | tic54x-*-*)
565     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
566     ;;
567   cris-*-* | crisv32-*-*)
568     unsupported_languages="$unsupported_languages java"
569     case "${target}" in
570       *-*-aout)
571         unsupported_languages="$unsupported_languages fortran"
572         noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
573       *-*-elf)
574         unsupported_languages="$unsupported_languages fortran"
575         noconfigdirs="$noconfigdirs target-boehm-gc";;
576       *-*-linux*)
577         noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
578       *)
579         unsupported_languages="$unsupported_languages fortran"
580         noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";;
581     esac
582     libgloss_dir=cris
583     ;;
584   crx-*-*)
585     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap ${libgcj}"
586     ;;
587   d10v-*-*)
588     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
589     ;;
590   d30v-*-*)
591     noconfigdirs="$noconfigdirs ${libgcj} gdb"
592     ;;
593   ep9312-*-elf | ep9312-*-coff)
594     libgloss_dir=arm
595     ;;
596   fr30-*-elf*)
597     noconfigdirs="$noconfigdirs ${libgcj} gdb"
598     ;;
599   frv-*-*)
600     noconfigdirs="$noconfigdirs ${libgcj}"
601     ;;
602   h8300*-*-*)
603     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
604     ;;
605   h8500-*-*)
606     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
607     ;;
608   hppa1.1-*-osf* | hppa1.1-*-bsd* )
609     ;;
610   hppa*64*-*-linux* | parisc*64*-*-linux*)
611     # In this case, it's because the hppa64-linux target is for
612     # the kernel only at this point and has no libc, and thus no
613     # headers, crt*.o, etc., all of which are needed by these.
614     noconfigdirs="$noconfigdirs target-zlib"
615     ;;
616   parisc*-*-linux* | hppa*-*-linux*)
617     ;;
618   hppa*-*-*elf* | \
619   hppa*-*-lites* | \
620   hppa*-*-openbsd* | \
621   hppa*64*-*-*)
622     noconfigdirs="$noconfigdirs ${libgcj}"
623     ;;
624   hppa*-hp-hpux11*)
625     noconfigdirs="$noconfigdirs ld shellutils"
626     ;;
627   hppa*-*-pro*)
628     libgloss_dir=pa
629     ;;
630   hppa*-*-*)
631     # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
632     # build on HP-UX 10.20.
633     noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
634     ;;
635   i960-*-*)
636     noconfigdirs="$noconfigdirs ${libgcj} gdb"
637     ;;
638   ia64*-*-elf*)
639     # No gdb support yet.
640     noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb"
641     ;;
642   ia64*-**-hpux*)
643     # No gdb or ld support yet.
644     noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
645     ;;
646   i370-*-opened*)
647     ;;
648   i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
649     noconfigdirs="$noconfigdirs ${libgcj}"
650     libgloss_dir=i386
651     ;;
652   i[[3456789]]86-*-linux*)
653     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
654     # not build java stuff by default.
655     case "${target}" in
656       *-*-*libc1*)
657         noconfigdirs="$noconfigdirs ${libgcj}";;
658     esac
660     # This section makes it possible to build newlib natively on linux.
661     # If we are using a cross compiler then don't configure newlib.
662     if test x${is_cross_compiler} != xno ; then
663       noconfigdirs="$noconfigdirs target-newlib"
664     fi
665     noconfigdirs="$noconfigdirs target-libgloss"
666     # If we are not using a cross compiler, do configure newlib.
667     # Note however, that newlib will only be configured in this situation
668     # if the --with-newlib option has been given, because otherwise
669     # 'target-newlib' will appear in skipdirs.
670     ;;
671   i[[3456789]]86-*-mingw32*)
672     target_configdirs="$target_configdirs target-winsup"
673     noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
674     ;;    
675   x86_64-*-mingw*)
676     target_configdirs="$target_configdirs target-winsup"
677     noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
678     ;;    
679   *-*-cygwin*)
680     target_configdirs="$target_configdirs target-libtermcap target-winsup"
681     noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
682     # always build newlib if winsup directory is present.
683     if test -d "$srcdir/winsup/cygwin"; then
684       skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
685     elif test -d "$srcdir/newlib"; then
686       echo "Warning: winsup/cygwin is missing so newlib can't be built."
687     fi
688     ;;    
689   i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss* | \
690   i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* )
691     ;;
692   i[[3456789]]86-*-pe)
693     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
694     ;;
695   i[[3456789]]86-*-sco3.2v5*)
696     # The linker does not yet know about weak symbols in COFF,
697     # and is not configured to handle mixed ELF and COFF.
698     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
699     ;;
700   i[[3456789]]86-*-sco*)
701     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
702     ;;
703   i[[3456789]]86-*-solaris2*)
704     noconfigdirs="$noconfigdirs target-libgloss"
705     ;;
706   i[[3456789]]86-*-sysv4*)
707     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
708     ;;
709   i[[3456789]]86-*-beos*)
710     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
711     ;;
712   i[[3456789]]86-*-rdos*)
713     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
714     ;;
715   m32r-*-*)
716     noconfigdirs="$noconfigdirs ${libgcj}"
717     ;;
718   m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
719     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
720     libgloss_dir=m68hc11
721     ;;
722   m68k-*-elf*)
723     noconfigdirs="$noconfigdirs ${libgcj}"
724     ;;
725   m68k-*-coff*)
726     noconfigdirs="$noconfigdirs ${libgcj}"
727     ;;
728   m68*-*-* | fido-*-*)
729     libgloss_dir=m68k
730     ;;
731   mcore-*-pe*)
732   # The EPOC C++ environment does not support exceptions or rtti,
733   # and so building libstdc++-v3 tends not to always work.
734     noconfigdirs="$noconfigdirs target-libstdc++-v3"
735     ;;
736   mmix-*-*)
737     noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb libgloss"
738     unsupported_languages="$unsupported_languages fortran java"
739     ;;
740   mn10200-*-*)
741     noconfigdirs="$noconfigdirs ${libgcj}"
742     ;;
743   mn10300-*-*)
744     noconfigdirs="$noconfigdirs ${libgcj}"
745     ;;
746   mt-*-*)
747     noconfigdirs="$noconfigdirs sim"
748     ;;
749   powerpc-*-aix*)
750     # copied from rs6000-*-* entry
751     noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
752     ;;
753   powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
754     target_configdirs="$target_configdirs target-winsup"
755     noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv ${libgcj}"
756     # always build newlib.
757     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
758     ;;
759     # This is temporary until we can link against shared libraries
760   powerpcle-*-solaris*)
761     noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv ${libgcj}"
762     libgloss_dir=rs6000
763     ;;
764   powerpc-*-beos*)
765     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
766     ;;
767   powerpc-*-eabi)
768     noconfigdirs="$noconfigdirs ${libgcj}"
769     libgloss_dir=rs6000
770     ;;
771   powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
772     libgloss_dir=rs6000
773     ;;
774   rs6000-*-lynxos*)
775     noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
776     ;;
777   rs6000-*-aix*)
778     noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
779     ;;
780   rs6000-*-*)
781     noconfigdirs="$noconfigdirs gprof ${libgcj}"
782     ;;
783   m68k-apollo-*)
784     noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
785     ;;
786   mips*-sde-elf*)
787     skipdirs="$skipdirs target-libiberty"
788     noconfigdirs="$noconfigdirs ${libgcj}"
789     if test x$with_newlib = xyes; then
790       noconfigdirs="$noconfigdirs gprof"
791     fi
792     libgloss_dir=mips
793     ;;
794   mips*-*-irix5*)
795     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
796     ;;
797   mips*-*-irix6*)
798     # Linking libjava exceeds command-line length limits on at least
799     # IRIX 6.2, but not on IRIX 6.5.
800     # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
801     # <oldham@codesourcery.com>
802     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
803     ;;
804   mips*-*-bsd*)
805     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
806     ;;
807   mips*-*-linux*)
808     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
809     ;;
810   mips*-*-*)
811     noconfigdirs="$noconfigdirs gprof ${libgcj}"
812     libgloss_dir=mips
813     ;;
814   romp-*-*)
815     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
816     ;;
817   sh-*-* | sh64-*-*)
818     case "${host}" in
819       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
820       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
821       i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
822       *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
823     esac
824     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
825     ;;
826   sparclet-*-aout* | sparc86x-*-*)
827     libgloss_dir=sparc
828     ;;
829   sparc-*-elf*)
830     noconfigdirs="$noconfigdirs ${libgcj}"
831     ;;
832   sparc64-*-elf*)
833     noconfigdirs="$noconfigdirs ${libgcj}"
834     libgloss_dir=sparc
835     ;;
836   sparclite-*-*)
837     noconfigdirs="$noconfigdirs ${libgcj}"
838     libgloss_dir=sparc
839     ;;
840   sparc-*-sunos4*)
841     noconfigdirs="$noconfigdirs ${libgcj}"
842     if test x${is_cross_compiler} != xno ; then
843            noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
844     else
845            use_gnu_ld=no
846     fi
847     ;;
848   sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
849     noconfigdirs="$noconfigdirs ${libgcj}"
850     ;;
851   sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
852     ;;
853   spu-*-*)
854     skipdirs="target-libssp"
855     ;;
856   v810-*-*)
857     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
858     ;;
859   v850-*-*)
860     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
861     ;;
862   v850e-*-*)
863     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
864     ;;
865   v850ea-*-*)
866     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
867     ;;
868   vax-*-vms)
869     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
870     ;;
871   vax-*-*)
872     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
873     ;;
874   xtensa-*-*)
875     noconfigdirs="$noconfigdirs ${libgcj}"
876     ;;
877   ip2k-*-*)
878     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
879     ;;
880   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
881     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
882     ;;
883   *-*-lynxos*)
884     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
885     ;; 
886   *-*-*)
887     noconfigdirs="$noconfigdirs ${libgcj}"
888     ;;
889 esac
891 # If we aren't building newlib, then don't build libgloss, since libgloss
892 # depends upon some newlib header files.
893 case "${noconfigdirs}" in
894   *target-libgloss*) ;;
895   *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
896 esac
898 # Work in distributions that contain no compiler tools, like Autoconf.
899 tentative_cc=""
900 host_makefile_frag=/dev/null
901 if test -d ${srcdir}/config ; then
902 case "${host}" in
903   m68k-hp-hpux*)
904     # Avoid "too much defining" errors from HPUX compiler.
905     tentative_cc="cc -Wp,-H256000"
906     # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
907     # If it's HP/UX ar, this should be harmless.
908     RANLIB="ar ts"
909     ;;
910   m68k-apollo-sysv*)
911     tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
912     ;;
913   m68k-apollo-bsd*)
914     #None of the Apollo compilers can compile gas or binutils.  The preprocessor
915     # chokes on bfd, the compiler won't let you assign integers to enums, and
916     # other problems.  Defining CC to gcc is a questionable way to say "don't use
917     # the apollo compiler" (the preferred version of GCC could be called cc,
918     # or whatever), but I'm not sure leaving CC as cc is any better...
919     #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
920     # Used to have BISON=yacc.
921     tentative_cc=gcc
922     ;;
923   m88k-dg-dgux*)
924     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
925     ;;
926   m88k-harris-cxux*)
927     # Under CX/UX, we want to tell the compiler to use ANSI mode.
928     tentative_cc="cc -Xa"
929     host_makefile_frag="config/mh-cxux"
930     ;;
931   m88k-motorola-sysv*)
932     ;;
933   mips*-dec-ultrix*)
934     tentative_cc="cc -Wf,-XNg1000"
935     host_makefile_frag="config/mh-decstation"
936     ;;
937   mips*-nec-sysv4*)
938     # The C compiler on NEC MIPS SVR4 needs bigger tables.
939     tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
940     host_makefile_frag="config/mh-necv4"
941     ;;
942   mips*-sgi-irix4*)
943     # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
944     # environment.  Also bump switch table size so that cp-parse will
945     # compile.  Bump string length limit so linker builds.
946     tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
947     ;;
948   mips*-*-sysv4*)
949     host_makefile_frag="config/mh-sysv4"
950     ;;
951   mips*-*-sysv*)
952     # This is for a MIPS running RISC/os 4.52C.
954     # This is needed for GDB, but needs to be in the top-level make because
955     # if a library is compiled with the bsd headers and gets linked with the
956     # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
957     # a different size).
958     # ptrace(2) apparently has problems in the BSD environment.  No workaround is
959     # known except to select the sysv environment.  Could we use /proc instead?
960     # These "sysv environments" and "bsd environments" often end up being a pain.
961     #
962     # This is not part of CFLAGS because perhaps not all C compilers have this
963     # option.
964     tentative_cc="cc -systype sysv"
965     ;;
966   i370-ibm-opened*)
967     tentative_cc="c89"
968     ;;
969   i[[3456789]]86-*-sysv5*)
970     host_makefile_frag="config/mh-sysv5"
971     ;;
972   i[[3456789]]86-*-dgux*)
973     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
974     host_makefile_frag="config/mh-dgux386"
975     ;;
976   i[[3456789]]86-ncr-sysv4.3*)
977     # The MetaWare compiler will generate a copyright message unless you
978     # turn it off by adding the -Hnocopyr flag.
979     tentative_cc="cc -Hnocopyr"
980     ;;
981   i[[3456789]]86-ncr-sysv4*)
982     # for an NCR 3000 (i486/SVR4) system.
983     # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
984     # This compiler not only emits obnoxious copyright messages every time
985     # you run it, but it chokes and dies on a whole bunch of GNU source
986     # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
987     tentative_cc="/usr/ccs/ATT/cc"
988     host_makefile_frag="config/mh-ncr3000"
989     ;;
990   i[[3456789]]86-*-sco3.2v5*)
991     ;;
992   i[[3456789]]86-*-sco*)
993     # The native C compiler botches some simple uses of const.  Unfortunately,
994     # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
995     tentative_cc="cc -Dconst="
996     host_makefile_frag="config/mh-sco"
997     ;;
998   i[[3456789]]86-*-udk*)
999     host_makefile_frag="config/mh-sysv5"
1000     ;;
1001   i[[3456789]]86-*-solaris2*)
1002     host_makefile_frag="config/mh-sysv4"
1003     ;;
1004   i[[3456789]]86-*-msdosdjgpp*)
1005     host_makefile_frag="config/mh-djgpp"
1006     ;;
1007   *-cygwin*)
1008     host_makefile_frag="config/mh-cygwin"
1009     ;;
1010   *-mingw32*)
1011     host_makefile_frag="config/mh-mingw"
1012     ;;
1013   *-mingw64*)
1014     host_makefile_frag="config/mh-mingw"
1015     ;;
1016   *-interix*)
1017     host_makefile_frag="config/mh-interix"
1018     ;;
1019   vax-*-ultrix2*)
1020     # The old BSD pcc isn't up to compiling parts of gdb so use gcc
1021     tentative_cc=gcc
1022     ;;
1023   *-*-solaris2*)
1024     host_makefile_frag="config/mh-solaris"
1025     ;;
1026   m68k-sun-sunos*)
1027     # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
1028     # without overflowing the jump tables (-J says to use a 32 bit table)
1029     tentative_cc="cc -J"
1030     ;;
1031   *-hp-hpux*)
1032     tentative_cc="cc -Wp,-H256000"
1033     ;;
1034   *-*-hiux*)
1035     tentative_cc="cc -Wp,-H256000"
1036     ;;
1037   rs6000-*-lynxos*)
1038     # /bin/cc is less than useful for our purposes.  Always use GCC
1039     tentative_cc="/usr/cygnus/progressive/bin/gcc"
1040     host_makefile_frag="config/mh-lynxrs6k"
1041     ;;
1042   powerpc-*-darwin*)
1043     host_makefile_frag="config/mh-ppc-darwin"
1044     ;;
1045   powerpc-*-aix*)
1046     host_makefile_frag="config/mh-ppc-aix"
1047     ;;
1048   rs6000-*-aix*)
1049     host_makefile_frag="config/mh-ppc-aix"
1050     ;;
1051   *-*-lynxos*)
1052     # /bin/cc is less than useful for our purposes.  Always use GCC
1053     tentative_cc="/bin/gcc"
1054     ;;
1055   *-*-sysv4*)
1056     host_makefile_frag="config/mh-sysv4"
1057     ;;
1058   # This is placed last to prevent interfering with the cases above.
1059   i[[3456789]]86-*-*)
1060     # Build the stage2 and stage3 compilers with -fomit-frame-pointer.
1061     host_makefile_frag="config/mh-x86omitfp"
1062     ;;
1063 esac
1066 # If we aren't going to be using gcc, see if we can extract a definition
1067 # of CC from the fragment.
1068 # Actually, use the 'pre-extracted' version above.
1069 if test -z "${CC}" && test "${build}" = "${host}" ; then
1070   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
1071   found=
1072   for dir in $PATH; do
1073     test -z "$dir" && dir=.
1074     if test -f $dir/gcc; then
1075       found=yes
1076       break
1077     fi
1078   done
1079   IFS="$save_ifs"
1080   if test -z "${found}" && test -n "${tentative_cc}" ; then
1081     CC=$tentative_cc
1082   fi
1085 if test "${build}" != "${host}" ; then
1086   AR_FOR_BUILD=${AR_FOR_BUILD-ar}
1087   AS_FOR_BUILD=${AS_FOR_BUILD-as}
1088   CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1089   CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1090   GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
1091   GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1092   DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1093   LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1094   NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1095   RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1096   WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1097   WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
1098 else
1099   AR_FOR_BUILD="\$(AR)"
1100   AS_FOR_BUILD="\$(AS)"
1101   CC_FOR_BUILD="\$(CC)"
1102   CXX_FOR_BUILD="\$(CXX)"
1103   GCJ_FOR_BUILD="\$(GCJ)"
1104   GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1105   DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1106   LD_FOR_BUILD="\$(LD)"
1107   NM_FOR_BUILD="\$(NM)"
1108   RANLIB_FOR_BUILD="\$(RANLIB)"
1109   WINDRES_FOR_BUILD="\$(WINDRES)"
1110   WINDMC_FOR_BUILD="\$(WINDMC)"
1113 AC_PROG_CC
1114 AC_PROG_CXX
1116 # We must set the default linker to the linker used by gcc for the correct
1117 # operation of libtool.  If LD is not defined and we are using gcc, try to
1118 # set the LD default to the ld used by gcc.
1119 if test -z "$LD"; then
1120   if test "$GCC" = yes; then
1121     case $build in
1122     *-*-mingw*)
1123       gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1124     *)
1125       gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1126     esac
1127     case $gcc_prog_ld in
1128     # Accept absolute paths.
1129     [[\\/]* | [A-Za-z]:[\\/]*)]
1130       LD="$gcc_prog_ld" ;;
1131     esac
1132   fi
1135 ACX_PROG_GNAT
1136 ACX_PROG_CMP_IGNORE_INITIAL
1138 # Check for GMP and MPFR
1139 gmplibs="-lmpfr -lgmp"
1140 gmpinc=
1141 have_gmp=no
1143 # Specify a location for mpfr
1144 # check for this first so it ends up on the link line before gmp.
1145 AC_ARG_WITH(mpfr-dir, [  --with-mpfr-dir=PATH    this option has been REMOVED],
1146   AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
1147 Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH]))
1149 AC_ARG_WITH(mpfr, [  --with-mpfr=PATH        specify prefix directory for installed MPFR package.
1150                           Equivalent to --with-mpfr-include=PATH/include
1151                           plus --with-mpfr-lib=PATH/lib])
1152 AC_ARG_WITH(mpfr_include, [  --with-mpfr-include=PATH
1153                           specify directory for installed MPFR include files])
1154 AC_ARG_WITH(mpfr_lib, [  --with-mpfr-lib=PATH    specify directory for the installed MPFR library])
1156 if test "x$with_mpfr" != x; then
1157   gmplibs="-L$with_mpfr/lib $gmplibs"
1158   gmpinc="-I$with_mpfr/include"
1160 if test "x$with_mpfr_include" != x; then
1161   gmpinc="-I$with_mpfr_include"
1163 if test "x$with_mpfr_lib" != x; then
1164   gmplibs="-L$with_mpfr_lib $gmplibs"
1166 if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1167   gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/.libs -L$$r/$(HOST_SUBDIR)/mpfr/_libs '"$gmplibs"
1168   gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
1169   # Do not test the mpfr version.  Assume that it is sufficient, since
1170   # it is in the source tree, and the library has not been built yet
1171   # but it would be included on the link line in the version check below
1172   # hence making the test fail.
1173   have_gmp=yes
1176 # Specify a location for gmp
1177 AC_ARG_WITH(gmp-dir, [  --with-gmp-dir=PATH     this option has been REMOVED],
1178   AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
1179 Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH]))
1181 AC_ARG_WITH(gmp, [  --with-gmp=PATH         specify prefix directory for the installed GMP package.
1182                           Equivalent to --with-gmp-include=PATH/include
1183                           plus --with-gmp-lib=PATH/lib])
1184 AC_ARG_WITH(gmp_include, [  --with-gmp-include=PATH specify directory for installed GMP include files])
1185 AC_ARG_WITH(gmp_lib, [  --with-gmp-lib=PATH     specify directory for the installed GMP library])
1188 if test "x$with_gmp" != x; then
1189   gmplibs="-L$with_gmp/lib $gmplibs"
1190   gmpinc="-I$with_gmp/include $gmpinc"
1192 if test "x$with_gmp_include" != x; then
1193   gmpinc="-I$with_gmp_include $gmpinc"
1195 if test "x$with_gmp_lib" != x; then
1196   gmplibs="-L$with_gmp_lib $gmplibs"
1198 if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1199   gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L$$r/$(HOST_SUBDIR)/gmp/_libs '"$gmplibs"
1200   gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1201   # Do not test the gmp version.  Assume that it is sufficient, since
1202   # it is in the source tree, and the library has not been built yet
1203   # but it would be included on the link line in the version check below
1204   # hence making the test fail.
1205   have_gmp=yes
1208 if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
1209   have_gmp=yes
1210   saved_CFLAGS="$CFLAGS"
1211   CFLAGS="$CFLAGS $gmpinc"
1212   # Check GMP actually works
1213   AC_MSG_CHECKING([for correct version of gmp.h])
1214   AC_TRY_COMPILE([#include "gmp.h"],[
1215   #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 1)
1216   choke me
1217   #endif
1218   ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1220   if test x"$have_gmp" = xyes; then
1221     saved_LIBS="$LIBS"
1222     LIBS="$LIBS $gmplibs"
1223     dnl MPFR 2.2.0 is acceptable but buggy, MPFR 2.2.1 is better.
1224     AC_MSG_CHECKING([for correct version of mpfr.h])
1225     AC_TRY_LINK([#include <gmp.h>
1226     #include <mpfr.h>],[
1227     #if MPFR_VERSION < MPFR_VERSION_NUM(2,2,0)
1228     choke me
1229     #endif
1230     mpfr_t n;
1231     mpfr_t x;
1232     int t;
1233     mpfr_init (n);
1234     mpfr_init (x);
1235     mpfr_atan2 (n, n, x, GMP_RNDN);
1236     mpfr_erfc (n, x, GMP_RNDN);
1237     mpfr_subnormalize (x, t, GMP_RNDN);
1238     ], [AC_TRY_LINK([#include <gmp.h>
1239     #include <mpfr.h>],[
1240     #if MPFR_VERSION < MPFR_VERSION_NUM(2,2,1)
1241     choke me
1242     #endif
1243     mpfr_t n; mpfr_init(n);
1244     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1245      [AC_MSG_RESULT([no]); have_gmp=no])
1246       LIBS="$saved_LIBS"
1247   fi
1248   CFLAGS="$saved_CFLAGS"
1250   if test x$have_gmp != xyes; then
1251     AC_MSG_ERROR([Building GCC requires GMP 4.1+ and MPFR 2.2.1+.
1252 Try the --with-gmp and/or --with-mpfr options to specify their locations.
1253 Copies of these libraries' source code can be found at their respective
1254 hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.
1255 See also http://gcc.gnu.org/install/prerequisites.html for additional info.
1256 If you obtained GMP and/or MPFR from a vendor distribution package, make
1257 sure that you have installed both the libraries and the header files.
1258 They may be located in separate packages.])
1259   fi
1262 # Flags needed for both GMP and/or MPFR
1263 AC_SUBST(gmplibs)
1264 AC_SUBST(gmpinc)
1266 # By default, C is the only stage 1 language.
1267 stage1_languages=,c,
1269 # Figure out what language subdirectories are present.
1270 # Look if the user specified --enable-languages="..."; if not, use
1271 # the environment variable $LANGUAGES if defined. $LANGUAGES might
1272 # go away some day.
1273 # NB:  embedded tabs in this IF block -- do not untabify
1274 if test -d ${srcdir}/gcc; then
1275   if test x"${enable_languages+set}" != xset; then
1276     if test x"${LANGUAGES+set}" = xset; then
1277       enable_languages="${LANGUAGES}"
1278         echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1279     else
1280       enable_languages=all
1281     fi
1282   else
1283     if test x"${enable_languages}" = x ||
1284        test x"${enable_languages}" = xyes;
1285        then
1286       echo configure.in: --enable-languages needs at least one language argument 1>&2
1287       exit 1
1288     fi
1289   fi
1290   enable_languages=`echo "${enable_languages}" | sed -e 's/[[   ,]][[   ,]]*/,/g' -e 's/,$//'`
1292   # 'f95' is the old name for the 'fortran' language. We issue a warning
1293   # and make the substitution.
1294   case ,${enable_languages}, in
1295     *,f95,*)
1296       echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1297       enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1298       ;;
1299   esac
1301   # First scan to see if an enabled language requires some other language.
1302   # We assume that a given config-lang.in will list all the language
1303   # front ends it requires, even if some are required indirectly.
1304   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1305     case ${lang_frag} in
1306       ..) ;;
1307       # The odd quoting in the next line works around
1308       # an apparent bug in bash 1.12 on linux.
1309       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1310       *)
1311         # From the config-lang.in, get $language, $lang_requires
1312         language=
1313         lang_requires=
1314         . ${lang_frag}
1315         for other in ${lang_requires} ; do
1316           case ,${enable_languages}, in
1317             *,$other,*) ;;
1318             *,all,*) ;;
1319             *,$language,*)
1320               echo " \`$other' language required by \`$language'; enabling" 1>&2
1321               enable_languages="${enable_languages},${other}"
1322               ;;
1323           esac
1324         done
1325         ;;
1326     esac
1327   done
1329   new_enable_languages=,c,
1330   missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1331   potential_languages=,c,
1333   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1334     case ${lang_frag} in
1335       ..) ;;
1336       # The odd quoting in the next line works around
1337       # an apparent bug in bash 1.12 on linux.
1338       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1339       *)
1340         # From the config-lang.in, get $language, $target_libs, 
1341         # $lang_dirs, $boot_language, and $build_by_default
1342         language=
1343         target_libs=
1344         lang_dirs=
1345         subdir_requires=
1346         boot_language=no
1347         build_by_default=yes
1348         . ${lang_frag}
1349         if test x${language} = x; then
1350           echo "${lang_frag} doesn't set \$language." 1>&2
1351           exit 1
1352         fi
1354         case ,${enable_languages}, in
1355           *,${language},*)
1356             # Language was explicitly selected; include it.
1357             add_this_lang=yes
1358             ;;
1359           *,all,*)
1360             # 'all' was selected, select it if it is a default language
1361             add_this_lang=${build_by_default}
1362             ;;
1363           *)
1364             add_this_lang=no
1365             ;;
1366         esac
1368         # Disable languages that need other directories if these aren't available.
1369         for i in $subdir_requires; do
1370           test -f "$srcdir/gcc/$i/config-lang.in" && continue
1371           case ,${enable_languages}, in
1372             *,${language},*)
1373               # Specifically requested language; tell them.
1374               AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
1375               ;;
1376             *)
1377               # Silently disable.
1378               add_this_lang=unsupported
1379               ;;
1380           esac
1381         done
1383         # Disable Ada if no preexisting GNAT is available.
1384         case ,${enable_languages},:${language}:${have_gnat} in
1385           *,${language},*:ada:no)
1386             # Specifically requested language; tell them.
1387             AC_MSG_ERROR([GNAT is required to build $language])
1388             ;;
1389           *:ada:no)
1390             # Silently disable.
1391             add_this_lang=unsupported
1392             ;;
1393         esac
1395         # Disable a language that is unsupported by the target.
1396         case " $unsupported_languages " in
1397           *" $language "*)
1398             add_this_lang=unsupported
1399             ;;
1400         esac
1402         case $add_this_lang in
1403           unsupported)
1404             # Remove language-dependent dirs.
1405             eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1406             ;;
1407           no)
1408             # Remove language-dependent dirs; still show language as supported.
1409             eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1410             potential_languages="${potential_languages}${language},"
1411             ;;
1412           yes)
1413             new_enable_languages="${new_enable_languages}${language},"
1414             potential_languages="${potential_languages}${language},"
1415             missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1416             case ${boot_language} in
1417               yes)
1418                 # Add to (comma-separated) list of stage 1 languages.
1419                 stage1_languages="${stage1_languages}${language},"
1420                 ;;
1421             esac
1422             ;;
1423         esac
1424         ;;
1425     esac
1426   done
1428   AC_ARG_ENABLE(stage1-languages,
1429 [  --enable-stage1-languages@<:@=all@:>@   choose additional languages to build during
1430                           stage1.  Mostly useful for compiler development.],
1431   [case ,${enable_stage1_languages}, in
1432     ,no,|,,)
1433       # Set it to something that will have no effect in the loop below
1434       enable_stage1_languages=c ;;
1435     ,yes,)
1436       enable_stage1_languages=`echo $new_enable_languages | \
1437         sed -e "s/^,//" -e "s/,$//" ` ;;
1438     *,all,*)
1439       enable_stage1_languages=`echo ,$enable_stage1_languages, | \
1440         sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
1441   esac
1443   # Add "good" languages from enable_stage1_languages to stage1_languages,
1444   # while "bad" languages go in missing_languages.  Leave no duplicates.
1445   for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
1446     case $potential_languages in
1447       *,$i,*)
1448         case $stage1_languages in
1449           *,$i,*) ;;
1450           *) stage1_languages="$stage1_languages$i," ;;
1451         esac ;;
1452       *)
1453         case $missing_languages in
1454           *,$i,*) ;;
1455           *) missing_languages="$missing_languages$i," ;;
1456         esac ;;
1457      esac
1458   done])
1460   # Remove leading/trailing commas that were added for simplicity
1461   potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
1462   missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
1463   stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
1464   new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
1466   if test "x$missing_languages" != x; then
1467     AC_MSG_ERROR([
1468 The following requested languages could not be built: ${missing_languages}
1469 Supported languages are: ${potential_languages}])
1470   fi
1471   if test "x$new_enable_languages" != "x$enable_languages"; then
1472     echo The following languages will be built: ${new_enable_languages}
1473     enable_languages="$new_enable_languages"
1474   fi
1476   AC_SUBST(stage1_languages)
1477   ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
1480 # Handle --disable-<component> generically.
1481 for dir in $configdirs $build_configdirs $target_configdirs ; do
1482   dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
1483   if eval test x\${enable_${dirname}} "=" xno ; then
1484     noconfigdirs="$noconfigdirs $dir"
1485   fi
1486 done
1488 # Check for Boehm's garbage collector
1489 AC_ARG_ENABLE(objc-gc,
1490 [  --enable-objc-gc        enable use of Boehm's garbage collector with the
1491                           GNU Objective-C runtime],
1492 [case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
1493   *,objc,*:*:yes:*target-boehm-gc*)
1494     AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
1495     ;;
1496 esac])
1498 # Make sure we only build Boehm's garbage collector if required.
1499 case ,${enable_languages},:${enable_objc_gc} in
1500   *,objc,*:yes)
1501     # Keep target-boehm-gc if requested for Objective-C.
1502     ;;
1503   *)
1504     # Otherwise remove target-boehm-gc depending on target-libjava.
1505     if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
1506       noconfigdirs="$noconfigdirs target-boehm-gc"
1507     fi
1508     ;;
1509 esac
1511 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
1512 # $build_configdirs and $target_configdirs.
1513 # If we have the source for $noconfigdirs entries, add them to $notsupp.
1515 notsupp=""
1516 for dir in . $skipdirs $noconfigdirs ; do
1517   dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
1518   if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1519     configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1520     if test -r $srcdir/$dirname/configure ; then
1521       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1522         true
1523       else
1524         notsupp="$notsupp $dir"
1525       fi
1526     fi
1527   fi
1528   if test $dir != .  && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1529     build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
1530     if test -r $srcdir/$dirname/configure ; then
1531       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1532         true
1533       else
1534         notsupp="$notsupp $dir"
1535       fi
1536     fi
1537   fi
1538   if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1539     target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1540     if test -r $srcdir/$dirname/configure ; then
1541       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1542         true
1543       else
1544         notsupp="$notsupp $dir"
1545       fi
1546     fi
1547   fi
1548 done
1550 # Sometimes the tools are distributed with libiberty but with no other
1551 # libraries.  In that case, we don't want to build target-libiberty.
1552 # Don't let libgcc imply libiberty either.
1553 if test -n "${target_configdirs}" ; then
1554   libgcc=
1555   others=
1556   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1557     if test "$i" = "libgcc"; then
1558       libgcc=target-libgcc
1559     elif test "$i" != "libiberty" ; then
1560       if test -r $srcdir/$i/configure ; then
1561         others=yes;
1562         break;
1563       fi
1564     fi
1565   done
1566   if test -z "${others}" ; then
1567     target_configdirs=$libgcc
1568   fi
1571 # Quietly strip out all directories which aren't configurable in this tree.
1572 # This relies on all configurable subdirectories being autoconfiscated, which
1573 # is now the case.
1574 build_configdirs_all="$build_configdirs"
1575 build_configdirs=
1576 for i in ${build_configdirs_all} ; do
1577   j=`echo $i | sed -e s/build-//g` 
1578   if test -f ${srcdir}/$j/configure ; then
1579     build_configdirs="${build_configdirs} $i"
1580   fi
1581 done
1583 configdirs_all="$configdirs"
1584 configdirs=
1585 for i in ${configdirs_all} ; do
1586   if test -f ${srcdir}/$i/configure ; then
1587     configdirs="${configdirs} $i"
1588   fi
1589 done
1591 target_configdirs_all="$target_configdirs"
1592 target_configdirs=
1593 for i in ${target_configdirs_all} ; do
1594   j=`echo $i | sed -e s/target-//g` 
1595   if test -f ${srcdir}/$j/configure ; then
1596     target_configdirs="${target_configdirs} $i"
1597   fi
1598 done
1600 # Produce a warning message for the subdirs we can't configure.
1601 # This isn't especially interesting in the Cygnus tree, but in the individual
1602 # FSF releases, it's important to let people know when their machine isn't
1603 # supported by the one or two programs in a package.
1605 if test -n "${notsupp}" && test -z "${norecursion}" ; then
1606   # If $appdirs is non-empty, at least one of those directories must still
1607   # be configured, or we error out.  (E.g., if the gas release supports a
1608   # specified target in some subdirs but not the gas subdir, we shouldn't
1609   # pretend that all is well.)
1610   if test -n "$appdirs" ; then
1611     for dir in $appdirs ; do
1612       if test -r $dir/Makefile.in ; then
1613         if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1614           appdirs=""
1615           break
1616         fi
1617         if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
1618           appdirs=""
1619           break
1620         fi
1621       fi
1622     done
1623     if test -n "$appdirs" ; then
1624       echo "*** This configuration is not supported by this package." 1>&2
1625       exit 1
1626     fi
1627   fi
1628   # Okay, some application will build, or we don't care to check.  Still
1629   # notify of subdirs not getting built.
1630   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1631   echo "    ${notsupp}" 1>&2
1632   echo "    (Any other directories should still work fine.)" 1>&2
1635 case "$host" in
1636   *msdosdjgpp*)
1637     enable_gdbtk=no ;;
1638 esac
1640 # To find our prefix, in gcc_cv_tool_prefix.
1641 ACX_TOOL_DIRS
1643 copy_dirs=
1645 AC_ARG_WITH([build-sysroot], 
1646   [  --with-build-sysroot=SYSROOT
1647                           use sysroot as the system root during the build],
1648   [if test x"$withval" != x ; then
1649      SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
1650    fi],
1651   [SYSROOT_CFLAGS_FOR_TARGET=])
1652 AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
1654 AC_ARG_WITH([debug-prefix-map],
1655   [  --with-debug-prefix-map='A=B C=D ...'
1656                              map A to B, C to D ... in debug information],
1657   [if test x"$withval" != x; then
1658      DEBUG_PREFIX_CFLAGS_FOR_TARGET=
1659      for debug_map in $withval; do
1660        DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
1661      done
1662    fi],
1663   [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
1664 AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
1666 # Handle --with-headers=XXX.  If the value is not "yes", the contents of
1667 # the named directory are copied to $(tooldir)/sys-include.
1668 if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
1669   if test x${is_cross_compiler} = xno ; then
1670     echo 1>&2 '***' --with-headers is only supported when cross compiling
1671     exit 1
1672   fi
1673   if test x"${with_headers}" != xyes ; then
1674     x=${gcc_cv_tool_prefix}
1675     copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
1676   fi
1679 # Handle --with-libs=XXX.  If the value is not "yes", the contents of
1680 # the name directories are copied to $(tooldir)/lib.  Multiple directories
1681 # are permitted.
1682 if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
1683   if test x${is_cross_compiler} = xno ; then
1684     echo 1>&2 '***' --with-libs is only supported when cross compiling
1685     exit 1
1686   fi
1687   if test x"${with_libs}" != xyes ; then
1688     # Copy the libraries in reverse order, so that files in the first named
1689     # library override files in subsequent libraries.
1690     x=${gcc_cv_tool_prefix}
1691     for l in ${with_libs}; do
1692       copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
1693     done
1694   fi
1697 # Set with_gnu_as and with_gnu_ld as appropriate.
1699 # This is done by determining whether or not the appropriate directory
1700 # is available, and by checking whether or not specific configurations
1701 # have requested that this magic not happen.
1703 # The command line options always override the explicit settings in 
1704 # configure.in, and the settings in configure.in override this magic.
1706 # If the default for a toolchain is to use GNU as and ld, and you don't 
1707 # want to do that, then you should use the --without-gnu-as and
1708 # --without-gnu-ld options for the configure script.
1710 if test x${use_gnu_as} = x &&
1711    echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1712   with_gnu_as=yes
1713   extra_host_args="$extra_host_args --with-gnu-as"
1716 if test x${use_gnu_ld} = x &&
1717    echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1718   with_gnu_ld=yes
1719   extra_host_args="$extra_host_args --with-gnu-ld"
1722 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1723 # can detect this case.
1725 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1726   with_newlib=yes
1727   extra_host_args="$extra_host_args --with-newlib"
1730 # Handle ${copy_dirs}
1731 set fnord ${copy_dirs}
1732 shift
1733 while test $# != 0 ; do
1734   if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
1735     :
1736   else
1737     echo Copying $1 to $2
1739     # Use the install script to create the directory and all required
1740     # parent directories.
1741     if test -d $2 ; then
1742       :
1743     else
1744       echo >config.temp
1745       ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
1746     fi
1748     # Copy the directory, assuming we have tar.
1749     # FIXME: Should we use B in the second tar?  Not all systems support it.
1750     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
1752     # It is the responsibility of the user to correctly adjust all
1753     # symlinks.  If somebody can figure out how to handle them correctly
1754     # here, feel free to add the code.
1756     echo $1 > $2/COPIED
1757   fi
1758   shift; shift
1759 done
1761 # Determine a target-dependent exec_prefix that the installed
1762 # gcc will search in.  Keep this list sorted by triplet, with
1763 # the *-*-osname triplets last.
1764 md_exec_prefix=
1765 case "${target}" in
1766   alpha*-*-*vms*)
1767     md_exec_prefix=/gnu/lib/gcc-lib
1768     ;;
1769   i[[34567]]86-pc-msdosdjgpp*)
1770     md_exec_prefix=/dev/env/DJDIR/bin
1771     ;;
1772   i[[34567]]86-*-sco3.2v5*)
1773     if test $with_gnu_as = yes; then
1774       md_exec_prefix=/usr/gnu/bin
1775     else
1776       md_exec_prefix=/usr/ccs/bin/elf
1777     fi
1778     ;;
1780   mn10300-*-* | \
1781   powerpc-*-chorusos* | \
1782   powerpc*-*-eabi* | \
1783   powerpc*-*-sysv* | \
1784   powerpc*-*-kaos* | \
1785   s390x-ibm-tpf*)
1786     md_exec_prefix=/usr/ccs/bin
1787     ;;
1788   sparc64-*-elf*)
1789     ;;
1790   v850*-*-*)
1791     md_exec_prefix=/usr/ccs/bin
1792     ;;
1793   xtensa-*-elf*)
1794     ;;
1796   *-*-beos* | \
1797   *-*-elf* | \
1798   *-*-hpux* | \
1799   *-*-netware* | \
1800   *-*-nto-qnx* | \
1801   *-*-rtems* | \
1802   *-*-solaris2* | \
1803   *-*-sysv[[45]]* | \
1804   *-*-vxworks* | \
1805   *-wrs-windiss)
1806     md_exec_prefix=/usr/ccs/bin
1807     ;;
1808 esac
1810 extra_arflags_for_target=
1811 extra_nmflags_for_target=
1812 extra_ranlibflags_for_target=
1813 target_makefile_frag=/dev/null
1814 case "${target}" in
1815   mep*-*-*)
1816     target_makefile_frag="config/mt-mep"
1817     ;;
1818   spu-*-*)
1819     target_makefile_frag="config/mt-spu"
1820     ;;
1821   mips*-sde-elf*)
1822     target_makefile_frag="config/mt-sde"
1823     ;;
1824   mipsisa*-*-elfoabi*)
1825     target_makefile_frag="config/mt-mips-elfoabi"
1826     ;;
1827   *-*-netware*)
1828     target_makefile_frag="config/mt-netware"
1829     ;;
1830   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
1831     target_makefile_frag="config/mt-gnu"
1832     ;;
1833   *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
1834     # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
1835     # commands to handle both 32-bit and 64-bit objects.  These flags are
1836     # harmless if we're using GNU nm or ar.
1837     extra_arflags_for_target=" -X32_64"
1838     extra_nmflags_for_target=" -B -X32_64"
1839     ;;
1840   *-*-darwin*)
1841     # ranlib from Darwin requires the -c flag to look at common symbols.
1842     extra_ranlibflags_for_target=" -c"
1843     ;;
1844   mips*-*-pe | sh*-*-pe | *arm-wince-pe)
1845     target_makefile_frag="config/mt-wince"
1846     ;;
1847 esac
1849 alphaieee_frag=/dev/null
1850 case $target in
1851   alpha*-*-*)
1852     # This just makes sure to use the -mieee option to build target libs.
1853     # This should probably be set individually by each library.
1854     alphaieee_frag="config/mt-alphaieee"
1855     ;;
1856 esac
1858 # If --enable-target-optspace always use -Os instead of -O2 to build
1859 # the target libraries, similarly if it is not specified, use -Os
1860 # on selected platforms.
1861 ospace_frag=/dev/null
1862 case "${enable_target_optspace}:${target}" in
1863   yes:*)
1864     ospace_frag="config/mt-ospace"
1865     ;;
1866   :d30v-*)
1867     ospace_frag="config/mt-d30v"
1868     ;;
1869   :m32r-* | :d10v-* | :fr30-*)
1870     ospace_frag="config/mt-ospace"
1871     ;;
1872   no:* | :*)
1873     ;;
1874   *)
1875     echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1876     ;;
1877 esac
1879 # Default to using --with-stabs for certain targets.
1880 if test x${with_stabs} = x ; then
1881   case "${target}" in
1882   mips*-*-irix[[56]]*)
1883     ;;
1884   mips*-*-* | alpha*-*-osf*)
1885     with_stabs=yes;
1886     extra_host_args="${extra_host_args} --with-stabs"
1887     ;;
1888   esac
1891 # hpux11 in 64bit mode has libraries in a weird place.  Arrange to find
1892 # them automatically.
1893 case "${host}" in
1894   hppa*64*-*-hpux11*)   
1895     extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
1896     ;;
1897 esac
1899 # Some systems (e.g., one of the i386-aix systems the gas testers are
1900 # using) don't handle "\$" correctly, so don't use it here.
1901 tooldir='${exec_prefix}'/${target_noncanonical}
1902 build_tooldir=${tooldir}
1904 # Create a .gdbinit file which runs the one in srcdir
1905 # and tells GDB to look there for source files.
1907 if test -r ${srcdir}/.gdbinit ; then
1908   case ${srcdir} in
1909     .) ;;
1910     *) cat > ./.gdbinit <<EOF
1911 # ${NO_EDIT}
1912 dir ${srcdir}
1913 dir .
1914 source ${srcdir}/.gdbinit
1916     ;;
1917   esac
1920 # Make sure that the compiler is able to generate an executable.  If it
1921 # can't, we are probably in trouble.  We don't care whether we can run the
1922 # executable--we might be using a cross compiler--we only care whether it
1923 # can be created.  At this point the main configure script has set CC.
1924 we_are_ok=no
1925 echo "int main () { return 0; }" > conftest.c
1926 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
1927 if test $? = 0 ; then
1928   if test -s conftest || test -s conftest.exe ; then
1929     we_are_ok=yes
1930   fi
1931 fi 
1932 case $we_are_ok in
1933   no)
1934     echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1935     echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1936     rm -f conftest*
1937     exit 1
1938     ;;
1939 esac
1940 rm -f conftest*
1942 # The Solaris /usr/ucb/cc compiler does not appear to work.
1943 case "${host}" in
1944   sparc-sun-solaris2*)
1945       CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
1946       if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
1947           could_use=
1948           test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1949           if test -d /opt/cygnus/bin ; then
1950               if test "$could_use" = "" ; then
1951                   could_use="/opt/cygnus/bin"
1952               else
1953                   could_use="$could_use or /opt/cygnus/bin"
1954               fi
1955           fi
1956         if test "$could_use" = "" ; then
1957             echo "Warning: compilation may fail because you're using"
1958             echo "/usr/ucb/cc.  You should change your PATH or CC "
1959             echo "variable and rerun configure."
1960         else
1961             echo "Warning: compilation may fail because you're using"
1962             echo "/usr/ucb/cc, when you should use the C compiler from"
1963             echo "$could_use.  You should change your"
1964             echo "PATH or CC variable and rerun configure."
1965         fi
1966       fi
1967   ;;
1968 esac
1970 case "${host}" in
1971   *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
1972   *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
1973   *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1974 esac
1976 # Record target_configdirs and the configure arguments for target and
1977 # build configuration in Makefile.
1978 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
1979 build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
1981 # Determine whether gdb needs tk/tcl or not.
1982 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1983 # and in that case we want gdb to be built without tk.  Ugh!
1984 # In fact I believe gdb is the *only* package directly dependent on tk,
1985 # so we should be able to put the 'maybe's in unconditionally and
1986 # leave out the maybe dependencies when enable_gdbtk is false.  I'm not
1987 # 100% sure that that's safe though.
1989 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
1990 case "$enable_gdbtk" in
1991   no)
1992     GDB_TK="" ;;
1993   yes)
1994     GDB_TK="${gdb_tk}" ;;
1995   *)
1996     # Only add the dependency on gdbtk when GDBtk is part of the gdb
1997     # distro.  Eventually someone will fix this and move Insight, nee
1998     # gdbtk to a separate directory.
1999     if test -d ${srcdir}/gdb/gdbtk ; then
2000       GDB_TK="${gdb_tk}"
2001     else
2002       GDB_TK=""
2003     fi
2004     ;;
2005 esac
2006 CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2007 INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
2009 # Strip out unwanted targets.
2011 # While at that, we remove Makefiles if we were started for recursive
2012 # configuration, so that the top-level Makefile reconfigures them,
2013 # like we used to do when configure itself was recursive.
2015 # Loop over modules.  $extrasub must be used with care, limiting as
2016 # much as possible the usage of range addresses.  That's because autoconf
2017 # splits the sed script to overcome limits in the number of commands,
2018 # and relying on carefully-timed sed passes may turn out to be very hard
2019 # to maintain later.  In this particular case, you just have to be careful
2020 # not to nest @if/@endif pairs, because configure will not warn you at all.
2022 AC_ARG_ENABLE([bootstrap],
2023 [  --enable-bootstrap      enable bootstrapping @<:@yes if native build@:>@],,
2024 enable_bootstrap=default)
2026 # Issue errors and warnings for invalid/strange bootstrap combinations.
2027 case "$configdirs" in
2028   *gcc*) have_compiler=yes ;;
2029   *) have_compiler=no ;;
2030 esac
2032 case "$have_compiler:$host:$target:$enable_bootstrap" in
2033   *:*:*:no) ;;
2035   # Default behavior.  Enable bootstrap if we have a compiler
2036   # and we are in a native configuration.
2037   yes:$build:$build:default)
2038     enable_bootstrap=yes ;;
2040   *:*:*:default)
2041     enable_bootstrap=no ;;
2043   # We have a compiler and we are in a native configuration, bootstrap is ok
2044   yes:$build:$build:yes)
2045     ;;
2047   # Other configurations, but we have a compiler.  Assume the user knows
2048   # what he's doing.
2049   yes:*:*:yes)
2050     AC_MSG_WARN([trying to bootstrap a cross compiler])
2051     ;;
2053   # No compiler: if they passed --enable-bootstrap explicitly, fail
2054   no:*:*:yes)
2055     AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
2057   # Fail if wrong command line
2058   *)
2059     AC_MSG_ERROR([invalid option for --enable-bootstrap])
2060     ;;
2061 esac
2063 # Adjust the toplevel makefile according to whether bootstrap was selected.
2064 case "$enable_bootstrap" in
2065   yes)
2066     bootstrap_suffix=bootstrap ;;
2067   no)
2068     bootstrap_suffix=no-bootstrap ;;
2069 esac
2071 for module in ${build_configdirs} ; do
2072   if test -z "${no_recursion}" \
2073      && test -f ${build_subdir}/${module}/Makefile; then
2074     echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2075     rm -f ${build_subdir}/${module}/Makefile
2076   fi
2077   extrasub="$extrasub
2078 /^@if build-$module\$/d
2079 /^@endif build-$module\$/d
2080 /^@if build-$module-$bootstrap_suffix\$/d
2081 /^@endif build-$module-$bootstrap_suffix\$/d"
2082 done
2083 for module in ${configdirs} ; do
2084   if test -z "${no_recursion}"; then
2085     for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
2086       if test -f ${file}; then
2087         echo 1>&2 "*** removing ${file} to force reconfigure"
2088         rm -f ${file}
2089       fi
2090     done
2091   fi
2092   extrasub="$extrasub
2093 /^@if $module\$/d
2094 /^@endif $module\$/d
2095 /^@if $module-$bootstrap_suffix\$/d
2096 /^@endif $module-$bootstrap_suffix\$/d"
2097 done
2098 for module in ${target_configdirs} ; do
2099   if test -z "${no_recursion}" \
2100      && test -f ${target_subdir}/${module}/Makefile; then
2101     echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
2102     rm -f ${target_subdir}/${module}/Makefile
2103   fi
2104   extrasub="$extrasub
2105 /^@if target-$module\$/d
2106 /^@endif target-$module\$/d
2107 /^@if target-$module-$bootstrap_suffix\$/d
2108 /^@endif target-$module-$bootstrap_suffix\$/d"
2109 done
2111 extrasub="$extrasub
2112 /^@if /,/^@endif /d"
2114 # Create the serialization dependencies.  This uses a temporary file.
2116 AC_ARG_ENABLE([serial-configure],
2117 [  --enable-serial-@<:@{host,target,build}-@:>@configure
2118                           force sequential configuration of
2119                           sub-packages for the host, target or build
2120                           machine, or all sub-packages])
2122 case ${enable_serial_configure} in
2123   yes)
2124     enable_serial_build_configure=yes
2125     enable_serial_host_configure=yes
2126     enable_serial_target_configure=yes
2127     ;;
2128 esac
2130 # These force 'configure's to be done one at a time, to avoid problems
2131 # with contention over a shared config.cache.
2132 rm -f serdep.tmp
2133 echo '# serdep.tmp' > serdep.tmp
2134 olditem=
2135 test "x${enable_serial_build_configure}" = xyes &&
2136 for item in ${build_configdirs} ; do
2137   case ${olditem} in
2138     "") ;;
2139     *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
2140   esac
2141   olditem=${item}
2142 done
2143 olditem=
2144 test "x${enable_serial_host_configure}" = xyes &&
2145 for item in ${configdirs} ; do
2146   case ${olditem} in
2147     "") ;;
2148     *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
2149   esac
2150   olditem=${item}
2151 done
2152 olditem=
2153 test "x${enable_serial_target_configure}" = xyes &&
2154 for item in ${target_configdirs} ; do
2155   case ${olditem} in
2156     "") ;;
2157     *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
2158   esac
2159   olditem=${item}
2160 done
2161 serialization_dependencies=serdep.tmp
2162 AC_SUBST_FILE(serialization_dependencies)
2164 # Base args.  Strip norecursion, cache-file, srcdir, host, build,
2165 # target, nonopt, and variable assignments.  These are the ones we
2166 # might not want to pass down to subconfigures.  Also strip
2167 # program-prefix, program-suffix, and program-transform-name, so that
2168 # we can pass down a consistent program-transform-name.
2169 baseargs=
2170 keep_next=no
2171 skip_next=no
2172 eval "set -- $ac_configure_args"
2173 for ac_arg
2175   if test X"$skip_next" = X"yes"; then
2176     skip_next=no
2177     continue
2178   fi
2179   if test X"$keep_next" = X"yes"; then
2180     case $ac_arg in
2181       *\'*)
2182         ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2183     esac
2184     baseargs="$baseargs '$ac_arg'"
2185     keep_next=no
2186     continue
2187   fi
2189   # Handle separated arguments.  Based on the logic generated by
2190   # autoconf 2.59.
2191   case $ac_arg in
2192     *=* | --config-cache | -C | -disable-* | --disable-* \
2193       | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2194       | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2195       | -with-* | --with-* | -without-* | --without-* | --x)
2196       separate_arg=no
2197       ;;
2198     -*)
2199       separate_arg=yes
2200       ;;
2201     *)
2202       separate_arg=no
2203       ;;
2204   esac
2206   case "$ac_arg" in
2207     --no*)
2208       continue
2209       ;;
2210     --c* | \
2211     --sr* | \
2212     --ho* | \
2213     --bu* | \
2214     --t* | \
2215     --program-* | \
2216     -cache_file* | \
2217     -srcdir* | \
2218     -host* | \
2219     -build* | \
2220     -target* | \
2221     -program-prefix* | \
2222     -program-suffix* | \
2223     -program-transform-name* )
2224       skip_next=$separate_arg
2225       continue
2226       ;;
2227     -*)
2228       # An option.  Add it.
2229       case $ac_arg in
2230         *\'*)
2231           ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2232       esac
2233       baseargs="$baseargs '$ac_arg'"
2234       keep_next=$separate_arg
2235       ;;
2236     *)
2237       # Either a variable assignment, or a nonopt (triplet).  Don't
2238       # pass it down; let the Makefile handle this.
2239       continue
2240       ;;
2241   esac
2242 done
2243 # Remove the initial space we just introduced and, as these will be
2244 # expanded by make, quote '$'.
2245 baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
2247 # Add in --program-transform-name, after --program-prefix and
2248 # --program-suffix have been applied to it.  Autoconf has already
2249 # doubled dollar signs and backslashes in program_transform_name; we want
2250 # the backslashes un-doubled, and then the entire thing wrapped in single
2251 # quotes, because this will be expanded first by make and then by the shell. 
2252 # Also, because we want to override the logic in subdir configure scripts to
2253 # choose program_transform_name, replace any s,x,x, with s,y,y,.
2254 sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2255 ${program_transform_name}
2256 EOF_SED
2257 gcc_transform_name=`cat conftestsed.out`
2258 rm -f conftestsed.out
2259 baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2260 if test "$silent" = yes; then
2261   baseargs="$baseargs --silent"
2264 # For the build-side libraries, we just need to pretend we're native,
2265 # and not use the same cache file.  Multilibs are neither needed nor
2266 # desired.
2267 build_configargs="--cache-file=../config.cache ${baseargs}"
2269 # For host modules, accept cache file option, or specification as blank.
2270 case "${cache_file}" in
2271 "") # empty
2272   cache_file_option="" ;;
2273 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
2274   cache_file_option="--cache-file=${cache_file}" ;;
2275 *) # relative path
2276   cache_file_option="--cache-file=../${cache_file}" ;;
2277 esac
2279 # Host dirs don't like to share a cache file either, horribly enough.
2280 # This seems to be due to autoconf 2.5x stupidity.
2281 host_configargs="--cache-file=./config.cache ${extra_host_args} ${baseargs}"
2283 target_configargs=${baseargs}
2285 # Passing a --with-cross-host argument lets the target libraries know
2286 # whether they are being built with a cross-compiler or being built
2287 # native.  However, it would be better to use other mechanisms to make the
2288 # sorts of decisions they want to make on this basis.  Please consider
2289 # this option to be deprecated.  FIXME.
2290 if test x${is_cross_compiler} = xyes ; then
2291   target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
2294 # Default to --enable-multilib.
2295 if test x${enable_multilib} = x ; then
2296   target_configargs="--enable-multilib ${target_configargs}"
2299 # Pass --with-newlib if appropriate.  Note that target_configdirs has
2300 # changed from the earlier setting of with_newlib.
2301 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
2302   target_configargs="--with-newlib ${target_configargs}"
2305 # Different target subdirs use different values of certain variables
2306 # (notably CXX).  Worse, multilibs use *lots* of different values.
2307 # Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2308 # it doesn't automatically accept command-line overrides of them.
2309 # This means it's not safe for target subdirs to share a cache file,
2310 # which is disgusting, but there you have it.  Hopefully this can be
2311 # fixed in future.  It's still worthwhile to use a cache file for each
2312 # directory.  I think.
2314 # Pass the appropriate --build, --host, --target and --cache-file arguments.
2315 # We need to pass --target, as newer autoconf's requires consistency
2316 # for target_alias and gcc doesn't manage it consistently.
2317 target_configargs="--cache-file=./config.cache ${target_configargs}"
2319 FLAGS_FOR_TARGET=
2320 case " $target_configdirs " in
2321  *" newlib "*)
2322   case " $target_configargs " in
2323   *" --with-newlib "*)
2324    case "$target" in
2325    *-cygwin*)
2326      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' ;;
2327    esac
2329    # If we're not building GCC, don't discard standard headers.
2330    if test -d ${srcdir}/gcc; then
2331      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
2333      if test "${build}" != "${host}"; then
2334        # On Canadian crosses, CC_FOR_TARGET will have already been set
2335        # by `configure', so we won't have an opportunity to add -Bgcc/
2336        # to it.  This is right: we don't want to search that directory
2337        # for binaries, but we want the header files in there, so add
2338        # them explicitly.
2339        FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
2341        # Someone might think of using the pre-installed headers on
2342        # Canadian crosses, in case the installed compiler is not fully
2343        # compatible with the compiler being built.  In this case, it
2344        # would be better to flag an error than risking having
2345        # incompatible object files being constructed.  We can't
2346        # guarantee that an error will be flagged, but let's hope the
2347        # compiler will do it, when presented with incompatible header
2348        # files.
2349      fi
2350    fi
2352    case "${target}-${is_cross_compiler}" in
2353    i[[3456789]]86-*-linux*-no)
2354       # Here host == target, so we don't need to build gcc,
2355       # so we don't want to discard standard headers.
2356       FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
2357       ;;
2358    *)
2359       # If we're building newlib, use its generic headers last, but search
2360       # for any libc-related directories first (so make it the last -B
2361       # switch).
2362       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2364       # If we're building libgloss, find the startup file, simulator library
2365       # and linker script.
2366       case " $target_configdirs " in
2367         *" libgloss "*)
2368         # Look for startup file, simulator library and maybe linker script.
2369         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
2370         # Look for libnosys.a in case the target needs it.
2371         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
2372         # Most targets have the linker script in the source directory.
2373         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
2374         ;;
2375       esac
2376       ;;
2377    esac
2378    ;;
2379   esac
2380   ;;
2381 esac
2382 case "$target" in
2383 *-mingw*)
2384   # Can't be handled as Cygwin above since Mingw does not use newlib.
2385   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/mingw -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/mingw/include -isystem $$s/winsup/w32api/include' ;;
2386 esac
2388 # Allow the user to override the flags for
2389 # our build compiler if desired.
2390 if test x"${build}" = x"${host}" ; then
2391   CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2392   CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
2393   LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
2396 # On Canadian crosses, we'll be searching the right directories for
2397 # the previously-installed cross compiler, so don't bother to add
2398 # flags for directories within the install tree of the compiler
2399 # being built; programs in there won't even run.
2400 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
2401   # Search for pre-installed headers if nothing else fits.
2402   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
2405 if test "x${use_gnu_ld}" = x &&
2406    echo " ${configdirs} " | grep " ld " > /dev/null ; then
2407   # Arrange for us to find uninstalled linker scripts.
2408   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
2411 # Search for other target-specific linker scripts and such.
2412 case "${target}" in
2413   mep*)
2414     FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
2415     ;;
2416 esac
2418 # Makefile fragments.
2419 for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2421   eval fragval=\$$frag
2422   if test $fragval != /dev/null; then
2423     eval $frag=${srcdir}/$fragval
2424   fi
2425 done
2426 AC_SUBST_FILE(host_makefile_frag)
2427 AC_SUBST_FILE(target_makefile_frag)
2428 AC_SUBST_FILE(alphaieee_frag)
2429 AC_SUBST_FILE(ospace_frag)
2431 # Miscellanea: directories, flags, etc.
2432 AC_SUBST(RPATH_ENVVAR)
2433 AC_SUBST(tooldir)
2434 AC_SUBST(build_tooldir)
2435 AC_SUBST(CONFIGURE_GDB_TK)
2436 AC_SUBST(GDB_TK)
2437 AC_SUBST(INSTALL_GDB_TK)
2439 # Build module lists & subconfigure args.
2440 AC_SUBST(build_configargs)
2441 AC_SUBST(build_configdirs)
2443 # Host module lists & subconfigure args.
2444 AC_SUBST(host_configargs)
2445 AC_SUBST(configdirs)
2447 # Target module lists & subconfigure args.
2448 AC_SUBST(target_configargs)
2451 # Build tools.
2452 AC_SUBST(AR_FOR_BUILD)
2453 AC_SUBST(AS_FOR_BUILD)
2454 AC_SUBST(CC_FOR_BUILD)
2455 AC_SUBST(CFLAGS_FOR_BUILD)
2456 AC_SUBST(CXXFLAGS_FOR_BUILD)
2457 AC_SUBST(CXX_FOR_BUILD)
2458 AC_SUBST(DLLTOOL_FOR_BUILD)
2459 AC_SUBST(GCJ_FOR_BUILD)
2460 AC_SUBST(GFORTRAN_FOR_BUILD)
2461 AC_SUBST(LDFLAGS_FOR_BUILD)
2462 AC_SUBST(LD_FOR_BUILD)
2463 AC_SUBST(NM_FOR_BUILD)
2464 AC_SUBST(RANLIB_FOR_BUILD)
2465 AC_SUBST(WINDMC_FOR_BUILD)
2466 AC_SUBST(WINDRES_FOR_BUILD)
2467 AC_SUBST(config_shell)
2469 # Generate default definitions for YACC, M4, LEX and other programs that run
2470 # on the build machine.  These are used if the Makefile can't locate these
2471 # programs in objdir.
2472 MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
2474 AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
2475 case " $build_configdirs " in
2476   *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
2477   *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;;
2478 esac
2480 AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
2481 case " $build_configdirs " in
2482   *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
2483 esac
2485 AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
2486 case " $build_configdirs " in
2487   *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
2488 esac
2490 AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
2491 case " $build_configdirs " in
2492   *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2493   *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
2494 esac
2496 AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
2497 case " $build_configdirs " in
2498   *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2499 esac
2501 AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
2502 case " $build_configdirs " in
2503   *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
2504   *)
2505 changequote(,)
2506     # For an installed makeinfo, we require it to be from texinfo 4.6 or
2507     # higher, else we use the "missing" dummy.
2508     if ${MAKEINFO} --version \
2509        | egrep 'texinfo[^0-9]*(4\.([6-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
2510       :
2511     else
2512       MAKEINFO="$MISSING makeinfo"
2513     fi
2514     ;;
2515 changequote([,])
2516 esac
2518 # FIXME: expect and dejagnu may become build tools?
2520 AC_CHECK_PROGS(EXPECT, expect, expect)
2521 case " $configdirs " in
2522   *" expect "*)
2523     test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
2524     ;;
2525 esac
2527 AC_CHECK_PROGS(RUNTEST, runtest, runtest)
2528 case " $configdirs " in
2529   *" dejagnu "*)
2530     test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
2531     ;;
2532 esac
2535 # Host tools.
2536 NCN_STRICT_CHECK_TOOLS(AR, ar)
2537 NCN_STRICT_CHECK_TOOLS(AS, as)
2538 NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
2539 NCN_STRICT_CHECK_TOOLS(LD, ld)
2540 NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
2541 NCN_STRICT_CHECK_TOOLS(NM, nm)
2542 NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :)
2543 NCN_STRICT_CHECK_TOOLS(STRIP, strip, :)
2544 NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
2545 NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
2546 NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
2547 NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
2548 AC_SUBST(CC)
2549 AC_SUBST(CXX)
2550 AC_SUBST(CFLAGS)
2551 AC_SUBST(CXXFLAGS)
2553 # Target tools.
2554 AC_ARG_WITH([build-time-tools], 
2555   [  --with-build-time-tools=PATH
2556                           use given path to find target tools during the build],
2557   [case x"$withval" in
2558      x/*) ;;
2559      *)
2560        with_build_time_tools=
2561        AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
2562        ;;
2563    esac],
2564   [with_build_time_tools=])
2566 NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
2567 NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
2568 NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
2569 NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
2570 NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
2572 ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
2573 ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
2574 ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
2575 ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
2576 ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
2577 ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
2578 ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
2579 ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :)
2580 ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
2581 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
2582 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
2584 RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
2586 GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
2587 GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
2588 GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2589 GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
2590                 [gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `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],
2591                 c++)
2592 GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
2593                 [gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
2594                 c++)
2595 GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
2596 GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2597 GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
2598                 [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
2599 GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
2600                 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
2601 GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
2602 GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
2603 GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
2604 GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
2605 GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
2606 GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip])
2607 GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
2608 GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
2610 AC_SUBST(FLAGS_FOR_TARGET)
2611 AC_SUBST(RAW_CXX_FOR_TARGET)
2613 # Certain tools may need extra flags.
2614 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2615 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2616 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
2618 # When building target libraries, except in a Canadian cross, we use
2619 # the same toolchain as the compiler we just built.
2620 COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
2621 COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
2622 COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
2623 if test $host = $build; then
2624   case " $configdirs " in
2625     *" gcc "*)
2626       COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
2627       COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
2628       COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
2629       ;;
2630   esac
2633 AC_SUBST(COMPILER_AS_FOR_TARGET)
2634 AC_SUBST(COMPILER_LD_FOR_TARGET)
2635 AC_SUBST(COMPILER_NM_FOR_TARGET)
2637 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2638 AC_ARG_ENABLE(maintainer-mode,
2639 [  --enable-maintainer-mode enable make rules and dependencies not useful
2640                           (and sometimes confusing) to the casual installer],
2641       USE_MAINTAINER_MODE=$enableval,
2642       USE_MAINTAINER_MODE=no)
2643 AC_MSG_RESULT($USE_MAINTAINER_MODE)
2644 AC_SUBST(MAINTAINER_MODE_TRUE)
2645 AC_SUBST(MAINTAINER_MODE_FALSE)
2646 if test "$USE_MAINTAINER_MODE" = yes; then
2647   MAINTAINER_MODE_TRUE=
2648   MAINTAINER_MODE_FALSE='#'
2649 else
2650   MAINTAINER_MODE_TRUE='#'
2651   MAINTAINER_MODE_FALSE=
2652 fi      
2653 MAINT=$MAINTAINER_MODE_TRUE
2654 AC_SUBST(MAINT)dnl
2656 # ---------------------
2657 # GCC bootstrap support
2658 # ---------------------
2660 # Stage specific cflags for build.
2661 stage1_cflags="-g"
2662 case $build in
2663   vax-*-*)
2664     case ${GCC} in
2665       yes) stage1_cflags="-g -Wa,-J" ;;
2666       *) stage1_cflags="-g -J" ;;
2667     esac ;;
2668 esac
2670 # This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
2671 if test "$GCC" = yes; then
2672   saved_CFLAGS="$CFLAGS"
2674   # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
2675   CFLAGS="$CFLAGS -fkeep-inline-functions"
2676   AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
2677   AC_TRY_COMPILE([
2678 #if (__GNUC__ < 3) \
2679     || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
2680                           || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
2681 #error http://gcc.gnu.org/PR29382
2682 #endif
2683     ],,
2684     [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
2685     [AC_MSG_RESULT([no])])
2687   CFLAGS="$saved_CFLAGS"
2690 AC_SUBST(stage1_cflags)
2692 # Enable --enable-checking in stage1 of the compiler.
2693 AC_ARG_ENABLE(stage1-checking,
2694 [  --enable-stage1-checking@<:@=all@:>@   choose additional checking for stage1
2695                           of the compiler],
2696 [stage1_checking=--enable-checking=${enable_stage1_checking}],
2697 [if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
2698   stage1_checking=--enable-checking=yes,types
2699 else
2700   stage1_checking=--enable-checking=$enable_checking,types
2701 fi])
2702 AC_SUBST(stage1_checking)
2704 # Enable -Werror in bootstrap stage2 and later.
2705 AC_ARG_ENABLE(werror,
2706 [  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
2707 [if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
2708   enable_werror=yes
2709 else
2710   enable_werror=no
2711 fi])
2712 case ${enable_werror} in
2713   yes) stage2_werror_flag="--enable-werror-always" ;;
2714   *) stage2_werror_flag="" ;;
2715 esac
2716 AC_SUBST(stage2_werror_flag)
2718 # Flags needed to enable html installing and building
2719 AC_ARG_WITH(datarootdir,
2720 [  --with-datarootdir      use datarootdir as the data root directory.],
2721 [datarootdir="\${prefix}/${withval}"],
2722 [datarootdir="\${prefix}/share"])
2724 AC_ARG_WITH(docdir,
2725 [  --with-docdir           install documentation in this directory.],
2726 [docdir="\${prefix}/${withval}"],
2727 [docdir="\${datarootdir}/doc"])
2729 AC_ARG_WITH(pdfdir,
2730 [  --with-pdfdir           install pdf in this directory.],
2731 [pdfdir="\${prefix}/${withval}"],
2732 [pdfdir="\${docdir}"])
2734 AC_ARG_WITH(htmldir,
2735 [  --with-htmldir          install html in this directory.],
2736 [htmldir="\${prefix}/${withval}"],
2737 [htmldir="\${docdir}"])
2739 AC_SUBST(datarootdir)
2740 AC_SUBST(docdir)
2741 AC_SUBST(pdfdir)
2742 AC_SUBST(htmldir)
2744 AC_OUTPUT(Makefile)