OSDN Git Service

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