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