gcc PR libstdc++/36101, gcc PR libstdc++/42813
[binutils.git] / configure.ac
blob90299d654dec23ca918e9658617232ace66da3cf
1 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2 #   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
3 #   Inc.
5 # This file is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 # General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; see the file COPYING3.  If not see
17 # <http://www.gnu.org/licenses/>.
19 ##############################################################################
20 ### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
22 m4_include(config/acx.m4)
23 m4_include(config/override.m4)
24 m4_include(config/proginstall.m4)
25 m4_include([libtool.m4])
26 m4_include([ltoptions.m4])
27 m4_include([ltsugar.m4])
28 m4_include([ltversion.m4])
29 m4_include([lt~obsolete.m4])
31 AC_INIT(move-if-change)
32 AC_PREREQ(2.64)
33 AC_DISABLE_OPTION_CHECKING
35 progname=$0
36 # if PWD already has a value, it is probably wrong.
37 if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
39 # Export original configure arguments for use by sub-configures.
40 # Quote arguments with shell meta charatcers.
41 TOPLEVEL_CONFIGURE_ARGUMENTS=
42 set -- "$progname" "$@"
43 for ac_arg
45   case "$ac_arg" in
46   *" "*|*"      "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
47     ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
48     # if the argument is of the form -foo=baz, quote the baz part only
49     ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
50   *) ;;
51   esac
52   # Add the quoted argument to the list.
53   TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
54 done
55 if test "$silent" = yes; then
56   TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
58 # Remove the initial space we just introduced and, as these will be
59 # expanded by make, quote '$'.
60 TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
61 AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
63 # Find the build, host, and target systems.
64 ACX_NONCANONICAL_BUILD
65 ACX_NONCANONICAL_HOST
66 ACX_NONCANONICAL_TARGET
68 dnl Autoconf 2.5x and later will set a default program prefix if
69 dnl --target was used, even if it was the same as --host.  Disable
70 dnl that behavior.  This must be done before AC_CANONICAL_SYSTEM
71 dnl to take effect.
72 test "$host_noncanonical" = "$target_noncanonical" &&
73   test "$program_prefix$program_suffix$program_transform_name" = \
74     NONENONEs,x,x, &&
75   program_transform_name=s,y,y,
77 AC_CANONICAL_SYSTEM
78 AC_ARG_PROGRAM
80 m4_pattern_allow([^AS_FOR_TARGET$])dnl
81 m4_pattern_allow([^AS_FOR_BUILD$])dnl
83 # Get 'install' or 'install-sh' and its variants.
84 AC_PROG_INSTALL
85 ACX_PROG_LN
86 AC_PROG_LN_S
87 AC_PROG_SED
88 AC_PROG_AWK
90 ### we might need to use some other shell than /bin/sh for running subshells
91 ### If we are on Windows, search for the shell.  This will permit people
92 ### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
93 ### without also having to set CONFIG_SHELL.  This code will work when
94 ### using bash, which sets OSTYPE.
95 case "${OSTYPE}" in
96 *win32*)
97   if test x${CONFIG_SHELL} = x ; then
98     if test ! -f /bin/sh ; then
99       if test x${SHELL} != x && test -f ${SHELL} ; then
100         CONFIG_SHELL=${SHELL}
101         export CONFIG_SHELL
102       else
103         for prog in sh sh.exe bash bash.exe; do
104           IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
105           for dir in $PATH; do
106             test -z "$dir" && dir=.
107             if test -f $dir/$prog; then
108               CONFIG_SHELL=$dir/$prog
109               export CONFIG_SHELL
110               break
111             fi
112           done
113           IFS="$save_ifs"
114           test -n "${CONFIG_SHELL}" && break
115         done
116       fi
117     fi
118   fi
119   ;;
120 esac
122 config_shell=${CONFIG_SHELL-/bin/sh}
124 moveifchange=${srcdir}/move-if-change
126 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
128 # We pass INSTALL explicitly to sub-makes.  Make sure that it is not
129 # a relative path.
130 if test "$INSTALL" = "${srcdir}/install-sh -c"; then
131   INSTALL="${srcpwd}/install-sh -c"
134 # Set srcdir to "." if that's what it is.
135 # This is important for multilib support.
136 pwd=`${PWDCMD-pwd}`
137 if test "${pwd}" = "${srcpwd}" ; then
138   srcdir=.
141 topsrcdir=$srcpwd
143 extra_host_args=
145 ### To add a new directory to the tree, first choose whether it is a target
146 ### or a host dependent tool.  Then put it into the appropriate list
147 ### (library or tools, host or target), doing a dependency sort.
149 # Subdirs will be configured in the order listed in build_configdirs, 
150 # configdirs, or target_configdirs; see the serialization section below.
152 # Dependency sorting is only needed when *configuration* must be done in 
153 # a particular order.  In all cases a dependency should be specified in 
154 # the Makefile, whether or not it's implicitly specified here.
156 # Double entries in build_configdirs, configdirs, or target_configdirs may
157 # cause circular dependencies and break everything horribly.
159 # these library is used by various programs built for the build
160 # environment
162 build_libs="build-libiberty"
164 # these tools are built for the build environment
165 build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes"
167 # these libraries are used by various programs built for the host environment
169 host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc ppl cloog libelf libiconv"
171 # these tools are built for the host environment
172 # Note, the powerpc-eabi build depends on sim occurring before gdb in order to
173 # know that we are building the simulator.
174 # binutils, gas and ld appear in that order because it makes sense to run
175 # "make check" in that particular order.
176 # If --enable-gold is used, "gold" will replace "ld".
177 host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc cgen 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"
179 # libgcj represents the runtime libraries only used by gcj.
180 libgcj="target-libffi \
181         target-zlib \
182         target-qthreads \
183         target-libjava"
185 # these libraries are built for the target environment, and are built after
186 # the host libraries and the host tools (which may be a cross compiler)
188 target_libraries="target-libgcc \
189                 target-libiberty \
190                 target-libgloss \
191                 target-newlib \
192                 target-libgomp \
193                 target-libstdc++-v3 \
194                 target-libmudflap \
195                 target-libssp \
196                 target-libgfortran \
197                 target-boehm-gc \
198                 ${libgcj} \
199                 target-libobjc \
200                 target-libada"
202 # these tools are built using the target libraries, and are intended to
203 # run only in the target environment
205 # note: any program that *uses* libraries that are in the "target_libraries"
206 # list belongs in this list.  those programs are also very likely
207 # candidates for the "native_only" list which follows
209 target_tools="target-examples target-groff target-gperf target-rda"
211 ################################################################################
213 ## All tools belong in one of the four categories, and are assigned above
214 ## We assign ${configdirs} this way to remove all embedded newlines.  This
215 ## is important because configure will choke if they ever get through.
216 ## ${configdirs} is directories we build using the host tools.
217 ## ${target_configdirs} is directories we build using the target tools.
218 configdirs=`echo ${host_libs} ${host_tools}`
219 target_configdirs=`echo ${target_libraries} ${target_tools}`
220 build_configdirs=`echo ${build_libs} ${build_tools}`
222 m4_divert_text([PARSE_ARGS],
223 [ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
226 ################################################################################
228 srcname="gnu development package"
230 # This gets set non-empty for some net releases of packages.
231 appdirs=""
233 # Define is_cross_compiler to save on calls to 'test'.
234 is_cross_compiler=
235 if test x"${host}" = x"${target}" ; then
236   is_cross_compiler=no
237 else
238   is_cross_compiler=yes
239 fi      
241 # Find the build and target subdir names.
242 GCC_TOPLEV_SUBDIRS
243 # Be sure to cover against remnants of an in-tree build.
244 if test $srcdir != .  && test -d $srcdir/host-${host_noncanonical}; then
245   AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
246 Use a pristine source tree when building in a separate tree])
249 # Skipdirs are removed silently.
250 skipdirs=
251 # Noconfigdirs are removed loudly.
252 noconfigdirs=""
254 use_gnu_ld=
255 # Make sure we don't let GNU ld be added if we didn't want it.
256 if test x$with_gnu_ld = xno ; then
257   use_gnu_ld=no
258   noconfigdirs="$noconfigdirs ld gold"
261 use_gnu_as=
262 # Make sure we don't let GNU as be added if we didn't want it.
263 if test x$with_gnu_as = xno ; then
264   use_gnu_as=no
265   noconfigdirs="$noconfigdirs gas"
268 use_included_zlib=
269 # Make sure we don't let ZLIB be added if we didn't want it.
270 if test x$with_system_zlib = xyes ; then
271   use_included_zlib=no
272   noconfigdirs="$noconfigdirs zlib"
275 # some tools are so dependent upon X11 that if we're not building with X, 
276 # it's not even worth trying to configure, much less build, that tool.
278 case ${with_x} in
279   yes | "") ;; # the default value for this tree is that X11 is available
280   no)
281     skipdirs="${skipdirs} tk itcl libgui"
282     # We won't be able to build gdbtk without X.
283     enable_gdbtk=no 
284     ;;
285   *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
286 esac
288 # Some tools are only suitable for building in a "native" situation.
289 # Remove these if host!=target.  
290 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"
292 # Similarly, some are only suitable for cross toolchains.
293 # Remove these if host=target.
294 cross_only="target-libgloss target-newlib target-opcodes"
296 case $is_cross_compiler in
297   no) skipdirs="${skipdirs} ${cross_only}" ;;
298   yes) skipdirs="${skipdirs} ${native_only}" ;;
299 esac
301 # If both --with-headers and --with-libs are specified, default to
302 # --without-newlib.
303 if test x"${with_headers}" != x && test x"${with_headers}" != xno \
304    && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
305   if test x"${with_newlib}" = x ; then
306     with_newlib=no
307   fi
310 # Recognize --with-newlib/--without-newlib.
311 case ${with_newlib} in
312   no) skipdirs="${skipdirs} target-newlib" ;;
313   yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
314 esac
316 # Handle --enable-gold.
318 AC_ARG_ENABLE(gold,
319 [  --enable-gold           use gold instead of ld],
320 ENABLE_GOLD=$enableval,
321 ENABLE_GOLD=no)
322 if test "${ENABLE_GOLD}" = "yes"; then
323   # Check for ELF target.
324   is_elf=no
325   case "${target}" in
326     *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
327     | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
328     | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-solaris2* | *-*-nto*)
329       case "${target}" in
330         *-*-linux*aout* | *-*-linux*oldld*)
331           ;;
332         *)
333           is_elf=yes
334           ;;
335       esac
336   esac
338   if test "$is_elf" = "yes"; then
339     # Check for target supported by gold.
340     case "${target}" in
341       i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
342         configdirs="`echo " ${configdirs} " | sed -e 's/ ld / gold /'`"
343         ;;
344     esac
345   fi
348 # Configure extra directories which are host specific
350 case "${host}" in
351   *-cygwin*)
352     configdirs="$configdirs libtermcap" ;;
353 esac
355 # A target can indicate whether a language isn't supported for some reason.
356 # Only spaces may be used in this macro; not newlines or tabs.
357 unsupported_languages=
359 # Remove more programs from consideration, based on the host or 
360 # target this usually means that a port of the program doesn't
361 # exist yet.
363 case "${host}" in
364   hppa*64*-*-*)
365     noconfigdirs="$noconfigdirs byacc"
366     ;;
367   i[[3456789]]86-*-vsta)
368     noconfigdirs="$noconfigdirs tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl gnuserv gettext"
369     ;;
370   i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*)
371     noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl gnuserv libffi"
372     ;;
373   x86_64-*-mingw*)
374     noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool newlib"
375     ;;
376   i[[3456789]]86-*-mingw32*)
377     # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl gnuserv"
378     noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool newlib"
379     ;;
380   i[[3456789]]86-*-beos*)
381     noconfigdirs="$noconfigdirs tk itcl libgui gdb"
382     ;;
383   *-*-cygwin*)
384     noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl"
385     ;;
386   *-*-netbsd*)
387     noconfigdirs="$noconfigdirs rcs"
388     ;;
389   ppc*-*-pe)
390     noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv"
391     ;;
392   powerpc-*-beos*)
393     noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
394     ;;
395 esac
398 AC_ARG_ENABLE(libada,
399 [  --enable-libada         build libada directory],
400 ENABLE_LIBADA=$enableval,
401 ENABLE_LIBADA=yes)
402 if test "${ENABLE_LIBADA}" != "yes" ; then
403   noconfigdirs="$noconfigdirs gnattools"
406 AC_ARG_ENABLE(libssp,
407 [  --enable-libssp         build libssp directory],
408 ENABLE_LIBSSP=$enableval,
409 ENABLE_LIBSSP=yes)
411 # Save it here so that, even in case of --enable-libgcj, if the Java
412 # front-end isn't enabled, we still get libgcj disabled.
413 libgcj_saved=$libgcj
414 case $enable_libgcj in
415 yes)
416   # If we reset it here, it won't get added to noconfigdirs in the
417   # target-specific build rules, so it will be forcibly enabled
418   # (unless the Java language itself isn't enabled).
419   libgcj=
420   ;;
422   # Make sure we get it printed in the list of not supported target libs.
423   noconfigdirs="$noconfigdirs ${libgcj}"
424   ;;
425 esac
428 # Disable libmudflap on some systems.
429 if test x$enable_libmudflap = x ; then
430     case "${target}" in
431     *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux* | *-*-kopensolaris*-gnu)
432         # Enable libmudflap by default in GNU and friends.
433         ;;
434     *-*-freebsd*)
435         # Enable libmudflap by default in FreeBSD.
436         ;;
437     *)
438         # Disable it by default everywhere else.
439         noconfigdirs="$noconfigdirs target-libmudflap"
440         ;;
441     esac
444 # Disable libgomp on non POSIX hosted systems.
445 if test x$enable_libgomp = x ; then
446     # Enable libgomp by default on hosted POSIX systems.
447     case "${target}" in
448     *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
449         ;;
450     *-*-netbsd* | *-*-freebsd* | *-*-openbsd*)
451         ;;
452     *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11*)
453         ;;
454     *-*-darwin* | *-*-aix*)
455         ;;
456     *)
457         noconfigdirs="$noconfigdirs target-libgomp"
458         ;;
459     esac
462 # Default libgloss CPU subdirectory.
463 libgloss_dir="$target_cpu"
465 case "${target}" in
466   *-*-chorusos)
467     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
468     ;;
469   powerpc-*-darwin*)
470     noconfigdirs="$noconfigdirs ld gas gdb gprof"
471     noconfigdirs="$noconfigdirs sim target-rda"
472     ;;
473   i[[3456789]]86-*-darwin*)
474     noconfigdirs="$noconfigdirs ld gprof"
475     noconfigdirs="$noconfigdirs sim target-rda"
476     ;;
477   x86_64-*-darwin[[912]]*)
478     noconfigdirs="$noconfigdirs ld gas gprof"
479     noconfigdirs="$noconfigdirs sim target-rda"
480     ;;
481   *-*-darwin*)
482     noconfigdirs="$noconfigdirs ld gas gdb gprof"
483     noconfigdirs="$noconfigdirs sim target-rda"
484     noconfigdirs="$noconfigdirs ${libgcj}"
485     ;;
486   *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
487     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
488     ;;
489   *-*-freebsd*)
490     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
491     if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
492         && test -f /usr/local/include/gmp.h; then
493       with_gmp=/usr/local
494     fi
496     # Skip some stuff that's unsupported on some FreeBSD configurations.
497     case "${target}" in
498       i*86-*-*) ;;
499       alpha*-*-*) ;;
500       *)
501         noconfigdirs="$noconfigdirs ${libgcj}"
502         ;;
503     esac
504     ;;
505   *-*-kaos*)
506     # Remove unsupported stuff on all kaOS configurations.
507     skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
508     skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
509     skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
510     noconfigdirs="$noconfigdirs target-libgloss"
511     ;;
512   *-*-netbsd*)
513     # Skip some stuff on all NetBSD configurations.
514     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
516     # Skip some stuff that's unsupported on some NetBSD configurations.
517     case "${target}" in
518       i*86-*-netbsdelf*) ;;
519       arm*-*-netbsdelf*) ;;
520       *)
521         noconfigdirs="$noconfigdirs ${libgcj}"
522         ;;
523     esac
524     ;;
525   *-*-netware*)
526     noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
527     ;;
528   *-*-rtems*)
529     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
530     ;;
531     # The tpf target doesn't support gdb yet.
532   *-*-tpf*)
533     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
534     ;;
535   *-*-uclinux*)
536     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
537     ;;
538   *-*-vxworks*)
539     noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
540     ;;
541   alpha*-dec-osf*)
542     # ld works, but does not support shared libraries.
543     # newlib is not 64 bit ready.  I'm not sure about fileutils.
544     # gas doesn't generate exception information.
545     noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
546     ;;
547   alpha*-*-*vms*)
548     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
549     ;;
550   alpha*-*-linux*)
551     # newlib is not 64 bit ready
552     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
553     ;;
554   alpha*-*-*)
555     # newlib is not 64 bit ready
556     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
557     ;;
558   am33_2.0-*-linux*)
559     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
560     ;;
561   sh-*-linux*)
562     noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
563     ;;    
564   sh*-*-pe|mips*-*-pe|*arm-wince-pe)
565     noconfigdirs="$noconfigdirs ${libgcj}"
566     noconfigdirs="$noconfigdirs target-examples"
567     noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
568     noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
569     noconfigdirs="$noconfigdirs expect dejagnu"
570     # the C++ libraries don't build on top of CE's C libraries
571     noconfigdirs="$noconfigdirs target-libstdc++-v3"
572     noconfigdirs="$noconfigdirs target-newlib"
573     case "${host}" in
574       *-*-cygwin*) ;; # keep gdb and readline
575       *) noconfigdirs="$noconfigdirs gdb readline"
576          ;;
577     esac
578     libgloss_dir=wince
579     ;;
580   arc-*-*)
581     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
582     ;;
583   arm-semi-aof )
584     ;;
585   arm-*-coff | strongarm-*-coff | xscale-*-coff)
586     noconfigdirs="$noconfigdirs ${libgcj}"
587     libgloss_dir=arm
588     ;;
589   arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
590     noconfigdirs="$noconfigdirs target-libffi target-qthreads"
591     libgloss_dir=arm
592     ;;
593   arm*-*-linux-gnueabi)
594     noconfigdirs="$noconfigdirs target-qthreads"
595     case ${with_newlib} in
596       no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
597     esac
598     libgloss_dir=arm
599     ;;
600   arm*-*-symbianelf*)
601     noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
602     libgloss_dir=arm
603     ;;
604   arm-*-pe*)
605     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
606     ;;
607   thumb-*-coff)
608     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
609     ;;
610   thumb-*-elf)
611     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
612     ;;
613   thumb-*-pe)
614     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
615     ;;
616   arm-*-riscix*)
617     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
618     ;;
619   avr-*-*)
620     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
621     ;;
622   bfin-*-*)
623     unsupported_languages="$unsupported_languages java"
624     noconfigdirs="$noconfigdirs target-boehm-gc gdb"
625     if test x${is_cross_compiler} != xno ; then
626       target_configdirs="${target_configdirs} target-bsp target-cygmon"
627     fi
628     ;;
629   c4x-*-* | tic4x-*-*)
630     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
631     ;;
632   c54x*-*-* | tic54x-*-*)
633     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
634     ;;
635   cr16-*-*)
636     noconfigdirs="$noconfigdirs ${libgcj} gdb"
637     ;;
638   cris-*-* | crisv32-*-*)
639     unsupported_languages="$unsupported_languages java"
640     case "${target}" in
641       *-*-aout)
642         unsupported_languages="$unsupported_languages fortran"
643         noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
644       *-*-elf)
645         noconfigdirs="$noconfigdirs target-boehm-gc";;
646       *-*-linux*)
647         noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
648       *)
649         unsupported_languages="$unsupported_languages fortran"
650         noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";;
651     esac
652     libgloss_dir=cris
653     ;;
654   crx-*-*)
655     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap ${libgcj}"
656     ;;
657   d10v-*-*)
658     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
659     ;;
660   d30v-*-*)
661     noconfigdirs="$noconfigdirs ${libgcj} gdb"
662     ;;
663   ep9312-*-elf | ep9312-*-coff)
664     libgloss_dir=arm
665     ;;
666   fr30-*-elf*)
667     noconfigdirs="$noconfigdirs ${libgcj} gdb"
668     ;;
669   frv-*-*)
670     noconfigdirs="$noconfigdirs ${libgcj}"
671     ;;
672   moxie-*-*)
673     noconfigdirs="$noconfigdirs ${libgcj}"
674     noconfigdirs="$noconfigdirs gprof"
675     ;;
676   h8300*-*-*)
677     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
678     ;;
679   h8500-*-*)
680     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
681     ;;
682   hppa1.1-*-osf* | hppa1.1-*-bsd* )
683     ;;
684   hppa*64*-*-linux* | parisc*64*-*-linux*)
685     # In this case, it's because the hppa64-linux target is for
686     # the kernel only at this point and has no libc, and thus no
687     # headers, crt*.o, etc., all of which are needed by these.
688     noconfigdirs="$noconfigdirs target-zlib"
689     ;;
690   parisc*-*-linux* | hppa*-*-linux*)
691     ;;
692   hppa*-*-*elf* | \
693   hppa*-*-lites* | \
694   hppa*-*-openbsd* | \
695   hppa*64*-*-*)
696     noconfigdirs="$noconfigdirs ${libgcj}"
697     ;;
698   hppa*-hp-hpux11*)
699     noconfigdirs="$noconfigdirs ld shellutils"
700     ;;
701   hppa*-*-pro*)
702     libgloss_dir=pa
703     ;;
704   hppa*-*-*)
705     # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
706     # build on HP-UX 10.20.
707     noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
708     ;;
709   i960-*-*)
710     noconfigdirs="$noconfigdirs ${libgcj} gdb"
711     ;;
712   ia64*-*-elf*)
713     # No gdb support yet.
714     noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb"
715     ;;
716   ia64*-**-hpux*)
717     # No gdb or ld support yet.
718     noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
719     ;;
720   ia64*-*-*vms*)
721     # No gdb or ld support yet.
722     noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui itcl gdb ld"
723     ;;
724   i370-*-opened*)
725     ;;
726   i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
727     noconfigdirs="$noconfigdirs ${libgcj}"
728     libgloss_dir=i386
729     ;;
730   i[[3456789]]86-*-linux*)
731     # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
732     # not build java stuff by default.
733     case "${target}" in
734       *-*-*libc1*)
735         noconfigdirs="$noconfigdirs ${libgcj}";;
736     esac
738     # This section makes it possible to build newlib natively on linux.
739     # If we are using a cross compiler then don't configure newlib.
740     if test x${is_cross_compiler} != xno ; then
741       noconfigdirs="$noconfigdirs target-newlib"
742     fi
743     noconfigdirs="$noconfigdirs target-libgloss"
744     # If we are not using a cross compiler, do configure newlib.
745     # Note however, that newlib will only be configured in this situation
746     # if the --with-newlib option has been given, because otherwise
747     # 'target-newlib' will appear in skipdirs.
748     ;;
749   i[[3456789]]86-w64-mingw*)
750     noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
751     ;;
752   i[[3456789]]86-*-mingw*)
753     target_configdirs="$target_configdirs target-winsup"
754     noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
755     ;;
756   x86_64-*-mingw*)
757     noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
758     ;;
759   *-*-cygwin*)
760     target_configdirs="$target_configdirs target-libtermcap target-winsup"
761     noconfigdirs="$noconfigdirs target-gperf target-libgloss"
762     # always build newlib if winsup directory is present.
763     if test -d "$srcdir/winsup/cygwin"; then
764       skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
765     elif test -d "$srcdir/newlib"; then
766       echo "Warning: winsup/cygwin is missing so newlib can't be built."
767     fi
768     ;;
769   i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss* | \
770   i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* )
771     ;;
772   i[[3456789]]86-*-pe)
773     noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
774     ;;
775   i[[3456789]]86-*-sco3.2v5*)
776     # The linker does not yet know about weak symbols in COFF,
777     # and is not configured to handle mixed ELF and COFF.
778     noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
779     ;;
780   i[[3456789]]86-*-sco*)
781     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
782     ;;
783   i[[3456789]]86-*-solaris2*)
784     noconfigdirs="$noconfigdirs target-libgloss"
785     ;;
786   i[[3456789]]86-*-sysv4*)
787     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
788     ;;
789   i[[3456789]]86-*-beos*)
790     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
791     ;;
792   i[[3456789]]86-*-rdos*)
793     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
794     ;;
795   m32r-*-*)
796     noconfigdirs="$noconfigdirs ${libgcj}"
797     ;;
798   m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
799     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
800     libgloss_dir=m68hc11
801     ;;
802   m68k-*-elf*)
803     noconfigdirs="$noconfigdirs ${libgcj}"
804     ;;
805   m68k-*-coff*)
806     noconfigdirs="$noconfigdirs ${libgcj}"
807     ;;
808   m68*-*-* | fido-*-*)
809     libgloss_dir=m68k
810     ;;
811   mcore-*-pe*)
812   # The EPOC C++ environment does not support exceptions or rtti,
813   # and so building libstdc++-v3 tends not to always work.
814     noconfigdirs="$noconfigdirs target-libstdc++-v3"
815     ;;
816   mmix-*-*)
817     noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb libgloss"
818     unsupported_languages="$unsupported_languages fortran java"
819     ;;
820   mn10200-*-*)
821     noconfigdirs="$noconfigdirs ${libgcj}"
822     ;;
823   mn10300-*-*)
824     noconfigdirs="$noconfigdirs ${libgcj}"
825     ;;
826   mt-*-*)
827     noconfigdirs="$noconfigdirs sim"
828     ;;
829   powerpc-*-aix*)
830     # copied from rs6000-*-* entry
831     noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-newlib ${libgcj}"
832     ;;
833   powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
834     target_configdirs="$target_configdirs target-winsup"
835     noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv ${libgcj}"
836     # always build newlib.
837     skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
838     ;;
839     # This is temporary until we can link against shared libraries
840   powerpcle-*-solaris*)
841     noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv ${libgcj}"
842     libgloss_dir=rs6000
843     ;;
844   powerpc-*-beos*)
845     noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
846     ;;
847   powerpc-*-eabi)
848     noconfigdirs="$noconfigdirs ${libgcj}"
849     libgloss_dir=rs6000
850     ;;
851   powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
852     libgloss_dir=rs6000
853     ;;
854   rs6000-*-lynxos*)
855     noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
856     ;;
857   rs6000-*-aix*)
858     noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-newlib ${libgcj}"
859     ;;
860   rs6000-*-*)
861     noconfigdirs="$noconfigdirs gprof ${libgcj}"
862     ;;
863   m68k-apollo-*)
864     noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
865     ;;
866   microblaze*)
867     noconfigdirs="$noconfigdirs gprof ${libgcj}"
868     ;;
869   mips*-sde-elf*)
870     skipdirs="$skipdirs target-libiberty"
871     noconfigdirs="$noconfigdirs ${libgcj}"
872     if test x$with_newlib = xyes; then
873       noconfigdirs="$noconfigdirs gprof"
874     fi
875     libgloss_dir=mips
876     ;;
877   mips*-*-irix5*)
878     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
879     ;;
880   mips*-*-irix6*)
881     # Linking libjava exceeds command-line length limits on at least
882     # IRIX 6.2, but not on IRIX 6.5.
883     # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
884     # <oldham@codesourcery.com>
885     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
886     ;;
887   mips*-*-bsd*)
888     noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
889     ;;
890   mips*-*-linux*)
891     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
892     ;;
893   mips*-*-*)
894     noconfigdirs="$noconfigdirs gprof ${libgcj}"
895     libgloss_dir=mips
896     ;;
897   romp-*-*)
898     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
899     ;;
900   sh-*-* | sh64-*-*)
901     case "${host}" in
902       i[[3456789]]86-*-vsta) ;; # don't add gprof back in
903       i[[3456789]]86-*-go32*) ;; # don't add gprof back in
904       i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
905       *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
906     esac
907     case "${target}" in
908       sh*-*-elf)
909          noconfigdirs="$noconfigdirs ${libgcj}" ;;
910       *)
911          noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;;
912     esac
913     ;;
914   sparclet-*-aout* | sparc86x-*-*)
915     libgloss_dir=sparc
916     ;;
917   sparc-*-elf*)
918     noconfigdirs="$noconfigdirs ${libgcj}"
919     ;;
920   sparc64-*-elf*)
921     noconfigdirs="$noconfigdirs ${libgcj}"
922     libgloss_dir=sparc
923     ;;
924   sparclite-*-*)
925     noconfigdirs="$noconfigdirs ${libgcj}"
926     libgloss_dir=sparc
927     ;;
928   sparc-*-sunos4*)
929     noconfigdirs="$noconfigdirs ${libgcj}"
930     if test x${is_cross_compiler} != xno ; then
931            noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
932     else
933            use_gnu_ld=no
934     fi
935     ;;
936   sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
937     noconfigdirs="$noconfigdirs ${libgcj}"
938     ;;
939   sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
940     ;;
941   v810-*-*)
942     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
943     ;;
944   v850-*-*)
945     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
946     ;;
947   v850e-*-*)
948     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
949     ;;
950   v850ea-*-*)
951     noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
952     ;;
953   vax-*-vms)
954     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
955     ;;
956   vax-*-*)
957     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
958     ;;
959   xtensa*-*-*)
960     noconfigdirs="$noconfigdirs ${libgcj}"
961     ;;
962   ip2k-*-*)
963     noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
964     ;;
965   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
966     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
967     ;;
968   *-*-lynxos*)
969     noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
970     ;; 
971   *-*-*)
972     noconfigdirs="$noconfigdirs ${libgcj}"
973     ;;
974 esac
976 # If we aren't building newlib, then don't build libgloss, since libgloss
977 # depends upon some newlib header files.
978 case "${noconfigdirs}" in
979   *target-libgloss*) ;;
980   *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
981 esac
983 # Work in distributions that contain no compiler tools, like Autoconf.
984 tentative_cc=""
985 host_makefile_frag=/dev/null
986 if test -d ${srcdir}/config ; then
987 case "${host}" in
988   m68k-hp-hpux*)
989     # Avoid "too much defining" errors from HPUX compiler.
990     tentative_cc="cc -Wp,-H256000"
991     # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
992     # If it's HP/UX ar, this should be harmless.
993     RANLIB="ar ts"
994     ;;
995   m68k-apollo-sysv*)
996     tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
997     ;;
998   m68k-apollo-bsd*)
999     #None of the Apollo compilers can compile gas or binutils.  The preprocessor
1000     # chokes on bfd, the compiler won't let you assign integers to enums, and
1001     # other problems.  Defining CC to gcc is a questionable way to say "don't use
1002     # the apollo compiler" (the preferred version of GCC could be called cc,
1003     # or whatever), but I'm not sure leaving CC as cc is any better...
1004     #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
1005     # Used to have BISON=yacc.
1006     tentative_cc=gcc
1007     ;;
1008   m88k-dg-dgux*)
1009     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1010     ;;
1011   m88k-harris-cxux*)
1012     # Under CX/UX, we want to tell the compiler to use ANSI mode.
1013     tentative_cc="cc -Xa"
1014     host_makefile_frag="config/mh-cxux"
1015     ;;
1016   m88k-motorola-sysv*)
1017     ;;
1018   mips*-dec-ultrix*)
1019     tentative_cc="cc -Wf,-XNg1000"
1020     host_makefile_frag="config/mh-decstation"
1021     ;;
1022   mips*-nec-sysv4*)
1023     # The C compiler on NEC MIPS SVR4 needs bigger tables.
1024     tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
1025     host_makefile_frag="config/mh-necv4"
1026     ;;
1027   mips*-sgi-irix4*)
1028     # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
1029     # environment.  Also bump switch table size so that cp-parse will
1030     # compile.  Bump string length limit so linker builds.
1031     tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
1032     ;;
1033   mips*-*-sysv4*)
1034     host_makefile_frag="config/mh-sysv4"
1035     ;;
1036   mips*-*-sysv*)
1037     # This is for a MIPS running RISC/os 4.52C.
1039     # This is needed for GDB, but needs to be in the top-level make because
1040     # if a library is compiled with the bsd headers and gets linked with the
1041     # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
1042     # a different size).
1043     # ptrace(2) apparently has problems in the BSD environment.  No workaround is
1044     # known except to select the sysv environment.  Could we use /proc instead?
1045     # These "sysv environments" and "bsd environments" often end up being a pain.
1046     #
1047     # This is not part of CFLAGS because perhaps not all C compilers have this
1048     # option.
1049     tentative_cc="cc -systype sysv"
1050     ;;
1051   i370-ibm-opened*)
1052     tentative_cc="c89"
1053     ;;
1054   i[[3456789]]86-*-sysv5*)
1055     host_makefile_frag="config/mh-sysv5"
1056     ;;
1057   i[[3456789]]86-*-dgux*)
1058     tentative_cc="gcc -Wall -ansi -D__using_DGUX"
1059     host_makefile_frag="config/mh-dgux386"
1060     ;;
1061   i[[3456789]]86-ncr-sysv4.3*)
1062     # The MetaWare compiler will generate a copyright message unless you
1063     # turn it off by adding the -Hnocopyr flag.
1064     tentative_cc="cc -Hnocopyr"
1065     ;;
1066   i[[3456789]]86-ncr-sysv4*)
1067     # for an NCR 3000 (i486/SVR4) system.
1068     # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
1069     # This compiler not only emits obnoxious copyright messages every time
1070     # you run it, but it chokes and dies on a whole bunch of GNU source
1071     # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
1072     tentative_cc="/usr/ccs/ATT/cc"
1073     host_makefile_frag="config/mh-ncr3000"
1074     ;;
1075   i[[3456789]]86-*-sco3.2v5*)
1076     ;;
1077   i[[3456789]]86-*-sco*)
1078     # The native C compiler botches some simple uses of const.  Unfortunately,
1079     # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
1080     tentative_cc="cc -Dconst="
1081     host_makefile_frag="config/mh-sco"
1082     ;;
1083   i[[3456789]]86-*-udk*)
1084     host_makefile_frag="config/mh-sysv5"
1085     ;;
1086   i[[3456789]]86-*-solaris2*)
1087     host_makefile_frag="config/mh-sysv4"
1088     ;;
1089   i[[3456789]]86-*-msdosdjgpp*)
1090     host_makefile_frag="config/mh-djgpp"
1091     ;;
1092   *-cygwin*)
1093     ACX_CHECK_CYGWIN_CAT_WORKS
1094     host_makefile_frag="config/mh-cygwin"
1095     ;;
1096   *-mingw*)
1097     host_makefile_frag="config/mh-mingw"
1098     ;;
1099   *-interix*)
1100     host_makefile_frag="config/mh-interix"
1101     ;;
1102   vax-*-ultrix2*)
1103     # The old BSD pcc isn't up to compiling parts of gdb so use gcc
1104     tentative_cc=gcc
1105     ;;
1106   *-*-solaris2*)
1107     host_makefile_frag="config/mh-solaris"
1108     ;;
1109   m68k-sun-sunos*)
1110     # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
1111     # without overflowing the jump tables (-J says to use a 32 bit table)
1112     tentative_cc="cc -J"
1113     ;;
1114   hppa*-hp-hpux10*)
1115     tentative_cc="cc -Wp,-H256000"
1116     host_makefile_frag="config/mh-pa-hpux10"
1117     ;;
1118   hppa*-hp-hpux* | hppa*-*-hiux*)
1119     tentative_cc="cc -Wp,-H256000"
1120     host_makefile_frag="config/mh-pa"
1121     ;;
1122   hppa*-*)      
1123     host_makefile_frag="config/mh-pa"
1124     ;;
1125   *-hp-hpux* | *-*-hiux*)
1126     tentative_cc="cc -Wp,-H256000"
1127     ;;
1128   rs6000-*-lynxos*)
1129     # /bin/cc is less than useful for our purposes.  Always use GCC
1130     tentative_cc="/usr/cygnus/progressive/bin/gcc"
1131     host_makefile_frag="config/mh-lynxrs6k"
1132     ;;
1133   powerpc-*-darwin*)
1134     host_makefile_frag="config/mh-ppc-darwin"
1135     ;;
1136   powerpc-*-aix*)
1137     host_makefile_frag="config/mh-ppc-aix"
1138     ;;
1139   rs6000-*-aix*)
1140     host_makefile_frag="config/mh-ppc-aix"
1141     ;;
1142   *-*-lynxos*)
1143     # /bin/cc is less than useful for our purposes.  Always use GCC
1144     tentative_cc="/bin/gcc"
1145     ;;
1146   *-*-sysv4*)
1147     host_makefile_frag="config/mh-sysv4"
1148     ;;
1149   # This is placed last to prevent interfering with the cases above.
1150   i[[3456789]]86-*-*)
1151     # Build the stage2 and stage3 compilers with -fomit-frame-pointer.
1152     host_makefile_frag="config/mh-x86omitfp"
1153     ;;
1154 esac
1157 # If we aren't going to be using gcc, see if we can extract a definition
1158 # of CC from the fragment.
1159 # Actually, use the 'pre-extracted' version above.
1160 if test -z "${CC}" && test "${build}" = "${host}" ; then
1161   IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
1162   found=
1163   for dir in $PATH; do
1164     test -z "$dir" && dir=.
1165     if test -f $dir/gcc; then
1166       found=yes
1167       break
1168     fi
1169   done
1170   IFS="$save_ifs"
1171   if test -z "${found}" && test -n "${tentative_cc}" ; then
1172     CC=$tentative_cc
1173   fi
1176 if test "${build}" != "${host}" ; then
1177   AR_FOR_BUILD=${AR_FOR_BUILD-ar}
1178   AS_FOR_BUILD=${AS_FOR_BUILD-as}
1179   CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1180   CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1181   GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
1182   GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1183   DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1184   LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1185   NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1186   RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1187   WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1188   WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
1189 else
1190   AR_FOR_BUILD="\$(AR)"
1191   AS_FOR_BUILD="\$(AS)"
1192   CC_FOR_BUILD="\$(CC)"
1193   CXX_FOR_BUILD="\$(CXX)"
1194   GCJ_FOR_BUILD="\$(GCJ)"
1195   GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1196   DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1197   LD_FOR_BUILD="\$(LD)"
1198   NM_FOR_BUILD="\$(NM)"
1199   RANLIB_FOR_BUILD="\$(RANLIB)"
1200   WINDRES_FOR_BUILD="\$(WINDRES)"
1201   WINDMC_FOR_BUILD="\$(WINDMC)"
1204 AC_PROG_CC
1205 AC_PROG_CXX
1207 # We must set the default linker to the linker used by gcc for the correct
1208 # operation of libtool.  If LD is not defined and we are using gcc, try to
1209 # set the LD default to the ld used by gcc.
1210 if test -z "$LD"; then
1211   if test "$GCC" = yes; then
1212     case $build in
1213     *-*-mingw*)
1214       gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1215     *)
1216       gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1217     esac
1218     case $gcc_prog_ld in
1219     # Accept absolute paths.
1220     [[\\/]* | [A-Za-z]:[\\/]*)]
1221       LD="$gcc_prog_ld" ;;
1222     esac
1223   fi
1226 ACX_PROG_GNAT
1227 ACX_PROG_CMP_IGNORE_INITIAL
1229 # See if we are building gcc with C++.
1230 AC_ARG_ENABLE(build-with-cxx,
1231 [  --enable-build-with-cxx build with C++ compiler instead of C compiler],
1232 ENABLE_BUILD_WITH_CXX=$enableval,
1233 ENABLE_BUILD_WITH_CXX=no)
1235 # Used for setting $lt_cv_objdir
1236 _LT_CHECK_OBJDIR
1238 # Check for GMP, MPFR and MPC
1239 gmplibs="-lmpc -lmpfr -lgmp"
1240 gmpinc=
1241 have_gmp=no
1243 # Specify a location for mpc
1244 # check for this first so it ends up on the link line before mpfr.
1245 AC_ARG_WITH(mpc, [  --with-mpc=PATH        specify prefix directory for installed MPC package.
1246                           Equivalent to --with-mpc-include=PATH/include
1247                           plus --with-mpc-lib=PATH/lib])
1248 AC_ARG_WITH(mpc_include, [  --with-mpc-include=PATH
1249                           specify directory for installed MPC include files])
1250 AC_ARG_WITH(mpc_lib, [  --with-mpc-lib=PATH    specify directory for the installed MPC library])
1252 if test "x$with_mpc" != x; then
1253   gmplibs="-L$with_mpc/lib $gmplibs"
1254   gmpinc="-I$with_mpc/include $gmpinc"
1256 if test "x$with_mpc_include" != x; then
1257   gmpinc="-I$with_mpc_include $gmpinc"
1259 if test "x$with_mpc_lib" != x; then
1260   gmplibs="-L$with_mpc_lib $gmplibs"
1262 if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
1263   gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs"
1264   gmpinc='-I$$s/mpc/src '"$gmpinc"
1265   # Do not test the mpc version.  Assume that it is sufficient, since
1266   # it is in the source tree, and the library has not been built yet
1267   # but it would be included on the link line in the version check below
1268   # hence making the test fail.
1269   have_gmp=yes
1272 # Specify a location for mpfr
1273 # check for this first so it ends up on the link line before gmp.
1274 AC_ARG_WITH(mpfr-dir, [  --with-mpfr-dir=PATH    this option has been REMOVED],
1275   AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
1276 Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH]))
1278 AC_ARG_WITH(mpfr, [  --with-mpfr=PATH        specify prefix directory for installed MPFR package.
1279                           Equivalent to --with-mpfr-include=PATH/include
1280                           plus --with-mpfr-lib=PATH/lib])
1281 AC_ARG_WITH(mpfr_include, [  --with-mpfr-include=PATH
1282                           specify directory for installed MPFR include files])
1283 AC_ARG_WITH(mpfr_lib, [  --with-mpfr-lib=PATH    specify directory for the installed MPFR library])
1285 if test "x$with_mpfr" != x; then
1286   gmplibs="-L$with_mpfr/lib $gmplibs"
1287   gmpinc="-I$with_mpfr/include $gmpinc"
1289 if test "x$with_mpfr_include" != x; then
1290   gmpinc="-I$with_mpfr_include $gmpinc"
1292 if test "x$with_mpfr_lib" != x; then
1293   gmplibs="-L$with_mpfr_lib $gmplibs"
1295 if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1296   gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
1297   gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
1298   extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
1299   # Do not test the mpfr version.  Assume that it is sufficient, since
1300   # it is in the source tree, and the library has not been built yet
1301   # but it would be included on the link line in the version check below
1302   # hence making the test fail.
1303   have_gmp=yes
1306 # Specify a location for gmp
1307 AC_ARG_WITH(gmp-dir, [  --with-gmp-dir=PATH     this option has been REMOVED],
1308   AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
1309 Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH]))
1311 AC_ARG_WITH(gmp, [  --with-gmp=PATH         specify prefix directory for the installed GMP package.
1312                           Equivalent to --with-gmp-include=PATH/include
1313                           plus --with-gmp-lib=PATH/lib])
1314 AC_ARG_WITH(gmp_include, [  --with-gmp-include=PATH specify directory for installed GMP include files])
1315 AC_ARG_WITH(gmp_lib, [  --with-gmp-lib=PATH     specify directory for the installed GMP library])
1318 if test "x$with_gmp" != x; then
1319   gmplibs="-L$with_gmp/lib $gmplibs"
1320   gmpinc="-I$with_gmp/include $gmpinc"
1322 if test "x$with_gmp_include" != x; then
1323   gmpinc="-I$with_gmp_include $gmpinc"
1325 if test "x$with_gmp_lib" != x; then
1326   gmplibs="-L$with_gmp_lib $gmplibs"
1328 if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1329   gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
1330   gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1331   extra_mpfr_configure_flags='--with-gmp-build=$$r/$(HOST_SUBDIR)/gmp'
1332   extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1333   # Do not test the gmp version.  Assume that it is sufficient, since
1334   # it is in the source tree, and the library has not been built yet
1335   # but it would be included on the link line in the version check below
1336   # hence making the test fail.
1337   have_gmp=yes
1340 if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
1341   have_gmp=yes
1342   saved_CFLAGS="$CFLAGS"
1343   CFLAGS="$CFLAGS $gmpinc"
1344   # Check GMP actually works
1345   AC_MSG_CHECKING([for correct version of gmp.h])
1346   AC_TRY_COMPILE([#include "gmp.h"],[
1347   #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 2)
1348   choke me
1349   #endif
1350   ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1352   # If we have GMP, check the MPFR version.
1353   if test x"$have_gmp" = xyes; then
1354     dnl MPFR 2.3.1 is acceptable, but MPFR 2.3.2 is better.
1355     AC_MSG_CHECKING([for correct version of mpfr.h])
1356     AC_TRY_COMPILE([#include <gmp.h>
1357     #include <mpfr.h>],[
1358     #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1)
1359     choke me
1360     #endif
1361     ], AC_TRY_COMPILE([#include <gmp.h>
1362     #include <mpfr.h>],[
1363     #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,2)
1364     choke me
1365     #endif
1366     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])]),
1367      [AC_MSG_RESULT([no]); have_gmp=no])
1368   fi
1370   # Check for the MPC header version.
1371   if test x"$have_gmp" = xyes ; then
1372     AC_MSG_CHECKING([for the correct version of mpc.h])
1373     AC_TRY_COMPILE([#include <mpc.h>],[
1374     #if MPC_VERSION < MPC_VERSION_NUM (0,8,0)
1375     choke me
1376     #endif
1377     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1378   fi
1380   # Now check the MPFR library.
1381   if test x"$have_gmp" = xyes; then
1382     saved_LIBS="$LIBS"
1383     LIBS="$LIBS $gmplibs"
1384     AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries])
1385     AC_TRY_LINK([#include <mpc.h>],[
1386     mpfr_t n;
1387     mpfr_t x;
1388     mpc_t c;
1389     int t;
1390     mpfr_init (n);
1391     mpfr_init (x);
1392     mpfr_atan2 (n, n, x, GMP_RNDN);
1393     mpfr_erfc (n, x, GMP_RNDN);
1394     mpfr_subnormalize (x, t, GMP_RNDN);
1395     mpfr_clear(n);
1396     mpfr_clear(x);
1397     mpc_init2 (c, 53);
1398     mpc_set_ui_ui (c, 1, 1, MPC_RNDNN);
1399     mpc_cosh (c, c, MPC_RNDNN);
1400     mpc_pow (c, c, c, MPC_RNDNN);
1401     mpc_acosh (c, c, MPC_RNDNN);
1402     mpc_clear (c);
1403     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1404     LIBS="$saved_LIBS"
1405   fi
1407   CFLAGS="$saved_CFLAGS"
1409   if test x$have_gmp != xyes; then
1410     AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.3.2+ and MPC 0.8.0+.
1411 Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
1412 their locations.  Source code for these libraries can be found at
1413 their respective hosting sites as well as at
1414 ftp://gcc.gnu.org/pub/gcc/infrastructure/.  See also
1415 http://gcc.gnu.org/install/prerequisites.html for additional info.  If
1416 you obtained GMP, MPFR and/or MPC from a vendor distribution package,
1417 make sure that you have installed both the libraries and the header
1418 files.  They may be located in separate packages.])
1419   fi
1422 # Flags needed for both GMP, MPFR and/or MPC.
1423 AC_SUBST(gmplibs)
1424 AC_SUBST(gmpinc)
1425 AC_SUBST(extra_mpfr_configure_flags)
1426 AC_SUBST(extra_mpc_gmp_configure_flags)
1427 AC_SUBST(extra_mpc_mpfr_configure_flags)
1429 # Allow host libstdc++ to be specified for static linking with PPL.
1430 AC_ARG_WITH(host-libstdcxx, [  --with-host-libstdcxx=L Use linker arguments L to link with libstdc++
1431                           when linking with PPL])
1433 case $with_host_libstdcxx in
1434   no|yes)
1435     AC_MSG_ERROR([-with-host-libstdcxx needs an argument])
1436     ;;
1437 esac
1439 # Linker flags to use for stage1 or when not boostrapping.
1440 AC_ARG_WITH(stage1-ldflags,
1441 [  --with-stage1-ldflags=FLAGS Linker flags for stage1],
1442 [if test "$withval" = "no" -o "$withval" = "yes"; then
1443    stage1_ldflags=
1444  else
1445    stage1_ldflags=$withval
1446  fi],
1447 [stage1_ldflags=])
1448 AC_SUBST(stage1_ldflags)
1450 # Libraries to use for stage1 or when not bootstrapping.
1451 AC_ARG_WITH(stage1-libs,
1452 [  -with-stage1-libs=LIBS      Libraries for stage1],
1453 [if test "$withval" = "no" -o "$withval" = "yes"; then
1454    stage1_libs=
1455  else
1456    stage1_libs=$withval
1457  fi],
1458 [stage1_libs=$with_host_libstdcxx])
1459 AC_SUBST(stage1_libs)
1461 # Linker flags to use for stage2 and later builds.
1462 AC_ARG_WITH(boot-ldflags,
1463 [  --with-boot-ldflags=FLAGS Linker flags for stage2 and later],
1464 [if test "$withval" = "no" -o "$withval" = "yes"; then
1465    poststage1_ldflags=
1466  else
1467    poststage1_ldflags=$withval
1468  fi],
1469 [if test "$ENABLE_BUILD_WITH_CXX" = "yes"; then
1470    poststage1_ldflags=-static-libstdc++
1471  else
1472    poststage1_ldflags=
1473  fi])
1474 AC_SUBST(poststage1_ldflags)
1476 # Libraries to use for stage2 and later builds.  This defaults to the
1477 # argument passed to --with-host-libstdcxx.
1478 AC_ARG_WITH(boot-libs,
1479 [  --with-boot-libs=LIBS     Libraries for stage2 and later],
1480 [if test "$withval" = "no" -o "$withval" = "yes"; then
1481    poststage1_libs=
1482  else
1483    poststage1_libs=$withval
1484  fi],
1485 [poststage1_libs=$with_host_libstdcxx])
1486 AC_SUBST(poststage1_libs)
1488 # Check for PPL
1489 ppl_major_version=0
1490 ppl_minor_version=10
1491 ppllibs=" -lppl_c -lppl -lgmpxx"
1492 pplinc=
1494 AC_ARG_WITH(ppl, [  --with-ppl=PATH         Specify prefix directory for the installed PPL package
1495                           Equivalent to --with-ppl-include=PATH/include
1496                           plus --with-ppl-lib=PATH/lib])
1497 AC_ARG_WITH(ppl_include, [  --with-ppl-include=PATH Specify directory for installed PPL include files])
1498 AC_ARG_WITH(ppl_lib, [  --with-ppl-lib=PATH     Specify the directory for the installed PPL library])
1500 case $with_ppl in 
1501   no)
1502     ppllibs=
1503     ;;
1504   "" | yes)
1505     ;;
1506   *)
1507     ppllibs="-L$with_ppl/lib -lppl_c -lppl -lgmpxx"
1508     pplinc="-I$with_ppl/include $pplinc"
1509     ;;
1510 esac
1511 if test "x$with_ppl_include" != x; then
1512   pplinc="-I$with_ppl_include $pplinc"
1514 if test "x$with_ppl_lib" != x; then
1515   ppllibs="-L$with_ppl_lib -lppl_c -lppl -lgmpxx"
1517 if test "x$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
1518   ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"' -lppl_c -lppl -lgmpxx '
1519   pplinc='-I$$r/$(HOST_SUBDIR)/ppl/src -I$$r/$(HOST_SUBDIR)/ppl/interfaces/C '
1520   enable_ppl_version_check=no
1523 AC_ARG_ENABLE(ppl-version-check,
1524 [  --disable-ppl-version-check    disable check for PPL version],
1525 ENABLE_PPL_CHECK=$enableval,
1526 ENABLE_PPL_CHECK=yes)
1528 if test "x$with_ppl" != "xno" -a "${ENABLE_PPL_CHECK}" = "yes"; then
1529   saved_CFLAGS="$CFLAGS"
1530   CFLAGS="$CFLAGS $pplinc $gmpinc"
1531   AC_MSG_CHECKING([for version $ppl_major_version.$ppl_minor_version of PPL])
1532   AC_TRY_COMPILE([#include "ppl_c.h"],[
1533   #if PPL_VERSION_MAJOR != $ppl_major_version || PPL_VERSION_MINOR != $ppl_minor_version
1534   choke me
1535   #endif
1536   ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
1537   CFLAGS="$saved_CFLAGS"
1540 # Flags needed for PPL
1541 AC_SUBST(ppllibs)
1542 AC_SUBST(pplinc)
1545 # Check for CLOOG
1546 clooglibs=" -lcloog "
1547 clooginc=" -DCLOOG_PPL_BACKEND "
1549 AC_ARG_WITH(cloog, [  --with-cloog=PATH       Specify prefix directory for the installed CLooG-PPL package
1550                           Equivalent to --with-cloog-include=PATH/include
1551                           plus --with-cloog-lib=PATH/lib])
1552 AC_ARG_WITH(cloog_include, [  --with-cloog-include=PATH Specify directory for installed CLooG include files])
1553 AC_ARG_WITH(cloog_lib, [  --with-cloog-lib=PATH   Specify the directory for the installed CLooG library])
1555 if test "x$with_ppl" = "xno"; then
1556   with_cloog=no
1559 case $with_cloog in 
1560   no)
1561     clooglibs=
1562     clooginc=
1563     ;;
1564   "" | yes)
1565     ;;
1566   *)
1567     clooglibs="-L$with_cloog/lib -lcloog"
1568     clooginc="-I$with_cloog/include -DCLOOG_PPL_BACKEND "
1569     ;;
1570 esac
1571 if test "x$with_cloog_include" != x; then
1572   clooginc="-I$with_cloog_include -DCLOOG_PPL_BACKEND "
1574 if test "x$with_cloog_lib" != x; then
1575   clooglibs="-L$with_cloog_lib -lcloog"
1577 if test "x$with_cloog$with_cloog_include$with_cloog_lib" = x && test -d ${srcdir}/cloog; then
1578   clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' -lcloog '
1579   clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include -DCLOOG_PPL_BACKEND '
1580   enable_cloog_version_check=no
1583 AC_ARG_ENABLE(cloog-version-check,
1584 [  --disable-cloog-version-check  disable check for CLooG version],
1585 ENABLE_CLOOG_CHECK=$enableval,
1586 ENABLE_CLOOG_CHECK=yes)
1588 if test "x$with_cloog" != "xno" -a "${ENABLE_CLOOG_CHECK}" = "yes"; then
1589   saved_CFLAGS="$CFLAGS"
1590   CFLAGS="$CFLAGS $clooginc $gmpinc $pplinc"
1591   AC_MSG_CHECKING([for correct version of CLooG])
1592   AC_TRY_COMPILE([#include "cloog/cloog.h"],[
1593   #if CLOOG_VERSION_MAJOR != 0 || CLOOG_VERSION_MINOR != 15
1594   choke me
1595   #endif
1596   ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); clooglibs= ; clooginc= ])
1597   CFLAGS="$saved_CFLAGS"
1600 # Flags needed for CLOOG
1601 AC_SUBST(clooglibs)
1602 AC_SUBST(clooginc)
1604 # Check for LTO support.
1605 AC_ARG_ENABLE(lto,
1606 [  --enable-lto            enable link time optimization support],
1607 enable_lto=$enableval,
1608 enable_lto=yes; default_enable_lto=yes)
1610 if test x"$enable_lto" = x"yes" ; then
1611   # Make sure that libelf.h and gelf.h are available.
1612   AC_ARG_WITH(libelf, [  --with-libelf=PATH       Specify prefix directory for the installed libelf package
1613                           Equivalent to --with-libelf-include=PATH/include
1614                           plus --with-libelf-lib=PATH/lib])
1616   AC_ARG_WITH(libelf_include, [  --with-libelf-include=PATH Specify directory for installed libelf include files])
1618   AC_ARG_WITH(libelf_lib, [  --with-libelf-lib=PATH   Specify the directory for the installed libelf library])
1620   saved_CFLAGS="$CFLAGS"
1621   saved_CPPFLAGS="$CPPFLAGS"
1622   saved_LIBS="$LIBS"
1624   case $with_libelf in 
1625     "")
1626       libelflibs="-lelf"
1627       libelfinc="-I/usr/include/libelf"
1628       ;;
1629     *)
1630       libelflibs="-L$with_libelf/lib -lelf"
1631       libelfinc="-I$with_libelf/include -I$with_libelf/include/libelf"
1632       LIBS="$libelflibs $LIBS"
1633       ;;
1634   esac
1636   if test "x$with_libelf_include" != x; then
1637     libelfinc="-I$with_libelf_include"
1638   fi
1640   if test "x$with_libelf_lib" != x; then
1641     libelflibs="-L$with_libelf_lib -lelf"
1642     LIBS="$libelflibs $LIBS"
1643   fi
1645   if test "x$with_libelf$with_libelf_include$with_libelf_lib" = x \
1646      && test -d ${srcdir}/libelf; then
1647     libelflibs='-L$$r/$(HOST_SUBDIR)/libelf/lib -lelf '
1648     libelfinc='-D__LIBELF_INTERNAL__ -I$$r/$(HOST_SUBDIR)/libelf/lib -I$$s/libelf/lib'
1649     LIBS="$libelflibs $LIBS"
1651  else
1653   CFLAGS="$CFLAGS $libelfinc"
1654   CPPFLAGS="$CPPFLAGS $libelfinc"
1655   LIBS="$LIBS $libelflibs"
1657   AC_CHECK_HEADERS(libelf.h, [have_libelf_h=yes])
1658   AC_CHECK_HEADERS(gelf.h, [have_gelf_h=yes])
1660   AC_CHECK_HEADERS(libelf/libelf.h, [have_libelf_libelf_h=yes])
1661   AC_CHECK_HEADERS(libelf/gelf.h, [have_libelf_gelf_h=yes])
1663   # If we couldn't find libelf.h and the user forced it, emit an error.
1664   if test x"$have_libelf_h" != x"yes" \
1665      && test x"$have_libelf_libelf_h" != x"yes" ; then
1666     if test x"$default_enable_lto" != x"yes" ; then
1667       AC_MSG_ERROR([LTO support requires libelf.h or libelf/libelf.h.])
1668     else
1669       enable_lto=no
1670       libelflibs=
1671       libelfinc=
1672     fi
1673   fi
1675   # If we couldn't find gelf.h and the user forced it, emit an error.
1676   if test x"$have_gelf_h" != x"yes" \
1677      && test x"$have_libelf_gelf_h" != x"yes" ; then
1678     if test x"$default_enable_lto" != x"yes" ; then
1679       AC_MSG_ERROR([LTO support requires gelf.h or libelf/gelf.h.])
1680     else
1681       enable_lto=no
1682       libelflibs=
1683       libelfinc=
1684     fi
1685   fi
1687   # Check that the detected libelf has the functions we need.  We cannot
1688   # rely on just detecting the headers since they do not include 
1689   # versioning information.  Add functions, if needed.
1690   if test x"$enable_lto" = x"yes" ; then
1691     AC_MSG_CHECKING([for the correct version of libelf])
1692     AC_TRY_LINK(
1693       [#include <libelf.h>],[
1694       elf_errmsg (0);
1695       elf_getscn (0, 0);
1696       elf_nextscn (0, 0);
1697       elf_strptr (0, 0, 0);
1698       elf_getident (0, 0);
1699       elf_getshdrstrndx (0, 0);
1700       elf_begin (0, 0, 0);
1701       elf_ndxscn (0);
1702       elf_end (0);
1703       ],
1704       [AC_MSG_RESULT([yes]);],
1705       [AC_MSG_RESULT([no]); enable_lto=no; libelflibs= ; libelfinc= ]
1706     )
1708     # If we couldn't enable LTO and the user forced it, emit an error.
1709     if test x"$enable_lto" = x"no" \
1710        && test x"$default_enable_lto" != x"yes" ; then
1711       AC_MSG_ERROR([To enable LTO, GCC requires libelf v0.8.12+.
1712 Try the --with-libelf, --with-libelf-include and --with-libelf-lib options
1713 to specify its location.])
1714     fi
1715   fi
1717   CFLAGS="$saved_CFLAGS"
1718   CPPFLAGS="$saved_CPPFLAGS"
1719   LIBS="$saved_LIBS"
1721  fi
1723   # Flags needed for libelf.
1724   AC_SUBST(libelflibs)
1725   AC_SUBST(libelfinc)
1729 # By default, C is the only stage 1 language.
1730 stage1_languages=,c,
1732 # Target libraries that we bootstrap.
1733 bootstrap_target_libs=,target-libgcc,
1735 # Figure out what language subdirectories are present.
1736 # Look if the user specified --enable-languages="..."; if not, use
1737 # the environment variable $LANGUAGES if defined. $LANGUAGES might
1738 # go away some day.
1739 # NB:  embedded tabs in this IF block -- do not untabify
1740 if test -d ${srcdir}/gcc; then
1741   if test x"${enable_languages+set}" != xset; then
1742     if test x"${LANGUAGES+set}" = xset; then
1743       enable_languages="${LANGUAGES}"
1744         echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1745     else
1746       enable_languages=all
1747     fi
1748   else
1749     if test x"${enable_languages}" = x ||
1750        test x"${enable_languages}" = xyes;
1751        then
1752       echo configure.in: --enable-languages needs at least one language argument 1>&2
1753       exit 1
1754     fi
1755   fi
1756   enable_languages=`echo "${enable_languages}" | sed -e 's/[[   ,]][[   ,]]*/,/g' -e 's/,$//'`
1758   # 'f95' is the old name for the 'fortran' language. We issue a warning
1759   # and make the substitution.
1760   case ,${enable_languages}, in
1761     *,f95,*)
1762       echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1763       enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1764       ;;
1765   esac
1767   # First scan to see if an enabled language requires some other language.
1768   # We assume that a given config-lang.in will list all the language
1769   # front ends it requires, even if some are required indirectly.
1770   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1771     case ${lang_frag} in
1772       ..) ;;
1773       # The odd quoting in the next line works around
1774       # an apparent bug in bash 1.12 on linux.
1775       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1776       *)
1777         # From the config-lang.in, get $language, $lang_requires
1778         language=
1779         lang_requires=
1780         . ${lang_frag}
1781         for other in ${lang_requires} ; do
1782           case ,${enable_languages}, in
1783             *,$other,*) ;;
1784             *,all,*) ;;
1785             *,$language,*)
1786               echo " \`$other' language required by \`$language'; enabling" 1>&2
1787               enable_languages="${enable_languages},${other}"
1788               ;;
1789           esac
1790         done
1791         ;;
1792     esac
1793   done
1795   new_enable_languages=,c,
1797   # If LTO is enabled, add the LTO front end.
1798   extra_host_libiberty_configure_flags=
1799   if test "$enable_lto" = "yes" ; then
1800     case ,${enable_languages}, in
1801       *,lto,*) ;;
1802       *) enable_languages="${enable_languages},lto" ;;
1803     esac
1804     if test "${ENABLE_GOLD}" = "yes" ; then
1805       configdirs="$configdirs lto-plugin"
1806       extra_host_libiberty_configure_flags=--enable-shared
1807     fi
1808   fi
1809   AC_SUBST(extra_host_libiberty_configure_flags)
1811   missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1812   potential_languages=,c,
1814   for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1815     case ${lang_frag} in
1816       ..) ;;
1817       # The odd quoting in the next line works around
1818       # an apparent bug in bash 1.12 on linux.
1819       ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1820       *)
1821         # From the config-lang.in, get $language, $target_libs, 
1822         # $lang_dirs, $boot_language, and $build_by_default
1823         language=
1824         target_libs=
1825         lang_dirs=
1826         subdir_requires=
1827         boot_language=no
1828         build_by_default=yes
1829         . ${lang_frag}
1830         if test x${language} = x; then
1831           echo "${lang_frag} doesn't set \$language." 1>&2
1832           exit 1
1833         fi
1835         if test "$language" = "c++" \
1836            && test "$ENABLE_BUILD_WITH_CXX" = "yes"; then
1837           boot_language=yes
1838         fi
1840         case ,${enable_languages}, in
1841           *,${language},*)
1842             # Language was explicitly selected; include it.
1843             add_this_lang=yes
1844             ;;
1845           *,all,*)
1846             # 'all' was selected, select it if it is a default language
1847             add_this_lang=${build_by_default}
1848             ;;
1849           *)
1850             add_this_lang=no
1851             ;;
1852         esac
1854         # Disable languages that need other directories if these aren't available.
1855         for i in $subdir_requires; do
1856           test -f "$srcdir/gcc/$i/config-lang.in" && continue
1857           case ,${enable_languages}, in
1858             *,${language},*)
1859               # Specifically requested language; tell them.
1860               AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
1861               ;;
1862             *)
1863               # Silently disable.
1864               add_this_lang=unsupported
1865               ;;
1866           esac
1867         done
1869         # Disable Ada if no preexisting GNAT is available.
1870         case ,${enable_languages},:${language}:${have_gnat} in
1871           *,${language},*:ada:no)
1872             # Specifically requested language; tell them.
1873             AC_MSG_ERROR([GNAT is required to build $language])
1874             ;;
1875           *:ada:no)
1876             # Silently disable.
1877             add_this_lang=unsupported
1878             ;;
1879         esac
1881         # Disable a language that is unsupported by the target.
1882         case " $unsupported_languages " in
1883           *" $language "*)
1884             add_this_lang=unsupported
1885             ;;
1886         esac
1888         case $add_this_lang in
1889           unsupported)
1890             # Remove language-dependent dirs.
1891             eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1892             ;;
1893           no)
1894             # Remove language-dependent dirs; still show language as supported.
1895             eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1896             potential_languages="${potential_languages}${language},"
1897             ;;
1898           yes)
1899             new_enable_languages="${new_enable_languages}${language},"
1900             potential_languages="${potential_languages}${language},"
1901             missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1902             case "${boot_language}:,$enable_stage1_languages," in
1903               yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
1904                 # Add to (comma-separated) list of stage 1 languages.
1905                 case ",$stage1_languages," in
1906                   *,$language,* | ,yes, | ,all,) ;;
1907                   *) stage1_languages="${stage1_languages}${language}," ;;
1908                 esac
1909                 # We need to bootstrap any supporting libraries.
1910                 bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
1911                 ;;
1912             esac
1913             ;;
1914         esac
1915         ;;
1916     esac
1917   done
1919   AC_ARG_ENABLE(stage1-languages,
1920 [  --enable-stage1-languages@<:@=all@:>@   choose additional languages to build during
1921                           stage1.  Mostly useful for compiler development.],
1922   [case ,${enable_stage1_languages}, in
1923     ,no,|,,)
1924       # Set it to something that will have no effect in the loop below
1925       enable_stage1_languages=c ;;
1926     ,yes,)
1927       enable_stage1_languages=`echo $new_enable_languages | \
1928         sed -e "s/^,//" -e "s/,$//" ` ;;
1929     *,all,*)
1930       enable_stage1_languages=`echo ,$enable_stage1_languages, | \
1931         sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
1932   esac
1934   # Add "good" languages from enable_stage1_languages to stage1_languages,
1935   # while "bad" languages go in missing_languages.  Leave no duplicates.
1936   for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
1937     case $potential_languages in
1938       *,$i,*)
1939         case $stage1_languages in
1940           *,$i,*) ;;
1941           *) stage1_languages="$stage1_languages$i," ;;
1942         esac ;;
1943       *)
1944         case $missing_languages in
1945           *,$i,*) ;;
1946           *) missing_languages="$missing_languages$i," ;;
1947         esac ;;
1948      esac
1949   done])
1951   # Remove leading/trailing commas that were added for simplicity
1952   potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
1953   missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
1954   stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
1955   new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
1957   if test "x$missing_languages" != x; then
1958     AC_MSG_ERROR([
1959 The following requested languages could not be built: ${missing_languages}
1960 Supported languages are: ${potential_languages}])
1961   fi
1962   if test "x$new_enable_languages" != "x$enable_languages"; then
1963     echo The following languages will be built: ${new_enable_languages}
1964     enable_languages="$new_enable_languages"
1965   fi
1967   AC_SUBST(stage1_languages)
1968   ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
1971 # Handle --disable-<component> generically.
1972 for dir in $configdirs $build_configdirs $target_configdirs ; do
1973   dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
1974   varname=`echo $dirname | sed -e s/+/_/g`
1975   if eval test x\${enable_${varname}} "=" xno ; then
1976     noconfigdirs="$noconfigdirs $dir"
1977   fi
1978 done
1980 # Check for Boehm's garbage collector
1981 AC_ARG_ENABLE(objc-gc,
1982 [  --enable-objc-gc        enable use of Boehm's garbage collector with the
1983                           GNU Objective-C runtime],
1984 [case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
1985   *,objc,*:*:yes:*target-boehm-gc*)
1986     AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
1987     ;;
1988 esac])
1990 # Make sure we only build Boehm's garbage collector if required.
1991 case ,${enable_languages},:${enable_objc_gc} in
1992   *,objc,*:yes)
1993     # Keep target-boehm-gc if requested for Objective-C.
1994     ;;
1995   *)
1996     # Otherwise remove target-boehm-gc depending on target-libjava.
1997     if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
1998       noconfigdirs="$noconfigdirs target-boehm-gc"
1999     fi
2000     ;;
2001 esac
2003 # Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
2004 # $build_configdirs and $target_configdirs.
2005 # If we have the source for $noconfigdirs entries, add them to $notsupp.
2007 notsupp=""
2008 for dir in . $skipdirs $noconfigdirs ; do
2009   dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
2010   if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2011     configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
2012     if test -r $srcdir/$dirname/configure ; then
2013       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2014         true
2015       else
2016         notsupp="$notsupp $dir"
2017       fi
2018     fi
2019   fi
2020   if test $dir != .  && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2021     build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
2022     if test -r $srcdir/$dirname/configure ; then
2023       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2024         true
2025       else
2026         notsupp="$notsupp $dir"
2027       fi
2028     fi
2029   fi
2030   if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2031     target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
2032     if test -r $srcdir/$dirname/configure ; then
2033       if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2034         true
2035       else
2036         notsupp="$notsupp $dir"
2037       fi
2038     fi
2039   fi
2040 done
2042 # Sometimes the tools are distributed with libiberty but with no other
2043 # libraries.  In that case, we don't want to build target-libiberty.
2044 # Don't let libgcc imply libiberty either.
2045 if test -n "${target_configdirs}" ; then
2046   libgcc=
2047   others=
2048   for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
2049     if test "$i" = "libgcc"; then
2050       libgcc=target-libgcc
2051     elif test "$i" != "libiberty" ; then
2052       if test -r $srcdir/$i/configure ; then
2053         others=yes;
2054         break;
2055       fi
2056     fi
2057   done
2058   if test -z "${others}" ; then
2059     target_configdirs=$libgcc
2060   fi
2063 # Quietly strip out all directories which aren't configurable in this tree.
2064 # This relies on all configurable subdirectories being autoconfiscated, which
2065 # is now the case.
2066 build_configdirs_all="$build_configdirs"
2067 build_configdirs=
2068 for i in ${build_configdirs_all} ; do
2069   j=`echo $i | sed -e s/build-//g` 
2070   if test -f ${srcdir}/$j/configure ; then
2071     build_configdirs="${build_configdirs} $i"
2072   fi
2073 done
2075 configdirs_all="$configdirs"
2076 configdirs=
2077 for i in ${configdirs_all} ; do
2078   if test -f ${srcdir}/$i/configure ; then
2079     configdirs="${configdirs} $i"
2080   fi
2081 done
2083 target_configdirs_all="$target_configdirs"
2084 target_configdirs=
2085 for i in ${target_configdirs_all} ; do
2086   j=`echo $i | sed -e s/target-//g` 
2087   if test -f ${srcdir}/$j/configure ; then
2088     target_configdirs="${target_configdirs} $i"
2089   fi
2090 done
2092 # Produce a warning message for the subdirs we can't configure.
2093 # This isn't especially interesting in the Cygnus tree, but in the individual
2094 # FSF releases, it's important to let people know when their machine isn't
2095 # supported by the one or two programs in a package.
2097 if test -n "${notsupp}" && test -z "${norecursion}" ; then
2098   # If $appdirs is non-empty, at least one of those directories must still
2099   # be configured, or we error out.  (E.g., if the gas release supports a
2100   # specified target in some subdirs but not the gas subdir, we shouldn't
2101   # pretend that all is well.)
2102   if test -n "$appdirs" ; then
2103     for dir in $appdirs ; do
2104       if test -r $dir/Makefile.in ; then
2105         if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2106           appdirs=""
2107           break
2108         fi
2109         if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
2110           appdirs=""
2111           break
2112         fi
2113       fi
2114     done
2115     if test -n "$appdirs" ; then
2116       echo "*** This configuration is not supported by this package." 1>&2
2117       exit 1
2118     fi
2119   fi
2120   # Okay, some application will build, or we don't care to check.  Still
2121   # notify of subdirs not getting built.
2122   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
2123   echo "    ${notsupp}" 1>&2
2124   echo "    (Any other directories should still work fine.)" 1>&2
2127 case "$host" in
2128   *msdosdjgpp*)
2129     enable_gdbtk=no ;;
2130 esac
2132 # To find our prefix, in gcc_cv_tool_prefix.
2133 ACX_TOOL_DIRS
2135 copy_dirs=
2137 AC_ARG_WITH([build-sysroot], 
2138   [  --with-build-sysroot=SYSROOT
2139                           use sysroot as the system root during the build],
2140   [if test x"$withval" != x ; then
2141      SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
2142    fi],
2143   [SYSROOT_CFLAGS_FOR_TARGET=])
2144 AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
2146 AC_ARG_WITH([debug-prefix-map],
2147   [  --with-debug-prefix-map='A=B C=D ...'
2148                              map A to B, C to D ... in debug information],
2149   [if test x"$withval" != x; then
2150      DEBUG_PREFIX_CFLAGS_FOR_TARGET=
2151      for debug_map in $withval; do
2152        DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
2153      done
2154    fi],
2155   [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
2156 AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
2158 # During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
2159 # might be empty or "-g".  We don't require a C++ compiler, so CXXFLAGS
2160 # might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
2161 # We want to ensure that TARGET libraries (which we know are built with
2162 # gcc) are built with "-O2 -g", so include those options when setting
2163 # CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
2164 if test "x$CFLAGS_FOR_TARGET" = x; then
2165   CFLAGS_FOR_TARGET=$CFLAGS
2166   case " $CFLAGS " in
2167     *" -O2 "*) ;;
2168     *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
2169   esac
2170   case " $CFLAGS " in
2171     *" -g "* | *" -g3 "*) ;;
2172     *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
2173   esac
2175 AC_SUBST(CFLAGS_FOR_TARGET)
2177 if test "x$CXXFLAGS_FOR_TARGET" = x; then
2178   CXXFLAGS_FOR_TARGET=$CXXFLAGS
2179   case " $CXXFLAGS " in
2180     *" -O2 "*) ;;
2181     *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
2182   esac
2183   case " $CXXFLAGS " in
2184     *" -g "* | *" -g3 "*) ;;
2185     *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
2186   esac
2188 AC_SUBST(CXXFLAGS_FOR_TARGET)
2190 # Handle --with-headers=XXX.  If the value is not "yes", the contents of
2191 # the named directory are copied to $(tooldir)/sys-include.
2192 if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
2193   if test x${is_cross_compiler} = xno ; then
2194     echo 1>&2 '***' --with-headers is only supported when cross compiling
2195     exit 1
2196   fi
2197   if test x"${with_headers}" != xyes ; then
2198     x=${gcc_cv_tool_prefix}
2199     copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
2200   fi
2203 # Handle --with-libs=XXX.  If the value is not "yes", the contents of
2204 # the name directories are copied to $(tooldir)/lib.  Multiple directories
2205 # are permitted.
2206 if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
2207   if test x${is_cross_compiler} = xno ; then
2208     echo 1>&2 '***' --with-libs is only supported when cross compiling
2209     exit 1
2210   fi
2211   if test x"${with_libs}" != xyes ; then
2212     # Copy the libraries in reverse order, so that files in the first named
2213     # library override files in subsequent libraries.
2214     x=${gcc_cv_tool_prefix}
2215     for l in ${with_libs}; do
2216       copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
2217     done
2218   fi
2221 # Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
2223 # This is done by determining whether or not the appropriate directory
2224 # is available, and by checking whether or not specific configurations
2225 # have requested that this magic not happen.
2227 # The command line options always override the explicit settings in 
2228 # configure.in, and the settings in configure.in override this magic.
2230 # If the default for a toolchain is to use GNU as and ld, and you don't 
2231 # want to do that, then you should use the --without-gnu-as and
2232 # --without-gnu-ld options for the configure script.  Similarly, if
2233 # the default is to use the included zlib and you don't want to do that,
2234 # you should use the --with-system-zlib option for the configure script.
2236 if test x${use_gnu_as} = x &&
2237    echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
2238   with_gnu_as=yes
2239   extra_host_args="$extra_host_args --with-gnu-as"
2242 if test x${use_gnu_ld} = x &&
2243    echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
2244   with_gnu_ld=yes
2245   extra_host_args="$extra_host_args --with-gnu-ld"
2248 if test x${use_included_zlib} = x &&
2249    echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
2250   :
2251 else
2252   with_system_zlib=yes
2253   extra_host_args="$extra_host_args --with-system-zlib"
2256 # If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
2257 # can detect this case.
2259 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
2260   with_newlib=yes
2261   extra_host_args="$extra_host_args --with-newlib"
2264 # Handle ${copy_dirs}
2265 set fnord ${copy_dirs}
2266 shift
2267 while test $# != 0 ; do
2268   if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
2269     :
2270   else
2271     echo Copying $1 to $2
2273     # Use the install script to create the directory and all required
2274     # parent directories.
2275     if test -d $2 ; then
2276       :
2277     else
2278       echo >config.temp
2279       ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
2280     fi
2282     # Copy the directory, assuming we have tar.
2283     # FIXME: Should we use B in the second tar?  Not all systems support it.
2284     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
2286     # It is the responsibility of the user to correctly adjust all
2287     # symlinks.  If somebody can figure out how to handle them correctly
2288     # here, feel free to add the code.
2290     echo $1 > $2/COPIED
2291   fi
2292   shift; shift
2293 done
2295 # Determine a target-dependent exec_prefix that the installed
2296 # gcc will search in.  Keep this list sorted by triplet, with
2297 # the *-*-osname triplets last.
2298 md_exec_prefix=
2299 case "${target}" in
2300   alpha*-*-*vms*)
2301     md_exec_prefix=/gnu/lib/gcc-lib
2302     ;;
2303   i[[34567]]86-pc-msdosdjgpp*)
2304     md_exec_prefix=/dev/env/DJDIR/bin
2305     ;;
2306   i[[34567]]86-*-sco3.2v5*)
2307     if test $with_gnu_as = yes; then
2308       md_exec_prefix=/usr/gnu/bin
2309     else
2310       md_exec_prefix=/usr/ccs/bin/elf
2311     fi
2312     ;;
2314   mn10300-*-* | \
2315   powerpc-*-chorusos* | \
2316   powerpc*-*-eabi* | \
2317   powerpc*-*-sysv* | \
2318   powerpc*-*-kaos* | \
2319   s390x-ibm-tpf*)
2320     md_exec_prefix=/usr/ccs/bin
2321     ;;
2322   sparc64-*-elf*)
2323     ;;
2324   v850*-*-*)
2325     md_exec_prefix=/usr/ccs/bin
2326     ;;
2327   xtensa*-*-elf*)
2328     ;;
2330   *-*-beos* | \
2331   *-*-elf* | \
2332   *-*-hpux* | \
2333   *-*-netware* | \
2334   *-*-nto-qnx* | \
2335   *-*-rtems* | \
2336   *-*-solaris2* | \
2337   *-*-sysv[[45]]* | \
2338   *-*-vxworks* | \
2339   *-wrs-windiss)
2340     md_exec_prefix=/usr/ccs/bin
2341     ;;
2342 esac
2344 extra_arflags_for_target=
2345 extra_nmflags_for_target=
2346 extra_ranlibflags_for_target=
2347 target_makefile_frag=/dev/null
2348 case "${target}" in
2349   mep*-*-*)
2350     target_makefile_frag="config/mt-mep"
2351     ;;
2352   spu-*-*)
2353     target_makefile_frag="config/mt-spu"
2354     ;;
2355   mips*-sde-elf*)
2356     target_makefile_frag="config/mt-sde"
2357     ;;
2358   mipsisa*-*-elfoabi*)
2359     target_makefile_frag="config/mt-mips-elfoabi"
2360     ;;
2361   mips*-*-*linux* | mips*-*-gnu*)
2362     target_makefile_frag="config/mt-mips-gnu"
2363     ;;
2364   *-*-netware*)
2365     target_makefile_frag="config/mt-netware"
2366     ;;
2367   *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
2368     target_makefile_frag="config/mt-gnu"
2369     ;;
2370   *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
2371     # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
2372     # commands to handle both 32-bit and 64-bit objects.  These flags are
2373     # harmless if we're using GNU nm or ar.
2374     extra_arflags_for_target=" -X32_64"
2375     extra_nmflags_for_target=" -B -X32_64"
2376     ;;
2377   *-*-darwin*)
2378     # ranlib from Darwin requires the -c flag to look at common symbols.
2379     extra_ranlibflags_for_target=" -c"
2380     ;;
2381   mips*-*-pe | sh*-*-pe | *arm-wince-pe)
2382     target_makefile_frag="config/mt-wince"
2383     ;;
2384 esac
2386 alphaieee_frag=/dev/null
2387 case $target in
2388   alpha*-*-*)
2389     # This just makes sure to use the -mieee option to build target libs.
2390     # This should probably be set individually by each library.
2391     alphaieee_frag="config/mt-alphaieee"
2392     ;;
2393 esac
2395 # If --enable-target-optspace always use -Os instead of -O2 to build
2396 # the target libraries, similarly if it is not specified, use -Os
2397 # on selected platforms.
2398 ospace_frag=/dev/null
2399 case "${enable_target_optspace}:${target}" in
2400   yes:*)
2401     ospace_frag="config/mt-ospace"
2402     ;;
2403   :d30v-*)
2404     ospace_frag="config/mt-d30v"
2405     ;;
2406   :m32r-* | :d10v-* | :fr30-*)
2407     ospace_frag="config/mt-ospace"
2408     ;;
2409   no:* | :*)
2410     ;;
2411   *)
2412     echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
2413     ;;
2414 esac
2416 # Default to using --with-stabs for certain targets.
2417 if test x${with_stabs} = x ; then
2418   case "${target}" in
2419   mips*-*-irix[[56]]*)
2420     ;;
2421   mips*-*-* | alpha*-*-osf*)
2422     with_stabs=yes;
2423     extra_host_args="${extra_host_args} --with-stabs"
2424     ;;
2425   esac
2428 # hpux11 in 64bit mode has libraries in a weird place.  Arrange to find
2429 # them automatically.
2430 case "${host}" in
2431   hppa*64*-*-hpux11*)   
2432     extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
2433     ;;
2434 esac
2436 # Some systems (e.g., one of the i386-aix systems the gas testers are
2437 # using) don't handle "\$" correctly, so don't use it here.
2438 tooldir='${exec_prefix}'/${target_noncanonical}
2439 build_tooldir=${tooldir}
2441 # Create a .gdbinit file which runs the one in srcdir
2442 # and tells GDB to look there for source files.
2444 if test -r ${srcdir}/.gdbinit ; then
2445   case ${srcdir} in
2446     .) ;;
2447     *) cat > ./.gdbinit <<EOF
2448 # ${NO_EDIT}
2449 dir ${srcdir}
2450 dir .
2451 source ${srcdir}/.gdbinit
2453     ;;
2454   esac
2457 # Make sure that the compiler is able to generate an executable.  If it
2458 # can't, we are probably in trouble.  We don't care whether we can run the
2459 # executable--we might be using a cross compiler--we only care whether it
2460 # can be created.  At this point the main configure script has set CC.
2461 we_are_ok=no
2462 echo "int main () { return 0; }" > conftest.c
2463 ${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
2464 if test $? = 0 ; then
2465   if test -s conftest || test -s conftest.exe ; then
2466     we_are_ok=yes
2467   fi
2468 fi 
2469 case $we_are_ok in
2470   no)
2471     echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
2472     echo 1>&2 "*** You must set the environment variable CC to a working compiler."
2473     rm -f conftest*
2474     exit 1
2475     ;;
2476 esac
2477 rm -f conftest*
2479 # The Solaris /usr/ucb/cc compiler does not appear to work.
2480 case "${host}" in
2481   sparc-sun-solaris2*)
2482       CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
2483       if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
2484           could_use=
2485           test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
2486           if test -d /opt/cygnus/bin ; then
2487               if test "$could_use" = "" ; then
2488                   could_use="/opt/cygnus/bin"
2489               else
2490                   could_use="$could_use or /opt/cygnus/bin"
2491               fi
2492           fi
2493         if test "$could_use" = "" ; then
2494             echo "Warning: compilation may fail because you're using"
2495             echo "/usr/ucb/cc.  You should change your PATH or CC "
2496             echo "variable and rerun configure."
2497         else
2498             echo "Warning: compilation may fail because you're using"
2499             echo "/usr/ucb/cc, when you should use the C compiler from"
2500             echo "$could_use.  You should change your"
2501             echo "PATH or CC variable and rerun configure."
2502         fi
2503       fi
2504   ;;
2505 esac
2507 # Decide which environment variable is used to find dynamic libraries.
2508 case "${host}" in
2509   *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
2510   *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
2511   *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
2512   *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
2513 esac
2515 # On systems where the dynamic library environment variable is PATH,
2516 # gcc/ will put dynamic libraries into a subdirectory to avoid adding
2517 # built executables to PATH.
2518 if test "$RPATH_ENVVAR" = PATH; then
2519   GCC_SHLIB_SUBDIR=/shlib
2520 else
2521   GCC_SHLIB_SUBDIR=
2524 # Record target_configdirs and the configure arguments for target and
2525 # build configuration in Makefile.
2526 target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
2527 build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
2529 # Determine whether gdb needs tk/tcl or not.
2530 # Use 'maybe' since enable_gdbtk might be true even if tk isn't available
2531 # and in that case we want gdb to be built without tk.  Ugh!
2532 # In fact I believe gdb is the *only* package directly dependent on tk,
2533 # so we should be able to put the 'maybe's in unconditionally and
2534 # leave out the maybe dependencies when enable_gdbtk is false.  I'm not
2535 # 100% sure that that's safe though.
2537 gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
2538 case "$enable_gdbtk" in
2539   no)
2540     GDB_TK="" ;;
2541   yes)
2542     GDB_TK="${gdb_tk}" ;;
2543   *)
2544     # Only add the dependency on gdbtk when GDBtk is part of the gdb
2545     # distro.  Eventually someone will fix this and move Insight, nee
2546     # gdbtk to a separate directory.
2547     if test -d ${srcdir}/gdb/gdbtk ; then
2548       GDB_TK="${gdb_tk}"
2549     else
2550       GDB_TK=""
2551     fi
2552     ;;
2553 esac
2554 CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2555 INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
2557 # Strip out unwanted targets.
2559 # While at that, we remove Makefiles if we were started for recursive
2560 # configuration, so that the top-level Makefile reconfigures them,
2561 # like we used to do when configure itself was recursive.
2563 # Loop over modules.  We used to use the "$extrasub" feature from Autoconf
2564 # but now we're fixing up the Makefile ourselves with the additional
2565 # commands passed to AC_CONFIG_FILES.  Use separate variables
2566 # extrasub-{build,host,target} not because there is any reason to split
2567 # the substitutions up that way, but only to remain below the limit of
2568 # 99 commands in a script, for HP-UX sed.
2569 # Do not nest @if/@endif pairs, because configure will not warn you at all.
2571 AC_ARG_ENABLE([bootstrap],
2572 [  --enable-bootstrap      enable bootstrapping @<:@yes if native build@:>@],,
2573 enable_bootstrap=default)
2575 # Issue errors and warnings for invalid/strange bootstrap combinations.
2576 case "$configdirs" in
2577   *gcc*) have_compiler=yes ;;
2578   *) have_compiler=no ;;
2579 esac
2581 case "$have_compiler:$host:$target:$enable_bootstrap" in
2582   *:*:*:no) ;;
2584   # Default behavior.  Enable bootstrap if we have a compiler
2585   # and we are in a native configuration.
2586   yes:$build:$build:default)
2587     enable_bootstrap=yes ;;
2589   *:*:*:default)
2590     enable_bootstrap=no ;;
2592   # We have a compiler and we are in a native configuration, bootstrap is ok
2593   yes:$build:$build:yes)
2594     ;;
2596   # Other configurations, but we have a compiler.  Assume the user knows
2597   # what he's doing.
2598   yes:*:*:yes)
2599     AC_MSG_WARN([trying to bootstrap a cross compiler])
2600     ;;
2602   # No compiler: if they passed --enable-bootstrap explicitly, fail
2603   no:*:*:yes)
2604     AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
2606   # Fail if wrong command line
2607   *)
2608     AC_MSG_ERROR([invalid option for --enable-bootstrap])
2609     ;;
2610 esac
2612 case ",$enable_languages,:$ENABLE_BUILD_WITH_CXX:$enable_bootstrap" in
2613   *,c++,*:yes:yes) ;;
2614   *:yes:yes)
2615     AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx requires c++ in --enable-languages])
2616     ;;
2617 esac
2619 case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
2620   yes:yes:*\ gold\ *:*,c++,*) ;;
2621   yes:yes:*\ gold\ *:*)
2622     AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
2623     ;;
2624 esac
2626 # Adjust the toplevel makefile according to whether bootstrap was selected.
2627 case $enable_bootstrap in
2628   yes)
2629     bootstrap_suffix=bootstrap
2630     BUILD_CONFIG=bootstrap-debug
2631     ;;
2632   no)
2633     bootstrap_suffix=no-bootstrap
2634     BUILD_CONFIG=
2635     ;;
2636 esac
2638 AC_MSG_CHECKING(for default BUILD_CONFIG)
2640 AC_ARG_WITH([build-config],
2641   [--with-build-config='NAME NAME2...'
2642                           Use config/NAME.mk build configuration],
2643   [case $with_build_config in
2644    yes) with_build_config= ;;
2645    no) with_build_config= BUILD_CONFIG= ;;
2646    esac])
2648 if test "x${with_build_config}" != x; then
2649   BUILD_CONFIG=$with_build_config
2650 else
2651   case $BUILD_CONFIG in
2652   bootstrap-debug)
2653     if echo "int f (void) { return 0; }" > conftest.c &&
2654        ${CC} -c conftest.c &&
2655        mv conftest.o conftest.o.g0 &&
2656        ${CC} -c -g conftest.c &&
2657        mv conftest.o conftest.o.g &&
2658        ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g; then
2659       :
2660     else
2661       BUILD_CONFIG=
2662     fi
2663     rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
2664     ;;
2665   esac
2667 AC_MSG_RESULT($BUILD_CONFIG)
2668 AC_SUBST(BUILD_CONFIG)
2670 extrasub_build=
2671 for module in ${build_configdirs} ; do
2672   if test -z "${no_recursion}" \
2673      && test -f ${build_subdir}/${module}/Makefile; then
2674     echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2675     rm -f ${build_subdir}/${module}/Makefile
2676   fi
2677   extrasub_build="$extrasub_build
2678 /^@if build-$module\$/d
2679 /^@endif build-$module\$/d
2680 /^@if build-$module-$bootstrap_suffix\$/d
2681 /^@endif build-$module-$bootstrap_suffix\$/d"
2682 done
2683 extrasub_host=
2684 for module in ${configdirs} ; do
2685   if test -z "${no_recursion}"; then
2686     for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
2687       if test -f ${file}; then
2688         echo 1>&2 "*** removing ${file} to force reconfigure"
2689         rm -f ${file}
2690       fi
2691     done
2692   fi
2693   extrasub_host="$extrasub_host
2694 /^@if $module\$/d
2695 /^@endif $module\$/d
2696 /^@if $module-$bootstrap_suffix\$/d
2697 /^@endif $module-$bootstrap_suffix\$/d"
2698 done
2699 extrasub_target=
2700 for module in ${target_configdirs} ; do
2701   if test -z "${no_recursion}" \
2702      && test -f ${target_subdir}/${module}/Makefile; then
2703     echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
2704     rm -f ${target_subdir}/${module}/Makefile
2705   fi
2707   # We only bootstrap target libraries listed in bootstrap_target_libs.
2708   case $bootstrap_target_libs in
2709     *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
2710     *) target_bootstrap_suffix=no-bootstrap ;;
2711   esac
2713   extrasub_target="$extrasub_target
2714 /^@if target-$module\$/d
2715 /^@endif target-$module\$/d
2716 /^@if target-$module-$target_bootstrap_suffix\$/d
2717 /^@endif target-$module-$target_bootstrap_suffix\$/d"
2718 done
2720 # Do the final fixup along with target modules.
2721 extrasub_target="$extrasub_target
2722 /^@if /,/^@endif /d"
2724 # Create the serialization dependencies.  This uses a temporary file.
2726 AC_ARG_ENABLE([serial-configure],
2727 [  --enable-serial-@<:@{host,target,build}-@:>@configure
2728                           force sequential configuration of
2729                           sub-packages for the host, target or build
2730                           machine, or all sub-packages])
2732 case ${enable_serial_configure} in
2733   yes)
2734     enable_serial_build_configure=yes
2735     enable_serial_host_configure=yes
2736     enable_serial_target_configure=yes
2737     ;;
2738 esac
2740 # These force 'configure's to be done one at a time, to avoid problems
2741 # with contention over a shared config.cache.
2742 rm -f serdep.tmp
2743 echo '# serdep.tmp' > serdep.tmp
2744 olditem=
2745 test "x${enable_serial_build_configure}" = xyes &&
2746 for item in ${build_configdirs} ; do
2747   case ${olditem} in
2748     "") ;;
2749     *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
2750   esac
2751   olditem=${item}
2752 done
2753 olditem=
2754 test "x${enable_serial_host_configure}" = xyes &&
2755 for item in ${configdirs} ; do
2756   case ${olditem} in
2757     "") ;;
2758     *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
2759   esac
2760   olditem=${item}
2761 done
2762 olditem=
2763 test "x${enable_serial_target_configure}" = xyes &&
2764 for item in ${target_configdirs} ; do
2765   case ${olditem} in
2766     "") ;;
2767     *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
2768   esac
2769   olditem=${item}
2770 done
2771 serialization_dependencies=serdep.tmp
2772 AC_SUBST_FILE(serialization_dependencies)
2774 # Base args.  Strip norecursion, cache-file, srcdir, host, build,
2775 # target, nonopt, and variable assignments.  These are the ones we
2776 # might not want to pass down to subconfigures.  The exception being
2777 # --cache-file=/dev/null, which is used to turn off the use of cache
2778 # files altogether, and which should be passed on to subconfigures.
2779 # Also strip program-prefix, program-suffix, and program-transform-name,
2780 # so that we can pass down a consistent program-transform-name.
2781 baseargs=
2782 keep_next=no
2783 skip_next=no
2784 eval "set -- $ac_configure_args"
2785 for ac_arg
2787   if test X"$skip_next" = X"yes"; then
2788     skip_next=no
2789     continue
2790   fi
2791   if test X"$keep_next" = X"yes"; then
2792     case $ac_arg in
2793       *\'*)
2794         ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2795     esac
2796     baseargs="$baseargs '$ac_arg'"
2797     keep_next=no
2798     continue
2799   fi
2801   # Handle separated arguments.  Based on the logic generated by
2802   # autoconf 2.59.
2803   case $ac_arg in
2804     *=* | --config-cache | -C | -disable-* | --disable-* \
2805       | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2806       | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2807       | -with-* | --with-* | -without-* | --without-* | --x)
2808       separate_arg=no
2809       ;;
2810     -*)
2811       separate_arg=yes
2812       ;;
2813     *)
2814       separate_arg=no
2815       ;;
2816   esac
2818   case "$ac_arg" in
2819     --cache-file=/dev/null | \
2820     -cache-file=/dev/null )
2821       # Handled here to avoid the test to skip args below.
2822       baseargs="$baseargs '$ac_arg'"
2823       # Assert: $separate_arg should always be no.
2824       keep_next=$separate_arg
2825       ;;
2826     --no*)
2827       continue
2828       ;;
2829     --c* | \
2830     --sr* | \
2831     --ho* | \
2832     --bu* | \
2833     --t* | \
2834     --program-* | \
2835     -cache_file* | \
2836     -srcdir* | \
2837     -host* | \
2838     -build* | \
2839     -target* | \
2840     -program-prefix* | \
2841     -program-suffix* | \
2842     -program-transform-name* )
2843       skip_next=$separate_arg
2844       continue
2845       ;;
2846     -*)
2847       # An option.  Add it.
2848       case $ac_arg in
2849         *\'*)
2850           ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2851       esac
2852       baseargs="$baseargs '$ac_arg'"
2853       keep_next=$separate_arg
2854       ;;
2855     *)
2856       # Either a variable assignment, or a nonopt (triplet).  Don't
2857       # pass it down; let the Makefile handle this.
2858       continue
2859       ;;
2860   esac
2861 done
2862 # Remove the initial space we just introduced and, as these will be
2863 # expanded by make, quote '$'.
2864 baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
2866 # Add in --program-transform-name, after --program-prefix and
2867 # --program-suffix have been applied to it.  Autoconf has already
2868 # doubled dollar signs and backslashes in program_transform_name; we want
2869 # the backslashes un-doubled, and then the entire thing wrapped in single
2870 # quotes, because this will be expanded first by make and then by the shell. 
2871 # Also, because we want to override the logic in subdir configure scripts to
2872 # choose program_transform_name, replace any s,x,x, with s,y,y,.
2873 sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2874 ${program_transform_name}
2875 EOF_SED
2876 gcc_transform_name=`cat conftestsed.out`
2877 rm -f conftestsed.out
2878 baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2879 if test "$silent" = yes; then
2880   baseargs="$baseargs --silent"
2882 baseargs="$baseargs --disable-option-checking"
2884 # For the build-side libraries, we just need to pretend we're native,
2885 # and not use the same cache file.  Multilibs are neither needed nor
2886 # desired.
2887 build_configargs="--cache-file=../config.cache ${baseargs}"
2889 # For host modules, accept cache file option, or specification as blank.
2890 case "${cache_file}" in
2891 "") # empty
2892   cache_file_option="" ;;
2893 /* | [[A-Za-z]]:[[\\/]]* ) # absolute path
2894   cache_file_option="--cache-file=${cache_file}" ;;
2895 *) # relative path
2896   cache_file_option="--cache-file=../${cache_file}" ;;
2897 esac
2899 # Host dirs don't like to share a cache file either, horribly enough.
2900 # This seems to be due to autoconf 2.5x stupidity.
2901 host_configargs="--cache-file=./config.cache ${extra_host_args} ${baseargs}"
2903 target_configargs=${baseargs}
2905 # Passing a --with-cross-host argument lets the target libraries know
2906 # whether they are being built with a cross-compiler or being built
2907 # native.  However, it would be better to use other mechanisms to make the
2908 # sorts of decisions they want to make on this basis.  Please consider
2909 # this option to be deprecated.  FIXME.
2910 if test x${is_cross_compiler} = xyes ; then
2911   target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
2914 # Default to --enable-multilib.
2915 if test x${enable_multilib} = x ; then
2916   target_configargs="--enable-multilib ${target_configargs}"
2919 # Pass --with-newlib if appropriate.  Note that target_configdirs has
2920 # changed from the earlier setting of with_newlib.
2921 if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
2922   target_configargs="--with-newlib ${target_configargs}"
2925 # Different target subdirs use different values of certain variables
2926 # (notably CXX).  Worse, multilibs use *lots* of different values.
2927 # Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2928 # it doesn't automatically accept command-line overrides of them.
2929 # This means it's not safe for target subdirs to share a cache file,
2930 # which is disgusting, but there you have it.  Hopefully this can be
2931 # fixed in future.  It's still worthwhile to use a cache file for each
2932 # directory.  I think.
2934 # Pass the appropriate --build, --host, --target and --cache-file arguments.
2935 # We need to pass --target, as newer autoconf's requires consistency
2936 # for target_alias and gcc doesn't manage it consistently.
2937 target_configargs="--cache-file=./config.cache ${target_configargs}"
2939 FLAGS_FOR_TARGET=
2940 case " $target_configdirs " in
2941  *" newlib "*)
2942   case " $target_configargs " in
2943   *" --with-newlib "*)
2944    case "$target" in
2945     *-cygwin*)
2946       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'
2947       ;;
2948    esac
2950    # If we're not building GCC, don't discard standard headers.
2951    if test -d ${srcdir}/gcc; then
2952      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
2954      if test "${build}" != "${host}"; then
2955        # On Canadian crosses, CC_FOR_TARGET will have already been set
2956        # by `configure', so we won't have an opportunity to add -Bgcc/
2957        # to it.  This is right: we don't want to search that directory
2958        # for binaries, but we want the header files in there, so add
2959        # them explicitly.
2960        FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
2962        # Someone might think of using the pre-installed headers on
2963        # Canadian crosses, in case the installed compiler is not fully
2964        # compatible with the compiler being built.  In this case, it
2965        # would be better to flag an error than risking having
2966        # incompatible object files being constructed.  We can't
2967        # guarantee that an error will be flagged, but let's hope the
2968        # compiler will do it, when presented with incompatible header
2969        # files.
2970      fi
2971    fi
2973    case "${target}-${is_cross_compiler}" in
2974    i[[3456789]]86-*-linux*-no)
2975       # Here host == target, so we don't need to build gcc,
2976       # so we don't want to discard standard headers.
2977       FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
2978       ;;
2979    *)
2980       # If we're building newlib, use its generic headers last, but search
2981       # for any libc-related directories first (so make it the last -B
2982       # switch).
2983       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2985       # If we're building libgloss, find the startup file, simulator library
2986       # and linker script.
2987       case " $target_configdirs " in
2988         *" libgloss "*)
2989         # Look for startup file, simulator library and maybe linker script.
2990         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
2991         # Look for libnosys.a in case the target needs it.
2992         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
2993         # Most targets have the linker script in the source directory.
2994         FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
2995         ;;
2996       esac
2997       ;;
2998    esac
2999    ;;
3000   esac
3001   ;;
3002 esac
3004 case "$target" in
3005   x86_64-*mingw* | *-w64-mingw*)
3006   # MinGW-w64 does not use newlib, nor does it use winsup. It may,
3007   # however, use a symlink named 'mingw' in ${prefix} .
3008     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include'
3009     ;;
3010   *-mingw*)
3011   # MinGW can't be handled as Cygwin above since it does not use newlib.
3012     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'
3013     ;;
3014 esac
3016 # Allow the user to override the flags for
3017 # our build compiler if desired.
3018 if test x"${build}" = x"${host}" ; then
3019   CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
3020   CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
3021   LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
3024 # On Canadian crosses, we'll be searching the right directories for
3025 # the previously-installed cross compiler, so don't bother to add
3026 # flags for directories within the install tree of the compiler
3027 # being built; programs in there won't even run.
3028 if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
3029   # Search for pre-installed headers if nothing else fits.
3030   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
3033 if test "x${use_gnu_ld}" = x &&
3034    echo " ${configdirs} " | grep " ld " > /dev/null ; then
3035   # Arrange for us to find uninstalled linker scripts.
3036   FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
3039 # Search for other target-specific linker scripts and such.
3040 case "${target}" in
3041   mep*)
3042     FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
3043     ;;
3044 esac
3046 # Makefile fragments.
3047 for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
3049   eval fragval=\$$frag
3050   if test $fragval != /dev/null; then
3051     eval $frag=${srcdir}/$fragval
3052   fi
3053 done
3054 AC_SUBST_FILE(host_makefile_frag)
3055 AC_SUBST_FILE(target_makefile_frag)
3056 AC_SUBST_FILE(alphaieee_frag)
3057 AC_SUBST_FILE(ospace_frag)
3059 # Miscellanea: directories, flags, etc.
3060 AC_SUBST(RPATH_ENVVAR)
3061 AC_SUBST(GCC_SHLIB_SUBDIR)
3062 AC_SUBST(tooldir)
3063 AC_SUBST(build_tooldir)
3064 AC_SUBST(CONFIGURE_GDB_TK)
3065 AC_SUBST(GDB_TK)
3066 AC_SUBST(INSTALL_GDB_TK)
3068 # Build module lists & subconfigure args.
3069 AC_SUBST(build_configargs)
3070 AC_SUBST(build_configdirs)
3072 # Host module lists & subconfigure args.
3073 AC_SUBST(host_configargs)
3074 AC_SUBST(configdirs)
3075 AC_SUBST(target_configdirs)
3077 # Target module lists & subconfigure args.
3078 AC_SUBST(target_configargs)
3081 # Build tools.
3082 AC_SUBST(AR_FOR_BUILD)
3083 AC_SUBST(AS_FOR_BUILD)
3084 AC_SUBST(CC_FOR_BUILD)
3085 AC_SUBST(CFLAGS_FOR_BUILD)
3086 AC_SUBST(CXXFLAGS_FOR_BUILD)
3087 AC_SUBST(CXX_FOR_BUILD)
3088 AC_SUBST(DLLTOOL_FOR_BUILD)
3089 AC_SUBST(GCJ_FOR_BUILD)
3090 AC_SUBST(GFORTRAN_FOR_BUILD)
3091 AC_SUBST(LDFLAGS_FOR_BUILD)
3092 AC_SUBST(LD_FOR_BUILD)
3093 AC_SUBST(NM_FOR_BUILD)
3094 AC_SUBST(RANLIB_FOR_BUILD)
3095 AC_SUBST(WINDMC_FOR_BUILD)
3096 AC_SUBST(WINDRES_FOR_BUILD)
3097 AC_SUBST(config_shell)
3099 # Generate default definitions for YACC, M4, LEX and other programs that run
3100 # on the build machine.  These are used if the Makefile can't locate these
3101 # programs in objdir.
3102 MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
3104 AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
3105 case " $build_configdirs " in
3106   *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
3107   *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;;
3108 esac
3110 AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
3111 case " $build_configdirs " in
3112   *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
3113 esac
3115 AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
3116 case " $build_configdirs " in
3117   *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
3118 esac
3120 AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
3121 case " $build_configdirs " in
3122   *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3123   *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
3124 esac
3126 AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
3127 case " $build_configdirs " in
3128   *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3129 esac
3131 AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
3132 case " $build_configdirs " in
3133   *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
3134   *)
3135 changequote(,)
3136     # For an installed makeinfo, we require it to be from texinfo 4.7 or
3137     # higher, else we use the "missing" dummy.
3138     if ${MAKEINFO} --version \
3139        | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
3140       :
3141     else
3142       MAKEINFO="$MISSING makeinfo"
3143     fi
3144     ;;
3145 changequote([,])
3146 esac
3148 # FIXME: expect and dejagnu may become build tools?
3150 AC_CHECK_PROGS(EXPECT, expect, expect)
3151 case " $configdirs " in
3152   *" expect "*)
3153     test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
3154     ;;
3155 esac
3157 AC_CHECK_PROGS(RUNTEST, runtest, runtest)
3158 case " $configdirs " in
3159   *" dejagnu "*)
3160     test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
3161     ;;
3162 esac
3165 # Host tools.
3166 NCN_STRICT_CHECK_TOOLS(AR, ar)
3167 NCN_STRICT_CHECK_TOOLS(AS, as)
3168 NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
3169 NCN_STRICT_CHECK_TOOLS(LD, ld)
3170 NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
3171 NCN_STRICT_CHECK_TOOLS(NM, nm)
3172 NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :)
3173 NCN_STRICT_CHECK_TOOLS(STRIP, strip, :)
3174 NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
3175 NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
3176 NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
3177 NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
3178 AC_SUBST(CC)
3179 AC_SUBST(CXX)
3180 AC_SUBST(CFLAGS)
3181 AC_SUBST(CXXFLAGS)
3183 # Target tools.
3184 AC_ARG_WITH([build-time-tools], 
3185   [  --with-build-time-tools=PATH
3186                           use given path to find target tools during the build],
3187   [case x"$withval" in
3188      x/*) ;;
3189      *)
3190        with_build_time_tools=
3191        AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
3192        ;;
3193    esac],
3194   [with_build_time_tools=])
3196 NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
3197 NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
3198 NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
3199 NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
3200 NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
3202 ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
3203 ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
3204 ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
3205 ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
3206 ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
3207 ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
3208 ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
3209 ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :)
3210 ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
3211 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
3212 ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
3214 RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
3216 GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
3217 GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
3218 GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3219 GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
3220                 [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],
3221                 c++)
3222 GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
3223                 [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],
3224                 c++)
3225 GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
3226 GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3227 GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
3228                 [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
3229 GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
3230                 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
3231 GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
3232 GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
3233 GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
3234 GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
3235 GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
3236 GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip])
3237 GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
3238 GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
3240 AC_SUBST(FLAGS_FOR_TARGET)
3241 AC_SUBST(RAW_CXX_FOR_TARGET)
3243 # Certain tools may need extra flags.
3244 AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
3245 RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
3246 NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
3248 # When building target libraries, except in a Canadian cross, we use
3249 # the same toolchain as the compiler we just built.
3250 COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
3251 COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
3252 COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
3253 if test $host = $build; then
3254   case " $configdirs " in
3255     *" gcc "*)
3256       COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
3257       COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
3258       COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
3259       ;;
3260   esac
3263 AC_SUBST(COMPILER_AS_FOR_TARGET)
3264 AC_SUBST(COMPILER_LD_FOR_TARGET)
3265 AC_SUBST(COMPILER_NM_FOR_TARGET)
3267 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3268 AC_ARG_ENABLE(maintainer-mode,
3269 [  --enable-maintainer-mode enable make rules and dependencies not useful
3270                           (and sometimes confusing) to the casual installer],
3271       USE_MAINTAINER_MODE=$enableval,
3272       USE_MAINTAINER_MODE=no)
3273 AC_MSG_RESULT($USE_MAINTAINER_MODE)
3274 AC_SUBST(MAINTAINER_MODE_TRUE)
3275 AC_SUBST(MAINTAINER_MODE_FALSE)
3276 if test "$USE_MAINTAINER_MODE" = yes; then
3277   MAINTAINER_MODE_TRUE=
3278   MAINTAINER_MODE_FALSE='#'
3279 else
3280   MAINTAINER_MODE_TRUE='#'
3281   MAINTAINER_MODE_FALSE=
3282 fi      
3283 MAINT=$MAINTAINER_MODE_TRUE
3284 AC_SUBST(MAINT)dnl
3286 # ---------------------
3287 # GCC bootstrap support
3288 # ---------------------
3290 # Stage specific cflags for build.
3291 stage1_cflags="-g"
3292 case $build in
3293   vax-*-*)
3294     case ${GCC} in
3295       yes) stage1_cflags="-g -Wa,-J" ;;
3296       *) stage1_cflags="-g -J" ;;
3297     esac ;;
3298 esac
3300 # This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
3301 if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
3302   saved_CFLAGS="$CFLAGS"
3304   # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
3305   CFLAGS="$CFLAGS -fkeep-inline-functions"
3306   AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
3307   AC_TRY_COMPILE([
3308 #if (__GNUC__ < 3) \
3309     || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
3310                           || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
3311 #error http://gcc.gnu.org/PR29382
3312 #endif
3313     ],,
3314     [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
3315     [AC_MSG_RESULT([no])])
3317   CFLAGS="$saved_CFLAGS"
3320 AC_SUBST(stage1_cflags)
3322 # Enable --enable-checking in stage1 of the compiler.
3323 AC_ARG_ENABLE(stage1-checking,
3324 [  --enable-stage1-checking@<:@=all@:>@   choose additional checking for stage1
3325                           of the compiler],
3326 [stage1_checking=--enable-checking=${enable_stage1_checking}],
3327 [if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
3328   stage1_checking=--enable-checking=yes,types
3329 else
3330   stage1_checking=--enable-checking=$enable_checking,types
3331 fi])
3332 AC_SUBST(stage1_checking)
3334 # Enable -Werror in bootstrap stage2 and later.
3335 AC_ARG_ENABLE(werror,
3336 [  --enable-werror         enable -Werror in bootstrap stage2 and later], [],
3337 [if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
3338   enable_werror=yes
3339 else
3340   enable_werror=no
3341 fi])
3342 case ${enable_werror} in
3343   yes) stage2_werror_flag="--enable-werror-always" ;;
3344   *) stage2_werror_flag="" ;;
3345 esac
3346 AC_SUBST(stage2_werror_flag)
3348 # Specify what files to not compare during bootstrap.
3350 compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
3351 case "$target" in
3352   hppa*64*-*-hpux*) ;;
3353   hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
3354 esac
3355 case " $configdirs " in
3356 *" ppl "*) compare_exclusions="$compare_exclusions | ppl/src/ppl-config.o" ;;
3357 esac
3358 AC_SUBST(compare_exclusions)
3360 AC_CONFIG_FILES([Makefile],
3361   [sed "$extrasub_build" Makefile |
3362    sed "$extrasub_host" |
3363    sed "$extrasub_target" > mf$$
3364    mv -f mf$$ Makefile],
3365   [extrasub_build="$extrasub_build"
3366    extrasub_host="$extrasub_host"
3367    extrasub_target="$extrasub_target"])
3368 AC_OUTPUT