configure.ac revision 1.3
1181834Sroberto#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2181834Sroberto#   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
3181834Sroberto#   Free Software Foundation, Inc.
4181834Sroberto#
5181834Sroberto# This file is free software; you can redistribute it and/or modify it
6181834Sroberto# under the terms of the GNU General Public License as published by
7290000Sglebius# the Free Software Foundation; either version 3 of the License, or
8290000Sglebius# (at your option) any later version.
9290000Sglebius#
10181834Sroberto# This program is distributed in the hope that it will be useful, but
11181834Sroberto# WITHOUT ANY WARRANTY; without even the implied warranty of
12181834Sroberto# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13290000Sglebius# General Public License for more details.
14290000Sglebius#
15290000Sglebius# You should have received a copy of the GNU General Public License
16290000Sglebius# along with this program; see the file COPYING3.  If not see
17290000Sglebius# <http://www.gnu.org/licenses/>.
18290000Sglebius
19290000Sglebius##############################################################################
20290000Sglebius### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
21290000Sglebius
22290000Sglebiusm4_include(config/acx.m4)
23290000Sglebiusm4_include(config/override.m4)
24290000Sglebiusm4_include(config/proginstall.m4)
25290000Sglebiusm4_include(config/elf.m4)
26290000Sglebiusm4_include([libtool.m4])
27290000Sglebiusm4_include([ltoptions.m4])
28290000Sglebiusm4_include([ltsugar.m4])
29290000Sglebiusm4_include([ltversion.m4])
30290000Sglebiusm4_include([lt~obsolete.m4])
31290000Sglebiusm4_include([config/isl.m4])
32290000Sglebiusm4_include([config/cloog.m4])
33290000Sglebius
34290000SglebiusAC_INIT(move-if-change)
35290000SglebiusAC_PREREQ(2.64)
36290000SglebiusAC_DISABLE_OPTION_CHECKING
37290000Sglebius
38290000Sglebiusprogname=$0
39290000Sglebius# if PWD already has a value, it is probably wrong.
40290000Sglebiusif test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
41290000Sglebius
42290000Sglebius# Export original configure arguments for use by sub-configures.
43290000Sglebius# Quote arguments with shell meta charatcers.
44290000SglebiusTOPLEVEL_CONFIGURE_ARGUMENTS=
45290000Sglebiusset -- "$progname" "$@"
46290000Sglebiusfor ac_arg
47290000Sglebiusdo
48290000Sglebius  case "$ac_arg" in
49290000Sglebius  *" "*|*"	"*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
50290000Sglebius    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
51290000Sglebius    # if the argument is of the form -foo=baz, quote the baz part only
52290000Sglebius    ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
53290000Sglebius  *) ;;
54290000Sglebius  esac
55290000Sglebius  # Add the quoted argument to the list.
56290000Sglebius  TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
57290000Sglebiusdone
58290000Sglebiusif test "$silent" = yes; then
59290000Sglebius  TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
60290000Sglebiusfi
61290000Sglebius# Remove the initial space we just introduced and, as these will be
62290000Sglebius# expanded by make, quote '$'.
63290000SglebiusTOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
64290000SglebiusAC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
65290000Sglebius
66290000Sglebius# Find the build, host, and target systems.
67290000SglebiusACX_NONCANONICAL_BUILD
68290000SglebiusACX_NONCANONICAL_HOST
69290000SglebiusACX_NONCANONICAL_TARGET
70290000Sglebius
71290000Sglebiusdnl Autoconf 2.5x and later will set a default program prefix if
72290000Sglebiusdnl --target was used, even if it was the same as --host.  Disable
73290000Sglebiusdnl that behavior.  This must be done before AC_CANONICAL_SYSTEM
74290000Sglebiusdnl to take effect.
75290000Sglebiustest "$host_noncanonical" = "$target_noncanonical" &&
76290000Sglebius  test "$program_prefix$program_suffix$program_transform_name" = \
77290000Sglebius    NONENONEs,x,x, &&
78290000Sglebius  program_transform_name=s,y,y,
79290000Sglebius
80290000SglebiusAC_CANONICAL_SYSTEM
81290000SglebiusAC_ARG_PROGRAM
82290000Sglebius
83290000Sglebiusm4_pattern_allow([^AS_FOR_TARGET$])dnl
84290000Sglebiusm4_pattern_allow([^AS_FOR_BUILD$])dnl
85290000Sglebius
86290000Sglebius# Get 'install' or 'install-sh' and its variants.
87290000SglebiusAC_PROG_INSTALL
88290000SglebiusACX_PROG_LN
89290000SglebiusAC_PROG_LN_S
90290000SglebiusAC_PROG_SED
91290000SglebiusAC_PROG_AWK
92290000Sglebius
93290000Sglebiussrcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
94290000Sglebius
95290000Sglebius# We pass INSTALL explicitly to sub-makes.  Make sure that it is not
96290000Sglebius# a relative path.
97290000Sglebiusif test "$INSTALL" = "${srcdir}/install-sh -c"; then
98290000Sglebius  INSTALL="${srcpwd}/install-sh -c"
99290000Sglebiusfi
100290000Sglebius
101290000Sglebius# Set srcdir to "." if that's what it is.
102290000Sglebius# This is important for multilib support.
103290000Sglebiuspwd=`${PWDCMD-pwd}`
104290000Sglebiusif test "${pwd}" = "${srcpwd}" ; then
105290000Sglebius  srcdir=.
106290000Sglebiusfi
107290000Sglebius
108290000Sglebiustopsrcdir=$srcpwd
109290000Sglebius
110290000Sglebiusextra_host_args=
111290000Sglebius
112290000Sglebius### To add a new directory to the tree, first choose whether it is a target
113290000Sglebius### or a host dependent tool.  Then put it into the appropriate list
114290000Sglebius### (library or tools, host or target), doing a dependency sort.
115290000Sglebius
116290000Sglebius# Subdirs will be configured in the order listed in build_configdirs, 
117290000Sglebius# configdirs, or target_configdirs; see the serialization section below.
118290000Sglebius
119290000Sglebius# Dependency sorting is only needed when *configuration* must be done in 
120290000Sglebius# a particular order.  In all cases a dependency should be specified in 
121290000Sglebius# the Makefile, whether or not it's implicitly specified here.
122290000Sglebius
123290000Sglebius# Double entries in build_configdirs, configdirs, or target_configdirs may
124290000Sglebius# cause circular dependencies and break everything horribly.
125290000Sglebius
126290000Sglebius# these library is used by various programs built for the build
127290000Sglebius# environment
128290000Sglebius#
129290000Sglebiusbuild_libs="build-libiberty"
130290000Sglebius
131290000Sglebius# these tools are built for the build environment
132290000Sglebiusbuild_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
133290000Sglebius
134290000Sglebius# these libraries are used by various programs built for the host environment
135290000Sglebius#
136290000Sglebiushost_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl cloog libelf libiconv"
137290000Sglebius
138290000Sglebius# these tools are built for the host environment
139290000Sglebius# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
140290000Sglebius# know that we are building the simulator.
141290000Sglebius# binutils, gas and ld appear in that order because it makes sense to run
142290000Sglebius# "make check" in that particular order.
143290000Sglebius# If --enable-gold is used, "gold" may replace "ld".
144290000Sglebiushost_tools="flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
145290000Sglebius
146290000Sglebius# libgcj represents the runtime libraries only used by gcj.
147290000Sglebiuslibgcj="target-libffi \
148290000Sglebius	target-zlib \
149290000Sglebius	target-libjava"
150290000Sglebius
151290000Sglebius# these libraries are built for the target environment, and are built after
152290000Sglebius# the host libraries and the host tools (which may be a cross compiler)
153290000Sglebius# Note that libiberty is not a target library.
154290000Sglebiustarget_libraries="target-libgcc \
155290000Sglebius		target-libbacktrace \
156290000Sglebius		target-libgloss \
157290000Sglebius		target-newlib \
158290000Sglebius		target-libgomp \
159290000Sglebius		target-libcilkrts \
160290000Sglebius		target-libatomic \
161290000Sglebius		target-libitm \
162290000Sglebius		target-libstdc++-v3 \
163290000Sglebius		target-libsanitizer \
164290000Sglebius		target-libvtv \
165290000Sglebius		target-libssp \
166290000Sglebius		target-libquadmath \
167290000Sglebius		target-libgfortran \
168290000Sglebius		target-boehm-gc \
169290000Sglebius		${libgcj} \
170290000Sglebius		target-libobjc \
171290000Sglebius		target-libada \
172290000Sglebius		target-libgo"
173290000Sglebius
174290000Sglebius# these tools are built using the target libraries, and are intended to
175290000Sglebius# run only in the target environment
176290000Sglebius#
177290000Sglebius# note: any program that *uses* libraries that are in the "target_libraries"
178290000Sglebius# list belongs in this list.
179290000Sglebius#
180290000Sglebiustarget_tools="target-rda"
181290000Sglebius
182290000Sglebius################################################################################
183290000Sglebius
184290000Sglebius## All tools belong in one of the four categories, and are assigned above
185290000Sglebius## We assign ${configdirs} this way to remove all embedded newlines.  This
186290000Sglebius## is important because configure will choke if they ever get through.
187290000Sglebius## ${configdirs} is directories we build using the host tools.
188290000Sglebius## ${target_configdirs} is directories we build using the target tools.
189290000Sglebiusconfigdirs=`echo ${host_libs} ${host_tools}`
190290000Sglebiustarget_configdirs=`echo ${target_libraries} ${target_tools}`
191290000Sglebiusbuild_configdirs=`echo ${build_libs} ${build_tools}`
192290000Sglebius
193290000Sglebiusm4_divert_text([PARSE_ARGS],
194290000Sglebius[case $srcdir in
195290000Sglebius  *" "*)
196290000Sglebiusm4_pushdef([AS_MESSAGE_LOG_FD], [])dnl
197290000Sglebius    AC_MSG_ERROR([path to source, $srcdir, contains spaces])
198290000Sglebiusm4_popdef([AS_MESSAGE_LOG_FD])dnl
199290000Sglebius    ;;
200290000Sglebiusesac
201290000Sglebiusac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
202290000Sglebius])
203290000Sglebius
204290000Sglebius################################################################################
205290000Sglebius
206290000Sglebiussrcname="gnu development package"
207290000Sglebius
208290000Sglebius# This gets set non-empty for some net releases of packages.
209290000Sglebiusappdirs=""
210290000Sglebius
211290000Sglebius# Define is_cross_compiler to save on calls to 'test'.
212290000Sglebiusis_cross_compiler=
213290000Sglebiusif test x"${host}" = x"${target}" ; then
214290000Sglebius  is_cross_compiler=no
215290000Sglebiuselse
216290000Sglebius  is_cross_compiler=yes
217290000Sglebiusfi	
218290000Sglebius
219290000Sglebius# Find the build and target subdir names.
220290000SglebiusGCC_TOPLEV_SUBDIRS
221290000Sglebius# Be sure to cover against remnants of an in-tree build.
222290000Sglebiusif test $srcdir != .  && test -d $srcdir/host-${host_noncanonical}; then
223290000Sglebius  AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
224290000SglebiusUse a pristine source tree when building in a separate tree])
225290000Sglebiusfi
226290000Sglebius
227290000Sglebius# Skipdirs are removed silently.
228290000Sglebiusskipdirs=
229290000Sglebius# Noconfigdirs are removed loudly.
230290000Sglebiusnoconfigdirs=""
231290000Sglebius
232290000Sglebiususe_gnu_ld=
233290000Sglebius# Make sure we don't let GNU ld be added if we didn't want it.
234290000Sglebiusif test x$with_gnu_ld = xno ; then
235290000Sglebius  use_gnu_ld=no
236290000Sglebius  noconfigdirs="$noconfigdirs ld gold"
237290000Sglebiusfi
238290000Sglebius
239290000Sglebiususe_gnu_as=
240290000Sglebius# Make sure we don't let GNU as be added if we didn't want it.
241290000Sglebiusif test x$with_gnu_as = xno ; then
242290000Sglebius  use_gnu_as=no
243290000Sglebius  noconfigdirs="$noconfigdirs gas"
244290000Sglebiusfi
245290000Sglebius
246290000Sglebiususe_included_zlib=
247290000Sglebius# Make sure we don't let ZLIB be added if we didn't want it.
248290000Sglebiusif test x$with_system_zlib = xyes ; then
249290000Sglebius  use_included_zlib=no
250290000Sglebius  noconfigdirs="$noconfigdirs zlib"
251290000Sglebiusfi
252290000Sglebius
253290000Sglebius# some tools are so dependent upon X11 that if we're not building with X, 
254290000Sglebius# it's not even worth trying to configure, much less build, that tool.
255290000Sglebius
256290000Sglebiuscase ${with_x} in
257290000Sglebius  yes | "") ;; # the default value for this tree is that X11 is available
258290000Sglebius  no)
259290000Sglebius    skipdirs="${skipdirs} tk itcl libgui"
260290000Sglebius    # We won't be able to build gdbtk without X.
261290000Sglebius    enable_gdbtk=no 
262290000Sglebius    ;;
263290000Sglebius  *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
264290000Sglebiusesac
265290000Sglebius
266290000Sglebius# Some are only suitable for cross toolchains.
267290000Sglebius# Remove these if host=target.
268290000Sglebiuscross_only="target-libgloss target-newlib target-opcodes"
269290000Sglebius
270290000Sglebiuscase $is_cross_compiler in
271290000Sglebius  no) skipdirs="${skipdirs} ${cross_only}" ;;
272290000Sglebiusesac
273290000Sglebius
274290000Sglebius# If both --with-headers and --with-libs are specified, default to
275290000Sglebius# --without-newlib.
276290000Sglebiusif test x"${with_headers}" != x && test x"${with_headers}" != xno \
277290000Sglebius   && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
278290000Sglebius  if test x"${with_newlib}" = x ; then
279290000Sglebius    with_newlib=no
280290000Sglebius  fi
281290000Sglebiusfi
282290000Sglebius
283290000Sglebius# Recognize --with-newlib/--without-newlib.
284290000Sglebiuscase ${with_newlib} in
285290000Sglebius  no) skipdirs="${skipdirs} target-newlib" ;;
286290000Sglebius  yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
287290000Sglebiusesac
288290000Sglebius
289290000Sglebius# Handle --enable-gold, --enable-ld.
290290000Sglebius# --disable-gold [--enable-ld]
291290000Sglebius#     Build only ld.  Default option.
292290000Sglebius# --enable-gold [--enable-ld]
293290000Sglebius#     Build both gold and ld.  Install gold as "ld.gold", install ld
294290000Sglebius#     as "ld.bfd" and "ld".
295290000Sglebius# --enable-gold=default [--enable-ld]
296290000Sglebius#     Build both gold and ld.  Install gold as "ld.gold" and "ld",
297290000Sglebius#     install ld as "ld.bfd".
298290000Sglebius# --enable-gold[=default] --disable-ld
299290000Sglebius#     Build only gold, which is then installed as both "ld.gold" and "ld".
300290000Sglebius# --enable-gold --enable-ld=default
301290000Sglebius#     Build both gold (installed as "ld.gold") and ld (installed as "ld"
302290000Sglebius#     and ld.bfd).
303290000Sglebius#     In other words, ld is default
304290000Sglebius# --enable-gold=default --enable-ld=default
305290000Sglebius#     Error.
306290000Sglebius
307290000Sglebiusdefault_ld=
308290000SglebiusAC_ARG_ENABLE(gold,
309290000Sglebius[AS_HELP_STRING([[--enable-gold[=ARG]]],
310290000Sglebius		[build gold @<:@ARG={default,yes,no}@:>@])],
311290000SglebiusENABLE_GOLD=$enableval,
312290000SglebiusENABLE_GOLD=no)
313290000Sglebiuscase "${ENABLE_GOLD}" in
314290000Sglebius  yes|default)
315290000Sglebius    # Check for ELF target.
316290000Sglebius    is_elf=no
317290000Sglebius    case "${target}" in
318290000Sglebius      *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
319290000Sglebius      | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
320290000Sglebius      | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
321290000Sglebius      | *-*-solaris2* | *-*-nto* | *-*-nacl*)
322290000Sglebius        case "${target}" in
323290000Sglebius          *-*-linux*aout* | *-*-linux*oldld*)
324290000Sglebius            ;;
325290000Sglebius          *)
326290000Sglebius            is_elf=yes
327290000Sglebius            ;;
328290000Sglebius        esac
329290000Sglebius    esac
330290000Sglebius
331290000Sglebius    if test "$is_elf" = "yes"; then
332290000Sglebius      # Check for target supported by gold.
333290000Sglebius      case "${target}" in
334290000Sglebius        i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
335290000Sglebius        | aarch64*-*-* | tilegx*-*-*)
336290000Sglebius	  configdirs="$configdirs gold"
337290000Sglebius	  if test x${ENABLE_GOLD} = xdefault; then
338290000Sglebius	    default_ld=gold
339290000Sglebius	  fi
340290000Sglebius	  ENABLE_GOLD=yes
341290000Sglebius          ;;
342290000Sglebius      esac
343290000Sglebius    fi
344290000Sglebius    ;;
345290000Sglebius  no)
346290000Sglebius    ;;
347290000Sglebius  *)
348290000Sglebius    AC_MSG_ERROR([invalid --enable-gold argument])
349290000Sglebius    ;;
350290000Sglebiusesac
351290000Sglebius
352290000SglebiusAC_ARG_ENABLE(ld,
353290000Sglebius[AS_HELP_STRING([[--enable-ld[=ARG]]],
354290000Sglebius		[build ld @<:@ARG={default,yes,no}@:>@])],
355290000SglebiusENABLE_LD=$enableval,
356290000SglebiusENABLE_LD=yes)
357290000Sglebius
358290000Sglebiuscase "${ENABLE_LD}" in
359290000Sglebius  default)
360290000Sglebius    if test x${default_ld} != x; then
361290000Sglebius      AC_MSG_ERROR([either gold or ld can be the default ld])
362290000Sglebius    fi
363290000Sglebius    ;;
364290000Sglebius  yes)
365290000Sglebius    ;;
366290000Sglebius  no)
367290000Sglebius    if test x${ENABLE_GOLD} != xyes; then
368290000Sglebius      AC_MSG_WARN([neither ld nor gold are enabled])
369290000Sglebius    fi
370290000Sglebius    configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'`
371290000Sglebius    ;;
372290000Sglebius  *)
373290000Sglebius    AC_MSG_ERROR([invalid --enable-ld argument])
374290000Sglebius    ;;
375290000Sglebiusesac
376290000Sglebius
377290000Sglebius# Configure extra directories which are host specific
378290000Sglebius
379290000Sglebiuscase "${host}" in
380290000Sglebius  *-cygwin*)
381290000Sglebius    configdirs="$configdirs libtermcap" ;;
382290000Sglebiusesac
383290000Sglebius
384290000Sglebius# A target can indicate whether a language isn't supported for some reason.
385290000Sglebius# Only spaces may be used in this macro; not newlines or tabs.
386290000Sglebiusunsupported_languages=
387290000Sglebius
388290000Sglebius# Remove more programs from consideration, based on the host or 
389290000Sglebius# target this usually means that a port of the program doesn't
390290000Sglebius# exist yet.
391290000Sglebius
392290000Sglebiuscase "${host}" in
393290000Sglebius  i[[3456789]]86-*-msdosdjgpp*)
394290000Sglebius    noconfigdirs="$noconfigdirs tcl tk itcl"
395290000Sglebius    ;;
396290000Sglebiusesac
397290000Sglebius
398290000Sglebius
399290000SglebiusAC_ARG_ENABLE(libquadmath,
400290000SglebiusAS_HELP_STRING([--disable-libquadmath],
401290000Sglebius  [do not build libquadmath directory]),
402290000SglebiusENABLE_LIBQUADMATH=$enableval,
403290000SglebiusENABLE_LIBQUADMATH=yes)
404290000Sglebiusif test "${ENABLE_LIBQUADMATH}" = "no" ; then
405290000Sglebius  noconfigdirs="$noconfigdirs target-libquadmath"
406290000Sglebiusfi
407290000Sglebius
408290000Sglebius
409290000SglebiusAC_ARG_ENABLE(libquadmath-support,
410290000SglebiusAS_HELP_STRING([--disable-libquadmath-support],
411290000Sglebius  [disable libquadmath support for Fortran]),
412290000SglebiusENABLE_LIBQUADMATH_SUPPORT=$enableval,
413290000SglebiusENABLE_LIBQUADMATH_SUPPORT=yes)
414290000Sglebiusenable_libquadmath_support=
415290000Sglebiusif test "${ENABLE_LIBQUADMATH_SUPPORT}" = "no" ; then
416290000Sglebius  enable_libquadmath_support=no
417290000Sglebiusfi
418290000Sglebius
419290000Sglebius
420290000SglebiusAC_ARG_ENABLE(libada,
421290000Sglebius[AS_HELP_STRING([--enable-libada], [build libada directory])],
422290000SglebiusENABLE_LIBADA=$enableval,
423290000SglebiusENABLE_LIBADA=yes)
424290000Sglebiusif test "${ENABLE_LIBADA}" != "yes" ; then
425290000Sglebius  noconfigdirs="$noconfigdirs gnattools"
426290000Sglebiusfi
427290000Sglebius
428290000SglebiusAC_ARG_ENABLE(libssp,
429290000Sglebius[AS_HELP_STRING([--enable-libssp], [build libssp directory])],
430290000SglebiusENABLE_LIBSSP=$enableval,
431290000SglebiusENABLE_LIBSSP=yes)
432290000Sglebius
433290000SglebiusAC_ARG_ENABLE(libstdcxx,
434290000SglebiusAS_HELP_STRING([--disable-libstdcxx],
435290000Sglebius  [do not build libstdc++-v3 directory]),
436290000SglebiusENABLE_LIBSTDCXX=$enableval,
437290000SglebiusENABLE_LIBSTDCXX=default)
438290000Sglebius[if test "${ENABLE_LIBSTDCXX}" = "no" ; then
439290000Sglebius  noconfigdirs="$noconfigdirs libstdc++-v3"
440290000Sglebiusfi]
441290000Sglebius
442290000Sglebius# Save it here so that, even in case of --enable-libgcj, if the Java
443290000Sglebius# front-end isn't enabled, we still get libgcj disabled.
444290000Sglebiuslibgcj_saved=$libgcj
445290000Sglebiuscase $enable_libgcj in
446290000Sglebiusyes)
447290000Sglebius  # If we reset it here, it won't get added to noconfigdirs in the
448290000Sglebius  # target-specific build rules, so it will be forcibly enabled
449290000Sglebius  # (unless the Java language itself isn't enabled).
450290000Sglebius  libgcj=
451290000Sglebius  ;;
452290000Sglebiusno)
453290000Sglebius  # Make sure we get it printed in the list of not supported target libs.
454290000Sglebius  # Don't disable libffi, though, other languages use it.
455290000Sglebius  noconfigdirs="$noconfigdirs `echo ${libgcj} | sed -e 's/target-libffi//'`"
456290000Sglebius  # Clear libgcj_saved so that even if java is enabled libffi won't be
457290000Sglebius  # built.
458290000Sglebius  libgcj_saved=
459290000Sglebius  ;;
460290000Sglebiusesac
461290000Sglebius
462290000SglebiusAC_ARG_ENABLE(static-libjava,
463290000Sglebius[AS_HELP_STRING([[--enable-static-libjava[=ARG]]],
464290000Sglebius		[build static libjava @<:@default=no@:>@])],
465290000SglebiusENABLE_STATIC_LIBJAVA=$enableval,
466290000SglebiusENABLE_STATIC_LIBJAVA=no)
467290000Sglebiusenable_static_libjava=
468290000Sglebiusif test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then
469290000Sglebius  enable_static_libjava=yes
470290000Sglebiusfi
471290000Sglebius
472290000Sglebiusif test x$enable_static_libjava != xyes ; then
473290000Sglebius  EXTRA_CONFIGARGS_LIBJAVA=--disable-static
474290000Sglebiusfi
475290000SglebiusAC_SUBST(EXTRA_CONFIGARGS_LIBJAVA)
476290000Sglebius
477290000Sglebius# Disable libgomp on non POSIX hosted systems.
478290000Sglebiusif test x$enable_libgomp = x ; then
479290000Sglebius    # Enable libgomp by default on hosted POSIX systems.
480290000Sglebius    case "${target}" in
481290000Sglebius    *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
482290000Sglebius	;;
483290000Sglebius    *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
484290000Sglebius	;;
485290000Sglebius    *-*-solaris2* | *-*-hpux11*)
486290000Sglebius	;;
487290000Sglebius    *-*-darwin* | *-*-aix*)
488290000Sglebius	;;
489290000Sglebius    *)
490290000Sglebius	noconfigdirs="$noconfigdirs target-libgomp"
491290000Sglebius	;;
492290000Sglebius    esac
493290000Sglebiusfi
494290000Sglebius
495290000Sglebius# Disable libatomic on unsupported systems.
496290000Sglebiusif test -d ${srcdir}/libatomic; then
497290000Sglebius    if test x$enable_libatomic = x; then
498290000Sglebius	AC_MSG_CHECKING([for libatomic support])
499290000Sglebius	if (srcdir=${srcdir}/libatomic; \
500290000Sglebius		. ${srcdir}/configure.tgt; \
501290000Sglebius		test -n "$UNSUPPORTED")
502290000Sglebius	then
503290000Sglebius	    AC_MSG_RESULT([no])
504290000Sglebius	    noconfigdirs="$noconfigdirs target-libatomic"
505290000Sglebius	else
506290000Sglebius	    AC_MSG_RESULT([yes])
507290000Sglebius	fi
508290000Sglebius    fi
509290000Sglebiusfi
510290000Sglebius
511290000Sglebius# Disable libcilkrts on unsupported systems.
512290000Sglebiusif test -d ${srcdir}/libcilkrts; then
513290000Sglebius    if test x$enable_libcilkrts = x; then
514290000Sglebius	AC_MSG_CHECKING([for libcilkrts support])
515290000Sglebius	if (srcdir=${srcdir}/libcilkrts; \
516290000Sglebius		. ${srcdir}/configure.tgt; \
517290000Sglebius		test -n "$UNSUPPORTED")
518290000Sglebius	then
519290000Sglebius	    AC_MSG_RESULT([no])
520290000Sglebius	    noconfigdirs="$noconfigdirs target-libcilkrts"
521290000Sglebius	else
522290000Sglebius	    AC_MSG_RESULT([yes])
523290000Sglebius	fi
524290000Sglebius    fi
525290000Sglebiusfi
526290000Sglebius
527290000Sglebius# Disable libitm on unsupported systems.
528290000Sglebiusif test -d ${srcdir}/libitm; then
529290000Sglebius    if test x$enable_libitm = x; then
530290000Sglebius	AC_MSG_CHECKING([for libitm support])
531290000Sglebius	if (srcdir=${srcdir}/libitm; \
532290000Sglebius		. ${srcdir}/configure.tgt; \
533290000Sglebius		test -n "$UNSUPPORTED")
534290000Sglebius	then
535290000Sglebius	    AC_MSG_RESULT([no])
536290000Sglebius	    noconfigdirs="$noconfigdirs target-libitm"
537290000Sglebius	else
538290000Sglebius	    AC_MSG_RESULT([yes])
539290000Sglebius	fi
540290000Sglebius    fi
541290000Sglebiusfi
542290000Sglebius
543290000Sglebius# Disable libsanitizer on unsupported systems.
544290000Sglebiusif test -d ${srcdir}/libsanitizer; then
545290000Sglebius    if test x$enable_libsanitizer = x; then
546290000Sglebius	AC_MSG_CHECKING([for libsanitizer support])
547290000Sglebius	if (srcdir=${srcdir}/libsanitizer; \
548290000Sglebius		. ${srcdir}/configure.tgt; \
549290000Sglebius		test -n "$UNSUPPORTED")
550290000Sglebius	then
551290000Sglebius	    AC_MSG_RESULT([no])
552290000Sglebius	    noconfigdirs="$noconfigdirs target-libsanitizer"
553290000Sglebius	else
554290000Sglebius	    AC_MSG_RESULT([yes])
555290000Sglebius	fi
556290000Sglebius    fi
557290000Sglebiusfi
558290000Sglebius
559290000Sglebius# Disable libvtv on unsupported systems.
560290000Sglebiusif test -d ${srcdir}/libvtv; then
561290000Sglebius    if test x$enable_libvtv = x; then
562290000Sglebius	AC_MSG_CHECKING([for libvtv support])
563290000Sglebius	if (srcdir=${srcdir}/libvtv; \
564290000Sglebius		. ${srcdir}/configure.tgt; \
565290000Sglebius		test "$VTV_SUPPORTED" != "yes")
566290000Sglebius	then
567290000Sglebius	    AC_MSG_RESULT([no])
568290000Sglebius	    noconfigdirs="$noconfigdirs target-libvtv"
569290000Sglebius	else
570290000Sglebius	    AC_MSG_RESULT([yes])
571290000Sglebius	fi
572290000Sglebius    fi
573290000Sglebiusfi
574290000Sglebius
575290000Sglebius# Disable libquadmath for some systems.
576290000Sglebiuscase "${target}" in
577290000Sglebius  avr-*-*)
578290000Sglebius    noconfigdirs="$noconfigdirs target-libquadmath"
579290000Sglebius    ;;
580290000Sglebius  # libquadmath is unused on AIX and libquadmath build process use of
581290000Sglebius  # LD_LIBRARY_PATH can break AIX bootstrap.
582290000Sglebius  powerpc-*-aix* | rs6000-*-aix*)
583290000Sglebius    noconfigdirs="$noconfigdirs target-libquadmath"
584290000Sglebius    ;;
585290000Sglebiusesac
586290000Sglebius
587290000Sglebius# Disable libssp for some systems.
588290000Sglebiuscase "${target}" in
589290000Sglebius  avr-*-*)
590290000Sglebius    # No hosted I/O support.
591290000Sglebius    noconfigdirs="$noconfigdirs target-libssp"
592290000Sglebius    ;;
593290000Sglebius  powerpc-*-aix* | rs6000-*-aix*)
594290000Sglebius    noconfigdirs="$noconfigdirs target-libssp"
595290000Sglebius    ;;
596290000Sglebius  rl78-*-*)
597290000Sglebius    # libssp uses a misaligned load to trigger a fault, but the RL78
598290000Sglebius    # doesn't fault for those - instead, it gives a build-time error
599290000Sglebius    # for explicit misaligned loads.
600290000Sglebius    noconfigdirs="$noconfigdirs target-libssp"
601290000Sglebius    ;;
602290000Sglebiusesac
603290000Sglebius
604290000Sglebius# Disable libstdc++-v3 for some systems.
605290000Sglebius# Allow user to override this if they pass --enable-libstdc++-v3
606290000Sglebiusif test "${ENABLE_LIBSTDCXX}" = "default" ; then
607290000Sglebius  case "${target}" in
608290000Sglebius    *-*-vxworks*)
609290000Sglebius      # VxWorks uses the Dinkumware C++ library.
610290000Sglebius      noconfigdirs="$noconfigdirs target-libstdc++-v3"
611290000Sglebius      ;;
612290000Sglebius    arm*-wince-pe*)
613290000Sglebius      # the C++ libraries don't build on top of CE's C libraries
614290000Sglebius      noconfigdirs="$noconfigdirs target-libstdc++-v3"
615290000Sglebius      ;;
616    avr-*-*)
617      noconfigdirs="$noconfigdirs target-libstdc++-v3"
618      ;;
619  esac
620fi
621
622# Disable Fortran for some systems.
623case "${target}" in
624  mmix-*-*)
625    # See <http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00572.html>.
626    unsupported_languages="$unsupported_languages fortran"
627    ;;
628esac
629
630# Disable Java if libffi is not supported.
631case "${target}" in
632  aarch64-*-*)
633    ;;
634  alpha*-*-*)
635    ;;
636  arm*-*-*)
637    ;;
638  cris-*-*)
639    ;;
640  frv-*-*)
641    ;;
642  hppa*-*-linux*)
643    ;;
644  hppa*-*-hpux*)
645    ;;
646  i?86-*-*)
647    ;;
648  ia64*-*-*)
649    ;;
650  m32r*-*-*)
651    ;;
652  m68k-*-*)
653    ;;
654  mips*-*-rtems*)
655    ;;
656  mips*-*-linux*)
657    ;;
658  powerpc*-*-linux*)
659    ;;
660  powerpc-*-darwin*)
661    ;;
662  powerpc-*-aix* | rs6000-*-aix*)
663    ;;
664  powerpc-*-freebsd*)
665    ;;
666  powerpc64-*-freebsd*)
667    ;;
668  powerpc*-*-rtems*)
669    ;;
670  s390-*-* | s390x-*-*)
671    ;;
672  sh-*-* | sh[[34]]*-*-*)
673    ;;
674  sh64-*-* | sh5*-*-*)
675    ;;
676  sparc*-*-*)
677    ;;
678  x86_64-*-*)
679    ;;
680  *-*-*)
681    unsupported_languages="$unsupported_languages java"
682    ;;
683esac
684
685# Disable Java, libgcj or related libraries for some systems.
686case "${target}" in
687  powerpc-*-darwin*)
688    ;;
689  i[[3456789]]86-*-darwin*)
690    ;;
691  x86_64-*-darwin[[912]]*)
692    ;;
693  *-*-darwin*)
694    noconfigdirs="$noconfigdirs ${libgcj}"
695    ;;
696  *-*-netware*)
697    noconfigdirs="$noconfigdirs ${libgcj}"
698    ;;
699  *-*-rtems*)
700    noconfigdirs="$noconfigdirs ${libgcj}"
701    ;;
702  *-*-tpf*)
703    noconfigdirs="$noconfigdirs ${libgcj}"
704    ;;
705  *-*-uclinux*)
706    noconfigdirs="$noconfigdirs ${libgcj}"
707    ;;
708  *-*-vxworks*)
709    noconfigdirs="$noconfigdirs ${libgcj}"
710    ;;
711  alpha*-*-*vms*)
712    noconfigdirs="$noconfigdirs ${libgcj}"
713    ;;
714  arm-wince-pe)
715    noconfigdirs="$noconfigdirs ${libgcj}"
716    ;;
717  arm*-*-symbianelf*)
718    noconfigdirs="$noconfigdirs ${libgcj}"
719    ;;
720  bfin-*-*)
721    noconfigdirs="$noconfigdirs target-boehm-gc"
722    ;;
723  cris-*-* | crisv32-*-*)
724    unsupported_languages="$unsupported_languages java"
725    case "${target}" in
726      *-*-linux*)
727	;;
728      *) # See PR46792 regarding target-libffi.
729	noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
730    esac
731    ;;
732  hppa*64*-*-linux*)
733    # In this case, it's because the hppa64-linux target is for
734    # the kernel only at this point and has no libc, and thus no
735    # headers, crt*.o, etc., all of which are needed by these.
736    unsupported_languages="$unsupported_languages java"
737    ;;
738  hppa*64*-*-hpux*)
739    noconfigdirs="$noconfigdirs ${libgcj}"
740    ;;
741  hppa*-hp-hpux11*)
742    ;;
743  hppa*-*-hpux*)
744    # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
745    # build on HP-UX 10.20.
746    noconfigdirs="$noconfigdirs ${libgcj}"
747    ;;
748  ia64*-*-*vms*)
749    noconfigdirs="$noconfigdirs ${libgcj}"
750    ;;
751  i[[3456789]]86-w64-mingw*)
752    noconfigdirs="$noconfigdirs ${libgcj}"
753    ;;
754  i[[3456789]]86-*-mingw*)
755    noconfigdirs="$noconfigdirs ${libgcj}"
756    ;;
757  x86_64-*-mingw*)
758    noconfigdirs="$noconfigdirs ${libgcj}"
759    ;;
760  mmix-*-*)
761    noconfigdirs="$noconfigdirs target-libffi target-boehm-gc"
762    ;;
763  powerpc-*-aix*)
764    # copied from rs6000-*-* entry
765    noconfigdirs="$noconfigdirs ${libgcj}"
766    ;;
767  rs6000-*-aix*)
768    noconfigdirs="$noconfigdirs ${libgcj}"
769    ;;
770  *-*-lynxos*)
771    noconfigdirs="$noconfigdirs ${libgcj}"
772    ;; 
773esac
774
775# Disable libgo for some systems where it is known to not work.
776# For testing, you can easily override this with --enable-libgo.
777if test x$enable_libgo = x; then
778    case "${target}" in
779    *-*-darwin*)
780	# PR 46986
781	noconfigdirs="$noconfigdirs target-libgo"
782	;;
783    *-*-cygwin* | *-*-mingw*)
784	noconfigdirs="$noconfigdirs target-libgo"
785	;;
786    *-*-aix*)
787	noconfigdirs="$noconfigdirs target-libgo"
788	;;
789    esac
790fi
791
792# Default libgloss CPU subdirectory.
793libgloss_dir="$target_cpu"
794
795case "${target}" in
796  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
797    libgloss_dir=wince
798    ;;
799  aarch64*-*-* )
800    libgloss_dir=aarch64
801    ;;
802  arm*-*-*)
803    libgloss_dir=arm
804    ;;
805  cris-*-* | crisv32-*-*)
806    libgloss_dir=cris
807    ;;
808  hppa*-*-*)
809    libgloss_dir=pa
810    ;;
811  i[[3456789]]86-*-*)
812    libgloss_dir=i386
813    ;;
814  m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
815    libgloss_dir=m68hc11
816    ;;
817  m68*-*-* | fido-*-*)
818    libgloss_dir=m68k
819    ;;
820  mips*-*-*)
821    libgloss_dir=mips
822    ;;
823  powerpc*-*-*)
824    libgloss_dir=rs6000
825    ;;
826  sparc*-*-*)
827    libgloss_dir=sparc
828    ;;
829esac
830
831# Disable newlib and libgloss for various target OSes.
832case "${target}" in
833  alpha*-dec-osf*)
834    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
835    ;;
836  i[[3456789]]86-*-linux*)
837    # This section makes it possible to build newlib natively on linux.
838    # If we are using a cross compiler then don't configure newlib.
839    if test x${is_cross_compiler} != xno ; then
840      noconfigdirs="$noconfigdirs target-newlib"
841    fi
842    noconfigdirs="$noconfigdirs target-libgloss"
843    # If we are not using a cross compiler, do configure newlib.
844    # Note however, that newlib will only be configured in this situation
845    # if the --with-newlib option has been given, because otherwise
846    # 'target-newlib' will appear in skipdirs.
847    ;;
848  i[[3456789]]86-*-rdos*)
849    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
850    ;;
851  sh*-*-pe|mips*-*-pe|arm-wince-pe)
852    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
853    ;;
854  sparc-*-sunos4*)
855    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
856    ;;
857  *-*-aix*)
858    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
859    ;;
860  *-*-beos*)
861    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
862    ;;
863  *-*-chorusos)
864    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
865    ;;
866  *-*-dragonfly*)
867    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
868    ;;
869  *-*-freebsd*)
870    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
871    ;;
872  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
873    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
874    ;;
875  *-*-lynxos*)
876    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
877    ;; 
878  *-*-mingw*)
879    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
880    ;;
881  *-*-netbsd*)
882    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
883    ;;
884  *-*-netware*)
885    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
886    ;;
887  *-*-tpf*)
888    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
889    ;;
890  *-*-uclinux*)
891    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
892    ;;
893  *-*-vxworks*)
894    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
895    ;;
896esac
897
898case "${target}" in
899  *-*-chorusos)
900    ;;
901  powerpc-*-darwin*)
902    noconfigdirs="$noconfigdirs ld gas gdb gprof"
903    noconfigdirs="$noconfigdirs sim target-rda"
904    ;;
905  i[[3456789]]86-*-darwin*)
906    noconfigdirs="$noconfigdirs ld gprof"
907    noconfigdirs="$noconfigdirs sim target-rda"
908    ;;
909  x86_64-*-darwin[[912]]*)
910    noconfigdirs="$noconfigdirs ld gas gprof"
911    noconfigdirs="$noconfigdirs sim target-rda"
912    ;;
913  *-*-darwin*)
914    noconfigdirs="$noconfigdirs ld gas gdb gprof"
915    noconfigdirs="$noconfigdirs sim target-rda"
916    ;;
917  *-*-dragonfly*)
918    ;;
919  *-*-freebsd*)
920    if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
921	&& test -f /usr/local/include/gmp.h; then
922      with_gmp=/usr/local
923    fi
924    ;;
925  *-*-kaos*)
926    # Remove unsupported stuff on all kaOS configurations.
927    noconfigdirs="$noconfigdirs target-libgloss"
928    ;;
929  *-*-netbsd*)
930    ;;
931  *-*-netware*)
932    ;;
933  *-*-rtems*)
934    noconfigdirs="$noconfigdirs target-libgloss"
935    # this is not caught below because this stanza matches earlier
936    case $target in
937      or1k*-*-*) noconfigdirs="$noconfigdirs gdb" ;;
938    esac
939    ;;
940    # The tpf target doesn't support gdb yet.
941  *-*-tpf*)
942    noconfigdirs="$noconfigdirs gdb tcl tk libgui itcl"
943    ;;
944  *-*-uclinux*)
945    noconfigdirs="$noconfigdirs target-rda"
946    ;;
947  *-*-vxworks*)
948    ;;
949  alpha*-dec-osf*)
950    # ld works, but does not support shared libraries.
951    # gas doesn't generate exception information.
952    noconfigdirs="$noconfigdirs gas ld"
953    ;;
954  alpha*-*-*vms*)
955    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
956    ;;
957  alpha*-*-*)
958    # newlib is not 64 bit ready
959    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
960    ;;
961  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
962    noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
963    ;;
964  arc-*-*|arceb-*-*)
965    noconfigdirs="$noconfigdirs target-libgloss"
966    ;;
967  arm-*-pe*)
968    noconfigdirs="$noconfigdirs target-libgloss"
969    ;;
970  arm-*-riscix*)
971    noconfigdirs="$noconfigdirs ld target-libgloss"
972    ;;
973  avr-*-rtems*)
974    ;;
975  avr-*-*)
976    if test x${with_avrlibc} != xno; then
977      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
978    fi
979    ;;
980  c4x-*-* | tic4x-*-*)
981    noconfigdirs="$noconfigdirs target-libgloss"
982    ;;
983  tic54x-*-*)
984    noconfigdirs="$noconfigdirs target-libgloss gdb"
985    ;;
986  d10v-*-*)
987    noconfigdirs="$noconfigdirs target-libgloss"
988    ;;
989  d30v-*-*)
990    noconfigdirs="$noconfigdirs gdb"
991    ;;
992  fr30-*-elf*)
993    noconfigdirs="$noconfigdirs gdb"
994    ;;
995  moxie-*-*)
996    noconfigdirs="$noconfigdirs gprof"
997    ;;
998  h8300*-*-*)
999    noconfigdirs="$noconfigdirs target-libgloss"
1000    ;;
1001  h8500-*-*)
1002    noconfigdirs="$noconfigdirs target-libgloss"
1003    ;;
1004  hppa1.1-*-osf* | hppa1.1-*-bsd* )
1005    ;;
1006  hppa*64*-*-linux*)
1007    ;;
1008  hppa*-*-linux*)
1009    ;;
1010  hppa*-*-*elf* | \
1011  hppa*-*-lites* | \
1012  hppa*-*-openbsd* | \
1013  hppa*64*-*-*)
1014    ;;
1015  hppa*-hp-hpux11*)
1016    noconfigdirs="$noconfigdirs ld"
1017    ;;
1018  hppa*-*-pro*)
1019    ;;
1020  hppa*-*-*)
1021    noconfigdirs="$noconfigdirs ld"
1022    ;;
1023  i960-*-*)
1024    noconfigdirs="$noconfigdirs gdb"
1025    ;;
1026  ia64*-*-elf*)
1027    # No gdb support yet.
1028    noconfigdirs="$noconfigdirs readline libgui itcl gdb"
1029    ;;
1030  ia64*-**-hpux*)
1031    # No ld support yet.
1032    noconfigdirs="$noconfigdirs libgui itcl ld"
1033    ;;
1034  ia64*-*-*vms*)
1035    # No ld support yet.
1036    noconfigdirs="$noconfigdirs libgui itcl ld"
1037    ;;
1038  i[[3456789]]86-w64-mingw*)
1039    ;;
1040  i[[3456789]]86-*-mingw*)
1041    target_configdirs="$target_configdirs target-winsup"
1042    ;;
1043  *-*-cygwin*)
1044    target_configdirs="$target_configdirs target-libtermcap target-winsup"
1045    noconfigdirs="$noconfigdirs target-libgloss"
1046    # always build newlib if winsup directory is present.
1047    if test -d "$srcdir/winsup/cygwin"; then
1048      skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
1049    elif test -d "$srcdir/newlib"; then
1050      echo "Warning: winsup/cygwin is missing so newlib can't be built."
1051    fi
1052    ;;
1053  i[[3456789]]86-*-pe)
1054    noconfigdirs="$noconfigdirs target-libgloss"
1055    ;;
1056  i[[3456789]]86-*-sco3.2v5*)
1057    # The linker does not yet know about weak symbols in COFF,
1058    # and is not configured to handle mixed ELF and COFF.
1059    noconfigdirs="$noconfigdirs ld target-libgloss"
1060    ;;
1061  i[[3456789]]86-*-sco*)
1062    noconfigdirs="$noconfigdirs gprof target-libgloss"
1063    ;;
1064  i[[3456789]]86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
1065    noconfigdirs="$noconfigdirs target-libgloss"
1066    ;;
1067  i[[3456789]]86-*-sysv4*)
1068    noconfigdirs="$noconfigdirs target-libgloss"
1069    ;;
1070  i[[3456789]]86-*-beos*)
1071    noconfigdirs="$noconfigdirs gdb"
1072    ;;
1073  i[[3456789]]86-*-rdos*)
1074    noconfigdirs="$noconfigdirs gdb"
1075    ;;
1076  mmix-*-*)
1077    noconfigdirs="$noconfigdirs gdb"
1078    ;;
1079  mt-*-*)
1080    noconfigdirs="$noconfigdirs sim"
1081    ;;
1082  powerpc-*-aix*)
1083    # copied from rs6000-*-* entry
1084    noconfigdirs="$noconfigdirs gprof"
1085    ;;
1086  powerpc*-*-winnt* | powerpc*-*-pe*)
1087    target_configdirs="$target_configdirs target-winsup"
1088    noconfigdirs="$noconfigdirs gdb tcl tk target-libgloss itcl"
1089    # always build newlib.
1090    skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
1091    ;;
1092    # This is temporary until we can link against shared libraries
1093  powerpcle-*-solaris*)
1094    noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
1095    ;;
1096  powerpc-*-beos*)
1097    noconfigdirs="$noconfigdirs gdb"
1098    ;;
1099  rs6000-*-lynxos*)
1100    noconfigdirs="$noconfigdirs gprof"
1101    ;;
1102  rs6000-*-aix*)
1103    noconfigdirs="$noconfigdirs gprof"
1104    ;;
1105  rs6000-*-*)
1106    noconfigdirs="$noconfigdirs gprof"
1107    ;;
1108  m68k-apollo-*)
1109    noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
1110    ;;
1111  microblaze*)
1112    noconfigdirs="$noconfigdirs gprof"
1113    ;;
1114  mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
1115    if test x$with_newlib = xyes; then
1116      noconfigdirs="$noconfigdirs gprof"
1117    fi
1118    ;;
1119  mips*-*-irix5*)
1120    noconfigdirs="$noconfigdirs gprof target-libgloss"
1121    ;;
1122  mips*-*-irix6*)
1123    noconfigdirs="$noconfigdirs gprof target-libgloss"
1124    ;;
1125  mips*-*-bsd*)
1126    noconfigdirs="$noconfigdirs ld gas gprof target-libgloss"
1127    ;;
1128  mips*-*-linux*)
1129    ;;
1130  mips*-*-ultrix* | mips*-*-osf* | mips*-*-ecoff* | mips*-*-pe* \
1131  | mips*-*-irix* | mips*-*-lnews* | mips*-*-riscos*)
1132    noconfigdirs="$noconfigdirs ld gas gprof"
1133    ;;
1134  mips*-*-*)
1135    noconfigdirs="$noconfigdirs gprof"
1136    ;;
1137  nds32*-*-*)
1138    noconfigdirs="$noconfigdirs gdb"
1139    ;;
1140  or1k*-*-*)
1141    noconfigdirs="$noconfigdirs gdb"
1142    ;;
1143  sh-*-* | sh64-*-*)
1144    case "${target}" in
1145      sh*-*-elf)
1146         ;;
1147      *)
1148         noconfigdirs="$noconfigdirs target-libgloss" ;;
1149    esac
1150    ;;
1151  sparc-*-sunos4*)
1152    if test x${is_cross_compiler} = xno ; then
1153           use_gnu_ld=no
1154    fi
1155    ;;
1156  tic6x-*-*)
1157    noconfigdirs="$noconfigdirs sim"
1158    ;;
1159  tilepro*-*-* | tilegx*-*-*)
1160    noconfigdirs="$noconfigdirs sim"
1161    ;;
1162  v810-*-*)
1163    noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
1164    ;;
1165  vax-*-*)
1166    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
1167    ;;
1168esac
1169
1170# If we aren't building newlib, then don't build libgloss, since libgloss
1171# depends upon some newlib header files.
1172case "${noconfigdirs}" in
1173  *target-libgloss*) ;;
1174  *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
1175esac
1176
1177# Work in distributions that contain no compiler tools, like Autoconf.
1178host_makefile_frag=/dev/null
1179if test -d ${srcdir}/config ; then
1180case "${host}" in
1181  i[[3456789]]86-*-msdosdjgpp*)
1182    host_makefile_frag="config/mh-djgpp"
1183    ;;
1184  *-cygwin*)
1185    ACX_CHECK_CYGWIN_CAT_WORKS
1186    host_makefile_frag="config/mh-cygwin"
1187    ;;
1188  *-mingw*)
1189    host_makefile_frag="config/mh-mingw"
1190    ;;
1191  hppa*-hp-hpux10*)
1192    host_makefile_frag="config/mh-pa-hpux10"
1193    ;;
1194  hppa*-hp-hpux*)
1195    host_makefile_frag="config/mh-pa"
1196    ;;
1197  hppa*-*)	
1198    host_makefile_frag="config/mh-pa"
1199    ;;
1200  *-*-darwin*)
1201    host_makefile_frag="config/mh-darwin"
1202    ;;
1203  powerpc-*-aix*)
1204    host_makefile_frag="config/mh-ppc-aix"
1205    ;;
1206  rs6000-*-aix*)
1207    host_makefile_frag="config/mh-ppc-aix"
1208    ;;
1209esac
1210fi
1211
1212if test "${build}" != "${host}" ; then
1213  AR_FOR_BUILD=${AR_FOR_BUILD-ar}
1214  AS_FOR_BUILD=${AS_FOR_BUILD-as}
1215  CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1216  CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1217  GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
1218  GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1219  GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
1220  DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1221  LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1222  NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1223  RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1224  WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1225  WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
1226else
1227  AR_FOR_BUILD="\$(AR)"
1228  AS_FOR_BUILD="\$(AS)"
1229  CC_FOR_BUILD="\$(CC)"
1230  CXX_FOR_BUILD="\$(CXX)"
1231  GCJ_FOR_BUILD="\$(GCJ)"
1232  GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1233  GOC_FOR_BUILD="\$(GOC)"
1234  DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1235  LD_FOR_BUILD="\$(LD)"
1236  NM_FOR_BUILD="\$(NM)"
1237  RANLIB_FOR_BUILD="\$(RANLIB)"
1238  WINDRES_FOR_BUILD="\$(WINDRES)"
1239  WINDMC_FOR_BUILD="\$(WINDMC)"
1240fi
1241
1242AC_PROG_CC
1243AC_PROG_CXX
1244
1245# We must set the default linker to the linker used by gcc for the correct
1246# operation of libtool.  If LD is not defined and we are using gcc, try to
1247# set the LD default to the ld used by gcc.
1248if test -z "$LD"; then
1249  if test "$GCC" = yes; then
1250    case $build in
1251    *-*-mingw*)
1252      gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1253    *)
1254      gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1255    esac
1256    case $gcc_prog_ld in
1257    # Accept absolute paths.
1258    [[\\/]* | [A-Za-z]:[\\/]*)]
1259      LD="$gcc_prog_ld" ;;
1260    esac
1261  fi
1262fi
1263
1264# Check whether -static-libstdc++ -static-libgcc is supported.
1265have_static_libs=no
1266if test "$GCC" = yes; then
1267  saved_LDFLAGS="$LDFLAGS"
1268
1269  LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
1270  AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc])
1271  AC_LANG_PUSH(C++)
1272  AC_LINK_IFELSE([
1273#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
1274#error -static-libstdc++ not implemented
1275#endif
1276int main() {}],
1277    [AC_MSG_RESULT([yes]); have_static_libs=yes],
1278    [AC_MSG_RESULT([no])])
1279  AC_LANG_POP(C++)
1280
1281  LDFLAGS="$saved_LDFLAGS"
1282fi
1283
1284ACX_PROG_GNAT
1285ACX_PROG_CMP_IGNORE_INITIAL
1286
1287AC_ARG_ENABLE([bootstrap],
1288[AS_HELP_STRING([--enable-bootstrap],
1289		[enable bootstrapping @<:@yes if native build@:>@])],,
1290enable_bootstrap=default)
1291
1292# Issue errors and warnings for invalid/strange bootstrap combinations.
1293if test -r $srcdir/gcc/configure; then
1294  have_compiler=yes
1295else
1296  have_compiler=no
1297fi
1298
1299case "$have_compiler:$host:$target:$enable_bootstrap" in
1300  *:*:*:no) ;;
1301
1302  # Default behavior.  Enable bootstrap if we have a compiler
1303  # and we are in a native configuration.
1304  yes:$build:$build:default)
1305    enable_bootstrap=yes ;;
1306
1307  *:*:*:default)
1308    enable_bootstrap=no ;;
1309
1310  # We have a compiler and we are in a native configuration, bootstrap is ok
1311  yes:$build:$build:yes)
1312    ;;
1313
1314  # Other configurations, but we have a compiler.  Assume the user knows
1315  # what he's doing.
1316  yes:*:*:yes)
1317    AC_MSG_WARN([trying to bootstrap a cross compiler])
1318    ;;
1319
1320  # No compiler: if they passed --enable-bootstrap explicitly, fail
1321  no:*:*:yes)
1322    AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
1323
1324  # Fail if wrong command line
1325  *)
1326    AC_MSG_ERROR([invalid option for --enable-bootstrap])
1327    ;;
1328esac
1329
1330# Used for setting $lt_cv_objdir
1331_LT_CHECK_OBJDIR
1332
1333# Check for GMP, MPFR and MPC
1334gmplibs="-lmpc -lmpfr -lgmp"
1335gmpinc=
1336have_gmp=no
1337
1338# Specify a location for mpc
1339# check for this first so it ends up on the link line before mpfr.
1340AC_ARG_WITH(mpc,
1341[AS_HELP_STRING([--with-mpc=PATH],
1342		[specify prefix directory for installed MPC package.
1343		 Equivalent to --with-mpc-include=PATH/include
1344		 plus --with-mpc-lib=PATH/lib])])
1345AC_ARG_WITH(mpc-include,
1346[AS_HELP_STRING([--with-mpc-include=PATH],
1347		[specify directory for installed MPC include files])])
1348AC_ARG_WITH(mpc-lib,
1349[AS_HELP_STRING([--with-mpc-lib=PATH],
1350		[specify directory for the installed MPC library])])
1351
1352if test "x$with_mpc" != x; then
1353  gmplibs="-L$with_mpc/lib $gmplibs"
1354  gmpinc="-I$with_mpc/include $gmpinc"
1355fi
1356if test "x$with_mpc_include" != x; then
1357  gmpinc="-I$with_mpc_include $gmpinc"
1358fi
1359if test "x$with_mpc_lib" != x; then
1360  gmplibs="-L$with_mpc_lib $gmplibs"
1361fi
1362if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
1363  gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs"
1364  gmpinc='-I$$s/mpc/src '"$gmpinc"
1365  # Do not test the mpc version.  Assume that it is sufficient, since
1366  # it is in the source tree, and the library has not been built yet
1367  # but it would be included on the link line in the version check below
1368  # hence making the test fail.
1369  have_gmp=yes
1370fi
1371
1372# Specify a location for mpfr
1373# check for this first so it ends up on the link line before gmp.
1374AC_ARG_WITH(mpfr-dir,
1375[AS_HELP_STRING([--with-mpfr-dir=PATH], [this option has been REMOVED])],
1376[AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
1377Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH])])
1378
1379AC_ARG_WITH(mpfr,
1380[AS_HELP_STRING([--with-mpfr=PATH],
1381		[specify prefix directory for installed MPFR package.
1382		 Equivalent to --with-mpfr-include=PATH/include
1383		 plus --with-mpfr-lib=PATH/lib])])
1384AC_ARG_WITH(mpfr-include,
1385[AS_HELP_STRING([--with-mpfr-include=PATH],
1386		[specify directory for installed MPFR include files])])
1387AC_ARG_WITH(mpfr-lib,
1388[AS_HELP_STRING([--with-mpfr-lib=PATH],
1389		[specify directory for the installed MPFR library])])
1390
1391if test "x$with_mpfr" != x; then
1392  gmplibs="-L$with_mpfr/lib $gmplibs"
1393  gmpinc="-I$with_mpfr/include $gmpinc"
1394fi
1395if test "x$with_mpfr_include" != x; then
1396  gmpinc="-I$with_mpfr_include $gmpinc"
1397fi
1398if test "x$with_mpfr_lib" != x; then
1399  gmplibs="-L$with_mpfr_lib $gmplibs"
1400fi
1401if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1402  # MPFR v3.1.0 moved the sources into a src sub-directory.
1403  if test -d ${srcdir}/mpfr/src; then
1404    gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs"
1405    gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc"
1406    extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir"
1407  else
1408    gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
1409    gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
1410    extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
1411  fi
1412  # Do not test the mpfr version.  Assume that it is sufficient, since
1413  # it is in the source tree, and the library has not been built yet
1414  # but it would be included on the link line in the version check below
1415  # hence making the test fail.
1416  have_gmp=yes
1417fi
1418
1419# Specify a location for gmp
1420AC_ARG_WITH(gmp-dir,
1421[AS_HELP_STRING([--with-gmp-dir=PATH], [this option has been REMOVED])],
1422[AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
1423Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH])])
1424
1425AC_ARG_WITH(gmp,
1426[AS_HELP_STRING([--with-gmp=PATH],
1427		[specify prefix directory for the installed GMP package.
1428		 Equivalent to --with-gmp-include=PATH/include
1429		 plus --with-gmp-lib=PATH/lib])])
1430AC_ARG_WITH(gmp-include,
1431[AS_HELP_STRING([--with-gmp-include=PATH],
1432		[specify directory for installed GMP include files])])
1433AC_ARG_WITH(gmp-lib,
1434[AS_HELP_STRING([--with-gmp-lib=PATH],
1435		[specify directory for the installed GMP library])])
1436
1437
1438if test "x$with_gmp" != x; then
1439  gmplibs="-L$with_gmp/lib $gmplibs"
1440  gmpinc="-I$with_gmp/include $gmpinc"
1441fi
1442if test "x$with_gmp_include" != x; then
1443  gmpinc="-I$with_gmp_include $gmpinc"
1444fi
1445if test "x$with_gmp_lib" != x; then
1446  gmplibs="-L$with_gmp_lib $gmplibs"
1447fi
1448if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1449  gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
1450  gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1451  extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1452  extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1453  extra_isl_gmp_configure_flags='--with-gmp-builddir=$$r/$(HOST_SUBDIR)/gmp'
1454  # Do not test the gmp version.  Assume that it is sufficient, since
1455  # it is in the source tree, and the library has not been built yet
1456  # but it would be included on the link line in the version check below
1457  # hence making the test fail.
1458  have_gmp=yes
1459fi
1460
1461if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
1462  have_gmp=yes
1463  saved_CFLAGS="$CFLAGS"
1464  CFLAGS="$CFLAGS $gmpinc"
1465  # Check for the recommended and required versions of GMP.
1466  AC_MSG_CHECKING([for the correct version of gmp.h])
1467  AC_TRY_COMPILE([#include "gmp.h"],[
1468  #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1469  #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1470  #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,3)
1471  choke me
1472  #endif
1473  ], [AC_TRY_COMPILE([#include <gmp.h>],[
1474  #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1475  #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1476  #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
1477  choke me
1478  #endif
1479  ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1480   [AC_MSG_RESULT([no]); have_gmp=no])
1481
1482  # If we have GMP, check the MPFR version.
1483  if test x"$have_gmp" = xyes; then
1484    # Check for the recommended and required versions of MPFR.
1485    AC_MSG_CHECKING([for the correct version of mpfr.h])
1486    AC_TRY_COMPILE([#include <gmp.h>
1487    #include <mpfr.h>],[
1488    #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,0)
1489    choke me
1490    #endif
1491    ], [AC_TRY_COMPILE([#include <gmp.h>
1492    #include <mpfr.h>],[
1493    #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2)
1494    choke me
1495    #endif
1496    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1497     [AC_MSG_RESULT([no]); have_gmp=no])
1498  fi
1499
1500  # Check for the MPC header version.
1501  if test x"$have_gmp" = xyes ; then
1502    # Check for the recommended and required versions of MPC.
1503    AC_MSG_CHECKING([for the correct version of mpc.h])
1504    AC_TRY_COMPILE([#include <mpc.h>],[
1505    #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
1506    choke me
1507    #endif
1508    ], [AC_TRY_COMPILE([#include <mpc.h>],[
1509    #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
1510    choke me
1511    #endif
1512    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1513     [AC_MSG_RESULT([no]); have_gmp=no])
1514  fi
1515
1516  # Now check the MPFR library.
1517  if test x"$have_gmp" = xyes; then
1518    saved_LIBS="$LIBS"
1519    LIBS="$LIBS $gmplibs"
1520    AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries])
1521    AC_TRY_LINK([#include <mpc.h>],[
1522    mpfr_t n;
1523    mpfr_t x;
1524    mpc_t c;
1525    int t;
1526    mpfr_init (n);
1527    mpfr_init (x);
1528    mpfr_atan2 (n, n, x, GMP_RNDN);
1529    mpfr_erfc (n, x, GMP_RNDN);
1530    mpfr_subnormalize (x, t, GMP_RNDN);
1531    mpfr_clear(n);
1532    mpfr_clear(x);
1533    mpc_init2 (c, 53);
1534    mpc_set_ui_ui (c, 1, 1, MPC_RNDNN);
1535    mpc_cosh (c, c, MPC_RNDNN);
1536    mpc_pow (c, c, c, MPC_RNDNN);
1537    mpc_acosh (c, c, MPC_RNDNN);
1538    mpc_clear (c);
1539    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1540    LIBS="$saved_LIBS"
1541  fi
1542
1543  CFLAGS="$saved_CFLAGS"
1544
1545# The library versions listed in the error message below should match
1546# the HARD-minimums enforced above.
1547  if test x$have_gmp != xyes; then
1548    AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
1549Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
1550their locations.  Source code for these libraries can be found at
1551their respective hosting sites as well as at
1552ftp://gcc.gnu.org/pub/gcc/infrastructure/.  See also
1553http://gcc.gnu.org/install/prerequisites.html for additional info.  If
1554you obtained GMP, MPFR and/or MPC from a vendor distribution package,
1555make sure that you have installed both the libraries and the header
1556files.  They may be located in separate packages.])
1557  fi
1558fi
1559
1560# Flags needed for both GMP, MPFR and/or MPC.
1561AC_SUBST(gmplibs)
1562AC_SUBST(gmpinc)
1563AC_SUBST(extra_mpfr_configure_flags)
1564AC_SUBST(extra_mpc_gmp_configure_flags)
1565AC_SUBST(extra_mpc_mpfr_configure_flags)
1566AC_SUBST(extra_isl_gmp_configure_flags)
1567
1568# Allow host libstdc++ to be specified for static linking with PPL.
1569AC_ARG_WITH(host-libstdcxx,
1570[AS_HELP_STRING([--with-host-libstdcxx=L],
1571		[use linker arguments L to link with libstdc++
1572		 when linking with PPL])])
1573
1574case $with_host_libstdcxx in
1575  no|yes)
1576    AC_MSG_ERROR([-with-host-libstdcxx needs an argument])
1577    ;;
1578esac
1579
1580# Libraries to use for stage1 or when not bootstrapping.
1581AC_ARG_WITH(stage1-libs,
1582[AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])],
1583[if test "$withval" = "no" -o "$withval" = "yes"; then
1584   stage1_libs=
1585 else
1586   stage1_libs=$withval
1587 fi],
1588[stage1_libs=$with_host_libstdcxx])
1589AC_SUBST(stage1_libs)
1590
1591# Linker flags to use for stage1 or when not bootstrapping.
1592AC_ARG_WITH(stage1-ldflags,
1593[AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
1594[if test "$withval" = "no" -o "$withval" = "yes"; then
1595   stage1_ldflags=
1596 else
1597   stage1_ldflags=$withval
1598 fi],
1599[stage1_ldflags=
1600 # In stage 1, default to linking libstdc++ and libgcc statically with GCC
1601 # if supported.  But if the user explicitly specified the libraries to use,
1602 # trust that they are doing what they want.
1603 if test "$stage1_libs" = "" -a "$have_static_libs" = yes; then
1604   stage1_ldflags="-static-libstdc++ -static-libgcc"
1605 fi])
1606AC_SUBST(stage1_ldflags)
1607
1608# Libraries to use for stage2 and later builds.  This defaults to the
1609# argument passed to --with-host-libstdcxx.
1610AC_ARG_WITH(boot-libs,
1611[AS_HELP_STRING([--with-boot-libs=LIBS], [libraries for stage2 and later])],
1612[if test "$withval" = "no" -o "$withval" = "yes"; then
1613   poststage1_libs=
1614 else
1615   poststage1_libs=$withval
1616 fi],
1617[poststage1_libs=$with_host_libstdcxx])
1618AC_SUBST(poststage1_libs)
1619
1620# Linker flags to use for stage2 and later builds.
1621AC_ARG_WITH(boot-ldflags,
1622[AS_HELP_STRING([--with-boot-ldflags=FLAGS],
1623		[linker flags for stage2 and later])],
1624[if test "$withval" = "no" -o "$withval" = "yes"; then
1625   poststage1_ldflags=
1626 else
1627   poststage1_ldflags=$withval
1628 fi],
1629[poststage1_ldflags=
1630 # In stages 2 and 3, default to linking libstdc++ and libgcc
1631 # statically.  But if the user explicitly specified the libraries to
1632 # use, trust that they are doing what they want.
1633 if test "$poststage1_libs" = ""; then
1634   poststage1_ldflags="-static-libstdc++ -static-libgcc"
1635 fi])
1636AC_SUBST(poststage1_ldflags)
1637
1638# GCC GRAPHITE dependences, ISL and CLOOG which in turn requires ISL.
1639# Basic setup is inlined here, actual checks are in config/cloog.m4 and
1640# config/isl.m4
1641
1642AC_ARG_WITH(cloog,
1643  [AS_HELP_STRING(
1644    [--with-cloog=PATH],
1645    [Specify prefix directory for the installed CLooG-ISL package.
1646     Equivalent to --with-cloog-include=PATH/include
1647     plus --with-cloog-lib=PATH/lib])])
1648AC_ARG_WITH(isl,
1649  [AS_HELP_STRING(
1650   [--with-isl=PATH],
1651   [Specify prefix directory for the installed ISL package.
1652    Equivalent to --with-isl-include=PATH/include
1653    plus --with-isl-lib=PATH/lib])])
1654
1655# Treat either --without-cloog or --without-isl as a request to disable
1656# GRAPHITE support and skip all following checks.
1657if test "x$with_isl" != "xno" &&
1658   test "x$with_cloog" != "xno"; then
1659  # Check for ISL
1660  dnl Provide configure switches and initialize islinc & isllibs
1661  dnl with user input.
1662  ISL_INIT_FLAGS
1663  dnl The versions of ISL that work for Graphite
1664  ISL_CHECK_VERSION(0,10)
1665  if test "${gcc_cv_isl}" = no ; then
1666    ISL_CHECK_VERSION(0,11)
1667    if test "${gcc_cv_isl}" = no ; then
1668      ISL_CHECK_VERSION(0,12)
1669    fi
1670  fi
1671  dnl Only execute fail-action, if ISL has been requested.
1672  ISL_IF_FAILED([
1673    AC_MSG_ERROR([Unable to find a usable ISL.  See config.log for details.])])
1674
1675  if test "x$gcc_cv_isl" != "xno"; then
1676    # Check for CLOOG
1677    dnl Provide configure switches and initialize clooginc & clooglibs
1678    dnl with user input.
1679    CLOOG_INIT_FLAGS
1680    dnl The versions of CLooG that work for Graphite.
1681    CLOOG_CHECK_VERSION(0,17,0)
1682    if test "${gcc_cv_cloog}" = no ; then
1683      CLOOG_CHECK_VERSION(0,18,0)
1684    fi
1685
1686    dnl Only execute fail-action, if CLooG has been requested.
1687    CLOOG_IF_FAILED([
1688      AC_MSG_ERROR([Unable to find a usable CLooG.  See config.log for details.])])
1689  fi
1690fi
1691
1692# If either the ISL or the CLooG check failed, disable builds of in-tree
1693# variants of both
1694if test "x$with_isl" = xno ||
1695   test "x$with_cloog" = xno ||
1696   test "x$gcc_cv_cloog" = xno ||
1697   test "x$gcc_cv_isl" = xno; then
1698  noconfigdirs="$noconfigdirs cloog isl"
1699  islinc=
1700  clooginc=
1701  clooglibs=
1702fi
1703
1704AC_SUBST(islinc)
1705AC_SUBST(clooglibs)
1706AC_SUBST(clooginc)
1707
1708
1709# Check for LTO support.
1710AC_ARG_ENABLE(lto,
1711[AS_HELP_STRING([--enable-lto], [enable link time optimization support])],
1712enable_lto=$enableval,
1713enable_lto=yes; default_enable_lto=yes)
1714
1715ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
1716  build_lto_plugin=yes
1717],[if test x"$default_enable_lto" = x"yes" ; then
1718    case $target in
1719      *-apple-darwin9* | *-cygwin* | *-mingw*) ;;
1720      # On other non-ELF platforms, LTO has yet to be validated.
1721      *) enable_lto=no ;;
1722    esac
1723  else
1724  # Apart from ELF platforms, only Windows and Darwin support LTO so far.
1725  # It would also be nice to check the binutils support, but we don't
1726  # have gcc_GAS_CHECK_FEATURE available here.  For now, we'll just
1727  # warn during gcc/ subconfigure; unless you're bootstrapping with
1728  # -flto it won't be needed until after installation anyway.
1729    case $target in
1730      *-cygwin* | *-mingw* | *-apple-darwin*) ;;
1731      *) if test x"$enable_lto" = x"yes"; then
1732	AC_MSG_ERROR([LTO support is not enabled for this target.])
1733        fi
1734      ;;
1735    esac
1736  fi
1737  # Among non-ELF, only Windows platforms support the lto-plugin so far.
1738  # Build it unless LTO was explicitly disabled.
1739  case $target in
1740    *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;;
1741    *) ;;
1742  esac
1743])
1744
1745
1746# By default, C and C++ are the only stage 1 languages.
1747stage1_languages=,c,
1748
1749# Target libraries that we bootstrap.
1750bootstrap_target_libs=,target-libgcc,
1751
1752# Figure out what language subdirectories are present.
1753# Look if the user specified --enable-languages="..."; if not, use
1754# the environment variable $LANGUAGES if defined. $LANGUAGES might
1755# go away some day.
1756# NB:  embedded tabs in this IF block -- do not untabify
1757if test -d ${srcdir}/gcc; then
1758  if test x"${enable_languages+set}" != xset; then
1759    if test x"${LANGUAGES+set}" = xset; then
1760      enable_languages="${LANGUAGES}"
1761        echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1762    else
1763      enable_languages=all
1764    fi
1765  else
1766    if test x"${enable_languages}" = x ||
1767       test x"${enable_languages}" = xyes;
1768       then
1769      echo configure.in: --enable-languages needs at least one language argument 1>&2
1770      exit 1
1771    fi
1772  fi
1773  enable_languages=`echo "${enable_languages}" | sed -e 's/[[ 	,]][[ 	,]]*/,/g' -e 's/,$//'`
1774
1775  # 'f95' is the old name for the 'fortran' language. We issue a warning
1776  # and make the substitution.
1777  case ,${enable_languages}, in
1778    *,f95,*)
1779      echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1780      enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1781      ;;
1782  esac
1783
1784  # If bootstrapping, C++ must be enabled.
1785  case ",$enable_languages,:$enable_bootstrap" in
1786    *,c++,*:*) ;;
1787    *:yes)
1788      if test -f ${srcdir}/gcc/cp/config-lang.in; then
1789        enable_languages="${enable_languages},c++"
1790      else
1791        AC_MSG_ERROR([bootstrapping requires c++ sources])
1792      fi
1793      ;;
1794  esac
1795
1796  # First scan to see if an enabled language requires some other language.
1797  # We assume that a given config-lang.in will list all the language
1798  # front ends it requires, even if some are required indirectly.
1799  for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1800    case ${lang_frag} in
1801      ..) ;;
1802      # The odd quoting in the next line works around
1803      # an apparent bug in bash 1.12 on linux.
1804      ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1805      *)
1806        # From the config-lang.in, get $language, $lang_requires, and
1807        # $lang_requires_boot_languages.
1808        language=
1809        lang_requires=
1810        lang_requires_boot_languages=
1811        . ${lang_frag}
1812        for other in ${lang_requires} ${lang_requires_boot_languages}; do
1813          case ,${enable_languages}, in
1814	    *,$other,*) ;;
1815	    *,all,*) ;;
1816	    *,$language,*)
1817	      echo " \`$other' language required by \`$language'; enabling" 1>&2
1818	      enable_languages="${enable_languages},${other}"
1819	      ;;
1820	  esac
1821        done
1822	for other in ${lang_requires_boot_languages} ; do
1823	  if test "$other" != "c"; then
1824	    case ,${enable_stage1_languages}, in
1825	      *,$other,*) ;;
1826	      *,all,*) ;;
1827	      *)
1828		case ,${enable_languages}, in
1829		  *,$language,*)
1830		    echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
1831		    enable_stage1_languages="$enable_stage1_languages,${other}"
1832		    ;;
1833		esac
1834		;;
1835	    esac
1836          fi
1837        done
1838        ;;
1839    esac
1840  done
1841
1842  new_enable_languages=,c,
1843
1844  # If LTO is enabled, add the LTO front end.
1845  extra_host_libiberty_configure_flags=
1846  if test "$enable_lto" = "yes" ; then
1847    case ,${enable_languages}, in
1848      *,lto,*) ;;
1849      *) enable_languages="${enable_languages},lto" ;;
1850    esac
1851    if test "${build_lto_plugin}" = "yes" ; then
1852      configdirs="$configdirs lto-plugin"
1853      extra_host_libiberty_configure_flags=--enable-shared
1854    fi
1855  fi
1856  AC_SUBST(extra_host_libiberty_configure_flags)
1857
1858  missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1859  potential_languages=,c,
1860
1861  enabled_target_libs=
1862  disabled_target_libs=
1863
1864  for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1865    case ${lang_frag} in
1866      ..) ;;
1867      # The odd quoting in the next line works around
1868      # an apparent bug in bash 1.12 on linux.
1869      ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1870      *)
1871        # From the config-lang.in, get $language, $target_libs, 
1872        # $lang_dirs, $boot_language, and $build_by_default
1873        language=
1874        target_libs=
1875        lang_dirs=
1876        subdir_requires=
1877        boot_language=no
1878        build_by_default=yes
1879        . ${lang_frag}
1880        if test x${language} = x; then
1881          echo "${lang_frag} doesn't set \$language." 1>&2
1882          exit 1
1883        fi
1884
1885	if test "$language" = "c++"; then
1886	  boot_language=yes
1887	fi
1888
1889        add_this_lang=no
1890        case ,${enable_languages}, in
1891          *,${language},*)
1892            # Language was explicitly selected; include it
1893	    # unless it is C, which is enabled by default.
1894	    if test "$language" != "c"; then
1895	      add_this_lang=yes
1896	    fi
1897            ;;
1898          *,all,*)
1899            # 'all' was selected, select it if it is a default language
1900	    if test "$language" != "c"; then
1901	      add_this_lang=${build_by_default}
1902	    fi
1903            ;;
1904        esac
1905
1906        # Disable languages that need other directories if these aren't available.
1907	for i in $subdir_requires; do
1908	  test -f "$srcdir/gcc/$i/config-lang.in" && continue
1909	  case ,${enable_languages}, in
1910            *,${language},*)
1911              # Specifically requested language; tell them.
1912              AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
1913              ;;
1914            *)
1915              # Silently disable.
1916              add_this_lang=unsupported
1917              ;;
1918          esac
1919	done
1920
1921        # Disable Ada if no preexisting GNAT is available.
1922        case ,${enable_languages},:${language}:${have_gnat} in
1923          *,${language},*:ada:no)
1924            # Specifically requested language; tell them.
1925            AC_MSG_ERROR([GNAT is required to build $language])
1926            ;;
1927          *:ada:no)
1928            # Silently disable.
1929            add_this_lang=unsupported
1930            ;;
1931        esac
1932
1933	# Disable a language that is unsupported by the target.
1934	case " $unsupported_languages " in
1935	  *" $language "*)
1936	    add_this_lang=unsupported
1937	    ;;
1938	esac
1939
1940	case $add_this_lang in
1941	  unsupported)
1942            # Remove language-dependent dirs.
1943	    disabled_target_libs="$disabled_target_libs $target_libs"
1944	    noconfigdirs="$noconfigdirs $lang_dirs"
1945	    ;;
1946	  no)
1947            # Remove language-dependent dirs; still show language as supported.
1948	    disabled_target_libs="$disabled_target_libs $target_libs"
1949	    noconfigdirs="$noconfigdirs $lang_dirs"
1950            potential_languages="${potential_languages}${language},"
1951	    ;;
1952          yes)
1953	    new_enable_languages="${new_enable_languages}${language},"
1954            potential_languages="${potential_languages}${language},"
1955	    missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1956	    enabled_target_libs="$enabled_target_libs $target_libs"
1957	    case "${boot_language}:,$enable_stage1_languages," in
1958	      yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
1959		# Add to (comma-separated) list of stage 1 languages.
1960		case ",$stage1_languages," in
1961		  *,$language,* | ,yes, | ,all,) ;;
1962		  *) stage1_languages="${stage1_languages}${language}," ;;
1963		esac
1964		# We need to bootstrap any supporting libraries.
1965		bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
1966		;;
1967	    esac
1968	    ;;
1969        esac
1970        ;;
1971    esac
1972  done
1973
1974  # Add target libraries which are only needed for disabled languages
1975  # to noconfigdirs.
1976  if test -n "$disabled_target_libs"; then
1977    for dir in $disabled_target_libs; do
1978      case " $enabled_target_libs " in
1979      *" ${dir} "*) ;;
1980      *) noconfigdirs="$noconfigdirs $dir" ;;
1981      esac
1982    done
1983  fi
1984
1985  AC_ARG_ENABLE(stage1-languages,
1986  [AS_HELP_STRING([[--enable-stage1-languages[=all]]],
1987		  [choose additional languages to build during
1988		  stage1.  Mostly useful for compiler development])],
1989  [case ,${enable_stage1_languages}, in
1990    ,no,|,,)
1991      # Set it to something that will have no effect in the loop below
1992      enable_stage1_languages=c ;;
1993    ,yes,)
1994      enable_stage1_languages=`echo $new_enable_languages | \
1995	sed -e "s/^,//" -e "s/,$//" ` ;;
1996    *,all,*)
1997      enable_stage1_languages=`echo ,$enable_stage1_languages, | \
1998	sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
1999  esac
2000
2001  # Add "good" languages from enable_stage1_languages to stage1_languages,
2002  # while "bad" languages go in missing_languages.  Leave no duplicates.
2003  for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
2004    case $potential_languages in
2005      *,$i,*)
2006        case $stage1_languages in
2007          *,$i,*) ;;
2008          *) stage1_languages="$stage1_languages$i," ;;
2009        esac ;;
2010      *)
2011        case $missing_languages in
2012          *,$i,*) ;;
2013          *) missing_languages="$missing_languages$i," ;;
2014        esac ;;
2015     esac
2016  done])
2017
2018  # Remove leading/trailing commas that were added for simplicity
2019  potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
2020  missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
2021  stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
2022  new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
2023
2024  if test "x$missing_languages" != x; then
2025    AC_MSG_ERROR([
2026The following requested languages could not be built: ${missing_languages}
2027Supported languages are: ${potential_languages}])
2028  fi
2029  if test "x$new_enable_languages" != "x$enable_languages"; then
2030    echo The following languages will be built: ${new_enable_languages}
2031    enable_languages="$new_enable_languages"
2032  fi
2033
2034  AC_SUBST(stage1_languages)
2035  ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
2036fi
2037
2038# Handle --disable-<component> generically.
2039for dir in $configdirs $build_configdirs $target_configdirs ; do
2040  dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
2041  varname=`echo $dirname | sed -e s/+/_/g`
2042  if eval test x\${enable_${varname}} "=" xno ; then
2043    noconfigdirs="$noconfigdirs $dir"
2044  fi
2045done
2046
2047# Check for Boehm's garbage collector
2048AC_ARG_ENABLE(objc-gc,
2049[AS_HELP_STRING([--enable-objc-gc],
2050		[enable use of Boehm's garbage collector with the
2051		 GNU Objective-C runtime])],
2052[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
2053  *,objc,*:*:yes:*target-boehm-gc*)
2054    AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
2055    ;;
2056esac])
2057
2058# Make sure we only build Boehm's garbage collector if required.
2059case ,${enable_languages},:${enable_objc_gc} in
2060  *,objc,*:yes)
2061    # Keep target-boehm-gc if requested for Objective-C.
2062    ;;
2063  *)
2064    # Otherwise remove target-boehm-gc depending on target-libjava.
2065    if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
2066      noconfigdirs="$noconfigdirs target-boehm-gc"
2067    fi
2068    ;;
2069esac
2070
2071# Disable libitm, libsanitizer, libvtv if we're not building C++
2072case ,${enable_languages}, in
2073  *,c++,*) ;;
2074  *)
2075    noconfigdirs="$noconfigdirs target-libcilkrts target-libitm target-libsanitizer target-libvtv"
2076    ;;
2077esac
2078
2079# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
2080# $build_configdirs and $target_configdirs.
2081# If we have the source for $noconfigdirs entries, add them to $notsupp.
2082
2083notsupp=""
2084for dir in . $skipdirs $noconfigdirs ; do
2085  dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
2086  if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2087    configdirs=`echo " ${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 " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2097    build_configdirs=`echo " ${build_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
2106  if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2107    target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
2108    if test -r $srcdir/$dirname/configure ; then
2109      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2110	true
2111      else
2112	notsupp="$notsupp $dir"
2113      fi
2114    fi
2115  fi
2116done
2117
2118# Quietly strip out all directories which aren't configurable in this tree.
2119# This relies on all configurable subdirectories being autoconfiscated, which
2120# is now the case.
2121build_configdirs_all="$build_configdirs"
2122build_configdirs=
2123for i in ${build_configdirs_all} ; do
2124  j=`echo $i | sed -e s/build-//g` 
2125  if test -f ${srcdir}/$j/configure ; then
2126    build_configdirs="${build_configdirs} $i"
2127  fi
2128done
2129
2130configdirs_all="$configdirs"
2131configdirs=
2132for i in ${configdirs_all} ; do
2133  if test -f ${srcdir}/$i/configure ; then
2134    configdirs="${configdirs} $i"
2135  fi
2136done
2137
2138target_configdirs_all="$target_configdirs"
2139target_configdirs=
2140for i in ${target_configdirs_all} ; do
2141  j=`echo $i | sed -e s/target-//g` 
2142  if test -f ${srcdir}/$j/configure ; then
2143    target_configdirs="${target_configdirs} $i"
2144  fi
2145done
2146
2147# Produce a warning message for the subdirs we can't configure.
2148# This isn't especially interesting in the Cygnus tree, but in the individual
2149# FSF releases, it's important to let people know when their machine isn't
2150# supported by the one or two programs in a package.
2151
2152if test -n "${notsupp}" && test -z "${norecursion}" ; then
2153  # If $appdirs is non-empty, at least one of those directories must still
2154  # be configured, or we error out.  (E.g., if the gas release supports a
2155  # specified target in some subdirs but not the gas subdir, we shouldn't
2156  # pretend that all is well.)
2157  if test -n "$appdirs" ; then
2158    for dir in $appdirs ; do
2159      if test -r $dir/Makefile.in ; then
2160	if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
2161	  appdirs=""
2162	  break
2163	fi
2164	if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
2165	  appdirs=""
2166	  break
2167	fi
2168      fi
2169    done
2170    if test -n "$appdirs" ; then
2171      echo "*** This configuration is not supported by this package." 1>&2
2172      exit 1
2173    fi
2174  fi
2175  # Okay, some application will build, or we don't care to check.  Still
2176  # notify of subdirs not getting built.
2177  echo "*** This configuration is not supported in the following subdirectories:" 1>&2
2178  echo "    ${notsupp}" 1>&2
2179  echo "    (Any other directories should still work fine.)" 1>&2
2180fi
2181
2182case "$host" in
2183  *msdosdjgpp*)
2184    enable_gdbtk=no ;;
2185esac
2186
2187# To find our prefix, in gcc_cv_tool_prefix.
2188ACX_TOOL_DIRS
2189
2190copy_dirs=
2191
2192AC_ARG_WITH([build-sysroot], 
2193  [AS_HELP_STRING([--with-build-sysroot=SYSROOT],
2194		  [use sysroot as the system root during the build])],
2195  [if test x"$withval" != x ; then
2196     SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
2197   fi],
2198  [SYSROOT_CFLAGS_FOR_TARGET=])
2199AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
2200
2201AC_ARG_WITH([debug-prefix-map],
2202  [AS_HELP_STRING([--with-debug-prefix-map='A=B C=D ...'],
2203		  [map A to B, C to D ... in debug information])],
2204  [if test x"$withval" != x; then
2205     DEBUG_PREFIX_CFLAGS_FOR_TARGET=
2206     for debug_map in $withval; do
2207       DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
2208     done
2209   fi],
2210  [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
2211AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
2212
2213# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
2214# might be empty or "-g".  We don't require a C++ compiler, so CXXFLAGS
2215# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
2216# We want to ensure that TARGET libraries (which we know are built with
2217# gcc) are built with "-O2 -g", so include those options when setting
2218# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
2219if test "x$CFLAGS_FOR_TARGET" = x; then
2220  CFLAGS_FOR_TARGET=$CFLAGS
2221  case " $CFLAGS " in
2222    *" -O2 "*) ;;
2223    *) CFLAGS_FOR_TARGET="-O2 $CFLAGS_FOR_TARGET" ;;
2224  esac
2225  case " $CFLAGS " in
2226    *" -g "* | *" -g3 "*) ;;
2227    *) CFLAGS_FOR_TARGET="-g $CFLAGS_FOR_TARGET" ;;
2228  esac
2229fi
2230AC_SUBST(CFLAGS_FOR_TARGET)
2231
2232if test "x$CXXFLAGS_FOR_TARGET" = x; then
2233  CXXFLAGS_FOR_TARGET=$CXXFLAGS
2234  case " $CXXFLAGS " in
2235    *" -O2 "*) ;;
2236    *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS_FOR_TARGET" ;;
2237  esac
2238  case " $CXXFLAGS " in
2239    *" -g "* | *" -g3 "*) ;;
2240    *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS_FOR_TARGET" ;;
2241  esac
2242fi
2243AC_SUBST(CXXFLAGS_FOR_TARGET)
2244
2245AC_SUBST(LDFLAGS_FOR_TARGET)
2246
2247# Handle --with-headers=XXX.  If the value is not "yes", the contents of
2248# the named directory are copied to $(tooldir)/sys-include.
2249if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
2250  if test x${is_cross_compiler} = xno ; then
2251    echo 1>&2 '***' --with-headers is only supported when cross compiling
2252    exit 1
2253  fi
2254  if test x"${with_headers}" != xyes ; then
2255    x=${gcc_cv_tool_prefix}
2256    copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
2257  fi
2258fi
2259
2260# Handle --with-libs=XXX.  If the value is not "yes", the contents of
2261# the name directories are copied to $(tooldir)/lib.  Multiple directories
2262# are permitted.
2263if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
2264  if test x${is_cross_compiler} = xno ; then
2265    echo 1>&2 '***' --with-libs is only supported when cross compiling
2266    exit 1
2267  fi
2268  if test x"${with_libs}" != xyes ; then
2269    # Copy the libraries in reverse order, so that files in the first named
2270    # library override files in subsequent libraries.
2271    x=${gcc_cv_tool_prefix}
2272    for l in ${with_libs}; do
2273      copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
2274    done
2275  fi
2276fi
2277
2278# Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
2279#
2280# This is done by determining whether or not the appropriate directory
2281# is available, and by checking whether or not specific configurations
2282# have requested that this magic not happen.
2283# 
2284# The command line options always override the explicit settings in 
2285# configure.in, and the settings in configure.in override this magic.
2286#
2287# If the default for a toolchain is to use GNU as and ld, and you don't 
2288# want to do that, then you should use the --without-gnu-as and
2289# --without-gnu-ld options for the configure script.  Similarly, if
2290# the default is to use the included zlib and you don't want to do that,
2291# you should use the --with-system-zlib option for the configure script.
2292
2293if test x${use_gnu_as} = x &&
2294   echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
2295  with_gnu_as=yes
2296  extra_host_args="$extra_host_args --with-gnu-as"
2297fi
2298
2299if test x${use_gnu_ld} = x &&
2300   echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
2301  with_gnu_ld=yes
2302  extra_host_args="$extra_host_args --with-gnu-ld"
2303fi
2304
2305if test x${use_included_zlib} = x &&
2306   echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
2307  :
2308else
2309  with_system_zlib=yes
2310  extra_host_args="$extra_host_args --with-system-zlib"
2311fi
2312
2313# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
2314# can detect this case.
2315
2316if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
2317  with_newlib=yes
2318  extra_host_args="$extra_host_args --with-newlib"
2319fi
2320
2321# Handle ${copy_dirs}
2322set fnord ${copy_dirs}
2323shift
2324while test $# != 0 ; do
2325  if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
2326    :
2327  else
2328    echo Copying $1 to $2
2329
2330    # Use the install script to create the directory and all required
2331    # parent directories.
2332    if test -d $2 ; then
2333      :
2334    else
2335      echo >config.temp
2336      ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
2337    fi
2338
2339    # Copy the directory, assuming we have tar.
2340    # FIXME: Should we use B in the second tar?  Not all systems support it.
2341    (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
2342
2343    # It is the responsibility of the user to correctly adjust all
2344    # symlinks.  If somebody can figure out how to handle them correctly
2345    # here, feel free to add the code.
2346
2347    echo $1 > $2/COPIED
2348  fi
2349  shift; shift
2350done
2351
2352# Determine a target-dependent exec_prefix that the installed
2353# gcc will search in.  Keep this list sorted by triplet, with
2354# the *-*-osname triplets last.
2355md_exec_prefix=
2356case "${target}" in
2357  i[[34567]]86-pc-msdosdjgpp*)
2358    md_exec_prefix=/dev/env/DJDIR/bin
2359    ;;
2360  *-*-hpux* | \
2361  *-*-nto-qnx* | \
2362  *-*-solaris2*)
2363    md_exec_prefix=/usr/ccs/bin
2364    ;;
2365esac
2366
2367extra_arflags_for_target=
2368extra_nmflags_for_target=
2369extra_ranlibflags_for_target=
2370target_makefile_frag=/dev/null
2371case "${target}" in
2372  spu-*-*)
2373    target_makefile_frag="config/mt-spu"
2374    ;;
2375  mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
2376    target_makefile_frag="config/mt-sde"
2377    ;;
2378  mipsisa*-*-elfoabi*)
2379    target_makefile_frag="config/mt-mips-elfoabi"
2380    ;;
2381  mips*-*-*linux* | mips*-*-gnu*)
2382    target_makefile_frag="config/mt-mips-gnu"
2383    ;;
2384  nios2-*-elf*)
2385    target_makefile_frag="config/mt-nios2-elf"
2386    ;;
2387  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
2388    target_makefile_frag="config/mt-gnu"
2389    ;;
2390  *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
2391    # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
2392    # commands to handle both 32-bit and 64-bit objects.  These flags are
2393    # harmless if we're using GNU nm or ar.
2394    extra_arflags_for_target=" -X32_64"
2395    extra_nmflags_for_target=" -B -X32_64"
2396    ;;
2397esac
2398
2399alphaieee_frag=/dev/null
2400case $target in
2401  alpha*-*-*)
2402    # This just makes sure to use the -mieee option to build target libs.
2403    # This should probably be set individually by each library.
2404    alphaieee_frag="config/mt-alphaieee"
2405    ;;
2406esac
2407
2408# If --enable-target-optspace always use -Os instead of -O2 to build
2409# the target libraries, similarly if it is not specified, use -Os
2410# on selected platforms.
2411ospace_frag=/dev/null
2412case "${enable_target_optspace}:${target}" in
2413  yes:*)
2414    ospace_frag="config/mt-ospace"
2415    ;;
2416  :d30v-*)
2417    ospace_frag="config/mt-d30v"
2418    ;;
2419  :m32r-* | :d10v-* | :fr30-*)
2420    ospace_frag="config/mt-ospace"
2421    ;;
2422  no:* | :*)
2423    ;;
2424  *)
2425    echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
2426    ;;
2427esac
2428
2429# Some systems (e.g., one of the i386-aix systems the gas testers are
2430# using) don't handle "\$" correctly, so don't use it here.
2431tooldir='${exec_prefix}'/${target_noncanonical}
2432build_tooldir=${tooldir}
2433
2434# Create a .gdbinit file which runs the one in srcdir
2435# and tells GDB to look there for source files.
2436
2437if test -r ${srcdir}/.gdbinit ; then
2438  case ${srcdir} in
2439    .) ;;
2440    *) cat > ./.gdbinit <<EOF
2441# ${NO_EDIT}
2442dir ${srcdir}
2443dir .
2444source ${srcdir}/.gdbinit
2445EOF
2446    ;;
2447  esac
2448fi
2449
2450# Make sure that the compiler is able to generate an executable.  If it
2451# can't, we are probably in trouble.  We don't care whether we can run the
2452# executable--we might be using a cross compiler--we only care whether it
2453# can be created.  At this point the main configure script has set CC.
2454we_are_ok=no
2455echo "int main () { return 0; }" > conftest.c
2456${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
2457if test $? = 0 ; then
2458  if test -s conftest || test -s conftest.exe ; then
2459    we_are_ok=yes
2460  fi
2461fi 
2462case $we_are_ok in
2463  no)
2464    echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
2465    echo 1>&2 "*** You must set the environment variable CC to a working compiler."
2466    rm -f conftest*
2467    exit 1
2468    ;;
2469esac
2470rm -f conftest*
2471
2472# Decide which environment variable is used to find dynamic libraries.
2473case "${host}" in
2474  *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
2475  *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
2476  *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
2477  *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
2478esac
2479
2480# On systems where the dynamic library environment variable is PATH,
2481# gcc/ will put dynamic libraries into a subdirectory to avoid adding
2482# built executables to PATH.
2483if test "$RPATH_ENVVAR" = PATH; then
2484  GCC_SHLIB_SUBDIR=/shlib
2485else
2486  GCC_SHLIB_SUBDIR=
2487fi
2488
2489# Adjust the toplevel makefile according to whether bootstrap was selected.
2490case $enable_bootstrap in
2491  yes)
2492    bootstrap_suffix=bootstrap
2493    BUILD_CONFIG=bootstrap-debug
2494    ;;
2495  no)
2496    bootstrap_suffix=no-bootstrap
2497    BUILD_CONFIG=
2498    ;;
2499esac
2500
2501AC_MSG_CHECKING(for default BUILD_CONFIG)
2502
2503AC_ARG_WITH([build-config],
2504  [AS_HELP_STRING([--with-build-config='NAME NAME2...'],
2505		  [use config/NAME.mk build configuration])],
2506  [case $with_build_config in
2507   yes) with_build_config= ;;
2508   no) with_build_config= BUILD_CONFIG= ;;
2509   esac])
2510
2511if test "x${with_build_config}" != x; then
2512  BUILD_CONFIG=$with_build_config
2513else
2514  case $BUILD_CONFIG in
2515  bootstrap-debug)
2516    if echo "int f (void) { return 0; }" > conftest.c &&
2517       ${CC} -c conftest.c &&
2518       mv conftest.o conftest.o.g0 &&
2519       ${CC} -c -g conftest.c &&
2520       mv conftest.o conftest.o.g &&
2521       ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then
2522      :
2523    else
2524      BUILD_CONFIG=
2525    fi
2526    rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
2527    ;;
2528  esac
2529fi
2530AC_MSG_RESULT($BUILD_CONFIG)
2531AC_SUBST(BUILD_CONFIG)
2532
2533# Use same top-level configure hooks in libgcc/libstdc++/libvtv.
2534AC_MSG_CHECKING([for --enable-vtable-verify])
2535AC_ARG_ENABLE(vtable-verify,
2536[  --enable-vtable-verify    Enable vtable verification feature ],
2537[case "$enableval" in
2538 yes) enable_vtable_verify=yes ;;
2539 no)  enable_vtable_verify=no ;;
2540 *)   enable_vtable_verify=no;;
2541 esac],
2542[enable_vtable_verify=no])
2543AC_MSG_RESULT($enable_vtable_verify)
2544
2545# Record target_configdirs and the configure arguments for target and
2546# build configuration in Makefile.
2547target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
2548build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
2549bootstrap_fixincludes=no
2550
2551# If we are building libgomp, bootstrap it.
2552if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
2553  bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
2554fi
2555
2556# If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan
2557# or bootstrap-ubsan, bootstrap it.
2558if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then
2559  case "$BUILD_CONFIG" in
2560    *bootstrap-asan* | *bootstrap-ubsan* )
2561      bootstrap_target_libs=${bootstrap_target_libs}target-libsanitizer,
2562      bootstrap_fixincludes=yes
2563      ;;
2564  esac
2565fi
2566
2567# If we are building libvtv and --enable-vtable-verify, bootstrap it.
2568if echo " ${target_configdirs} " | grep " libvtv " > /dev/null 2>&1 &&
2569   test "$enable_vtable_verify" != no; then
2570  bootstrap_target_libs=${bootstrap_target_libs}target-libvtv,
2571fi
2572
2573# Determine whether gdb needs tk/tcl or not.
2574# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
2575# and in that case we want gdb to be built without tk.  Ugh!
2576# In fact I believe gdb is the *only* package directly dependent on tk,
2577# so we should be able to put the 'maybe's in unconditionally and
2578# leave out the maybe dependencies when enable_gdbtk is false.  I'm not
2579# 100% sure that that's safe though.
2580
2581gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
2582case "$enable_gdbtk" in
2583  no)
2584    GDB_TK="" ;;
2585  yes)
2586    GDB_TK="${gdb_tk}" ;;
2587  *)
2588    # Only add the dependency on gdbtk when GDBtk is part of the gdb
2589    # distro.  Eventually someone will fix this and move Insight, nee
2590    # gdbtk to a separate directory.
2591    if test -d ${srcdir}/gdb/gdbtk ; then
2592      GDB_TK="${gdb_tk}"
2593    else
2594      GDB_TK=""
2595    fi
2596    ;;
2597esac
2598CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2599INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
2600
2601# Strip out unwanted targets.
2602
2603# While at that, we remove Makefiles if we were started for recursive
2604# configuration, so that the top-level Makefile reconfigures them,
2605# like we used to do when configure itself was recursive.
2606
2607# Loop over modules.  We used to use the "$extrasub" feature from Autoconf
2608# but now we're fixing up the Makefile ourselves with the additional
2609# commands passed to AC_CONFIG_FILES.  Use separate variables
2610# extrasub-{build,host,target} not because there is any reason to split
2611# the substitutions up that way, but only to remain below the limit of
2612# 99 commands in a script, for HP-UX sed.
2613# Do not nest @if/@endif pairs, because configure will not warn you at all.
2614
2615case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
2616  yes:yes:*\ gold\ *:*,c++,*) ;;
2617  yes:yes:*\ gold\ *:*)
2618    AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
2619    ;;
2620esac
2621
2622extrasub_build=
2623for module in ${build_configdirs} ; do
2624  if test -z "${no_recursion}" \
2625     && test -f ${build_subdir}/${module}/Makefile; then
2626    echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2627    rm -f ${build_subdir}/${module}/Makefile
2628  fi
2629  extrasub_build="$extrasub_build
2630/^@if build-$module\$/d
2631/^@endif build-$module\$/d
2632/^@if build-$module-$bootstrap_suffix\$/d
2633/^@endif build-$module-$bootstrap_suffix\$/d"
2634done
2635extrasub_host=
2636for module in ${configdirs} ; do
2637  if test -z "${no_recursion}"; then
2638    for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
2639      if test -f ${file}; then
2640	echo 1>&2 "*** removing ${file} to force reconfigure"
2641	rm -f ${file}
2642      fi
2643    done
2644  fi
2645  case ${module},${bootstrap_fixincludes} in
2646    fixincludes,no) host_bootstrap_suffix=no-bootstrap ;;
2647    *) host_bootstrap_suffix=$bootstrap_suffix ;;
2648  esac
2649  extrasub_host="$extrasub_host
2650/^@if $module\$/d
2651/^@endif $module\$/d
2652/^@if $module-$host_bootstrap_suffix\$/d
2653/^@endif $module-$host_bootstrap_suffix\$/d"
2654done
2655extrasub_target=
2656for module in ${target_configdirs} ; do
2657  if test -z "${no_recursion}" \
2658     && test -f ${target_subdir}/${module}/Makefile; then
2659    echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
2660    rm -f ${target_subdir}/${module}/Makefile
2661  fi
2662
2663  # We only bootstrap target libraries listed in bootstrap_target_libs.
2664  case $bootstrap_target_libs in
2665    *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
2666    *) target_bootstrap_suffix=no-bootstrap ;;
2667  esac
2668
2669  extrasub_target="$extrasub_target
2670/^@if target-$module\$/d
2671/^@endif target-$module\$/d
2672/^@if target-$module-$target_bootstrap_suffix\$/d
2673/^@endif target-$module-$target_bootstrap_suffix\$/d"
2674done
2675
2676# Do the final fixup along with target modules.
2677extrasub_target="$extrasub_target
2678/^@if /,/^@endif /d"
2679
2680# Create the serialization dependencies.  This uses a temporary file.
2681
2682AC_ARG_ENABLE([serial-configure],
2683[AS_HELP_STRING([[--enable-serial-[{host,target,build}-]configure]],
2684		[force sequential configuration of
2685		 sub-packages for the host, target or build
2686		 machine, or all sub-packages])])
2687
2688case ${enable_serial_configure} in
2689  yes)
2690    enable_serial_build_configure=yes
2691    enable_serial_host_configure=yes
2692    enable_serial_target_configure=yes
2693    ;;
2694esac
2695
2696# These force 'configure's to be done one at a time, to avoid problems
2697# with contention over a shared config.cache.
2698rm -f serdep.tmp
2699echo '# serdep.tmp' > serdep.tmp
2700olditem=
2701test "x${enable_serial_build_configure}" = xyes &&
2702for item in ${build_configdirs} ; do
2703  case ${olditem} in
2704    "") ;;
2705    *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
2706  esac
2707  olditem=${item}
2708done
2709olditem=
2710test "x${enable_serial_host_configure}" = xyes &&
2711for item in ${configdirs} ; do
2712  case ${olditem} in
2713    "") ;;
2714    *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
2715  esac
2716  olditem=${item}
2717done
2718olditem=
2719test "x${enable_serial_target_configure}" = xyes &&
2720for item in ${target_configdirs} ; do
2721  case ${olditem} in
2722    "") ;;
2723    *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
2724  esac
2725  olditem=${item}
2726done
2727serialization_dependencies=serdep.tmp
2728AC_SUBST_FILE(serialization_dependencies)
2729
2730# Base args.  Strip norecursion, cache-file, srcdir, host, build,
2731# target, nonopt, and variable assignments.  These are the ones we
2732# might not want to pass down to subconfigures.  The exception being
2733# --cache-file=/dev/null, which is used to turn off the use of cache
2734# files altogether, and which should be passed on to subconfigures.
2735# Also strip program-prefix, program-suffix, and program-transform-name,
2736# so that we can pass down a consistent program-transform-name.
2737baseargs=
2738tbaseargs=
2739keep_next=no
2740skip_next=no
2741eval "set -- $ac_configure_args"
2742for ac_arg
2743do
2744  if test X"$skip_next" = X"yes"; then
2745    skip_next=no
2746    continue
2747  fi
2748  if test X"$keep_next" = X"yes"; then
2749    case $ac_arg in
2750      *\'*)
2751	ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2752    esac
2753    baseargs="$baseargs '$ac_arg'"
2754    tbaseargs="$tbaseargs '$ac_arg'"
2755    keep_next=no
2756    continue
2757  fi
2758
2759  # Handle separated arguments.  Based on the logic generated by
2760  # autoconf 2.59.
2761  case $ac_arg in
2762    *=* | --config-cache | -C | -disable-* | --disable-* \
2763      | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2764      | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2765      | -with-* | --with-* | -without-* | --without-* | --x)
2766      separate_arg=no
2767      ;;
2768    -*)
2769      separate_arg=yes
2770      ;;
2771    *)
2772      separate_arg=no
2773      ;;
2774  esac
2775
2776  skip_targ=no
2777  case $ac_arg in
2778changequote(,)
2779  --with-* | --without-*)
2780    libopt=`echo "$ac_arg" | sed -e 's,^--[^-_]*[-_],,' -e 's,=.*$,,'`
2781
2782    case $libopt in
2783    *[-_]include)
2784      lib=`echo "$libopt" | sed 's,[-_]include$,,'`
2785      ;;
2786    *[-_]lib)
2787      lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
2788      ;;
2789    *)
2790      lib=$libopt
2791      ;;
2792    esac
2793changequote([,])
2794
2795    case $lib in
2796    mpc | mpfr | gmp | cloog)
2797      # If we're processing --with-$lib, --with-$lib-include or
2798      # --with-$lib-lib, for one of the libs above, and target is
2799      # different from host, don't pass the current argument to any
2800      # target library's configure.
2801      if test x$is_cross_compiler = xyes; then
2802        skip_targ=yes
2803      fi
2804      ;;
2805    esac
2806    ;;
2807  esac
2808
2809  case "$ac_arg" in
2810    --cache-file=/dev/null | \
2811    -cache-file=/dev/null )
2812      # Handled here to avoid the test to skip args below.
2813      baseargs="$baseargs '$ac_arg'"
2814      tbaseargs="$tbaseargs '$ac_arg'"
2815      # Assert: $separate_arg should always be no.
2816      keep_next=$separate_arg
2817      ;;
2818    --no*)
2819      continue
2820      ;;
2821    --c* | \
2822    --sr* | \
2823    --ho* | \
2824    --bu* | \
2825    --t* | \
2826    --program-* | \
2827    -cache_file* | \
2828    -srcdir* | \
2829    -host* | \
2830    -build* | \
2831    -target* | \
2832    -program-prefix* | \
2833    -program-suffix* | \
2834    -program-transform-name* )
2835      skip_next=$separate_arg
2836      continue
2837      ;;
2838    -*)
2839      # An option.  Add it.
2840      case $ac_arg in
2841	*\'*)
2842	  ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2843      esac
2844      baseargs="$baseargs '$ac_arg'"
2845      if test X"$skip_targ" = Xno; then
2846        tbaseargs="$tbaseargs '$ac_arg'"
2847      fi
2848      keep_next=$separate_arg
2849      ;;
2850    *)
2851      # Either a variable assignment, or a nonopt (triplet).  Don't
2852      # pass it down; let the Makefile handle this.
2853      continue
2854      ;;
2855  esac
2856done
2857# Remove the initial space we just introduced and, as these will be
2858# expanded by make, quote '$'.
2859baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
2860
2861# Add in --program-transform-name, after --program-prefix and
2862# --program-suffix have been applied to it.  Autoconf has already
2863# doubled dollar signs and backslashes in program_transform_name; we want
2864# the backslashes un-doubled, and then the entire thing wrapped in single
2865# quotes, because this will be expanded first by make and then by the shell. 
2866# Also, because we want to override the logic in subdir configure scripts to
2867# choose program_transform_name, replace any s,x,x, with s,y,y,.
2868sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2869${program_transform_name}
2870EOF_SED
2871gcc_transform_name=`cat conftestsed.out`
2872rm -f conftestsed.out
2873baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2874tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
2875if test "$silent" = yes; then
2876  baseargs="$baseargs --silent"
2877  tbaseargs="$tbaseargs --silent"
2878fi
2879baseargs="$baseargs --disable-option-checking"
2880tbaseargs="$tbaseargs --disable-option-checking"
2881
2882# Record and document user additions to sub configure arguments.
2883AC_ARG_VAR([build_configargs],
2884	   [additional configure arguments for build directories])
2885AC_ARG_VAR([host_configargs],
2886	   [additional configure arguments for host directories])
2887AC_ARG_VAR([target_configargs],
2888	   [additional configure arguments for target directories])
2889
2890# For the build-side libraries, we just need to pretend we're native,
2891# and not use the same cache file.  Multilibs are neither needed nor
2892# desired.
2893build_configargs="$build_configargs --cache-file=../config.cache ${baseargs}"
2894
2895# For host modules, accept cache file option, or specification as blank.
2896case "${cache_file}" in
2897"") # empty
2898  cache_file_option="" ;;
2899/* | [[A-Za-z]]:[[\\/]]* ) # absolute path
2900  cache_file_option="--cache-file=${cache_file}" ;;
2901*) # relative path
2902  cache_file_option="--cache-file=../${cache_file}" ;;
2903esac
2904
2905# Host dirs don't like to share a cache file either, horribly enough.
2906# This seems to be due to autoconf 2.5x stupidity.
2907host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
2908
2909target_configargs="$target_configargs ${tbaseargs}"
2910
2911# Passing a --with-cross-host argument lets the target libraries know
2912# whether they are being built with a cross-compiler or being built
2913# native.  However, it would be better to use other mechanisms to make the
2914# sorts of decisions they want to make on this basis.  Please consider
2915# this option to be deprecated.  FIXME.
2916if test x${is_cross_compiler} = xyes ; then
2917  target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
2918fi
2919
2920# Special user-friendly check for native x86_64-linux build, if
2921# multilib is not explicitly enabled.
2922case "$target:$have_compiler:$host:$target:$enable_multilib" in
2923  x86_64-*linux*:yes:$build:$build:)
2924    # Make sure we have a developement environment that handles 32-bit
2925    dev64=no
2926    echo "int main () { return 0; }" > conftest.c
2927    ${CC} -m32 -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
2928    if test $? = 0 ; then
2929      if test -s conftest || test -s conftest.exe ; then
2930	dev64=yes
2931      fi
2932    fi 
2933    rm -f conftest*
2934    if test x${dev64} != xyes ; then
2935      AC_MSG_ERROR([I suspect your system does not have 32-bit developement libraries (libc and headers). If you have them, rerun configure with --enable-multilib. If you do not have them, and want to build a 64-bit-only compiler, rerun configure with --disable-multilib.])
2936    fi
2937    ;;
2938esac
2939
2940# Default to --enable-multilib.
2941if test x${enable_multilib} = x ; then
2942  target_configargs="--enable-multilib ${target_configargs}"
2943fi
2944
2945# Pass --with-newlib if appropriate.  Note that target_configdirs has
2946# changed from the earlier setting of with_newlib.
2947if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
2948  target_configargs="--with-newlib ${target_configargs}"
2949fi
2950
2951# Different target subdirs use different values of certain variables
2952# (notably CXX).  Worse, multilibs use *lots* of different values.
2953# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2954# it doesn't automatically accept command-line overrides of them.
2955# This means it's not safe for target subdirs to share a cache file,
2956# which is disgusting, but there you have it.  Hopefully this can be
2957# fixed in future.  It's still worthwhile to use a cache file for each
2958# directory.  I think.
2959
2960# Pass the appropriate --build, --host, --target and --cache-file arguments.
2961# We need to pass --target, as newer autoconf's requires consistency
2962# for target_alias and gcc doesn't manage it consistently.
2963target_configargs="--cache-file=./config.cache ${target_configargs}"
2964
2965FLAGS_FOR_TARGET=
2966case " $target_configdirs " in
2967 *" newlib "*)
2968  case " $target_configargs " in
2969  *" --with-newlib "*)
2970   case "$target" in
2971    *-cygwin*)
2972      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -isystem $$s/winsup/cygwin/include'
2973      ;;
2974   esac
2975
2976   # If we're not building GCC, don't discard standard headers.
2977   if test -d ${srcdir}/gcc; then
2978     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
2979
2980     if test "${build}" != "${host}"; then
2981       # On Canadian crosses, CC_FOR_TARGET will have already been set
2982       # by `configure', so we won't have an opportunity to add -Bgcc/
2983       # to it.  This is right: we don't want to search that directory
2984       # for binaries, but we want the header files in there, so add
2985       # them explicitly.
2986       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
2987
2988       # Someone might think of using the pre-installed headers on
2989       # Canadian crosses, in case the installed compiler is not fully
2990       # compatible with the compiler being built.  In this case, it
2991       # would be better to flag an error than risking having
2992       # incompatible object files being constructed.  We can't
2993       # guarantee that an error will be flagged, but let's hope the
2994       # compiler will do it, when presented with incompatible header
2995       # files.
2996     fi
2997   fi
2998
2999   case "${target}-${is_cross_compiler}" in
3000   i[[3456789]]86-*-linux*-no)
3001      # Here host == target, so we don't need to build gcc,
3002      # so we don't want to discard standard headers.
3003      FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
3004      ;;
3005   *)
3006      # If we're building newlib, use its generic headers last, but search
3007      # for any libc-related directories first (so make it the last -B
3008      # switch).
3009      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
3010
3011      # If we're building libgloss, find the startup file, simulator library
3012      # and linker script.
3013      case " $target_configdirs " in
3014	*" libgloss "*)
3015	# Look for startup file, simulator library and maybe linker script.
3016	FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
3017	# Look for libnosys.a in case the target needs it.
3018	FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
3019	# Most targets have the linker script in the source directory.
3020	FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
3021	;;
3022      esac
3023      ;;
3024   esac
3025   ;;
3026  esac
3027  ;;
3028esac
3029
3030case "$target" in
3031  x86_64-*mingw* | *-w64-mingw*)
3032  # MinGW-w64 does not use newlib, nor does it use winsup. It may,
3033  # however, use a symlink named 'mingw' in ${prefix} .
3034    FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include'
3035    ;;
3036  *-mingw*)
3037  # MinGW can't be handled as Cygwin above since it does not use newlib.
3038    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'
3039    ;;
3040esac
3041
3042# Allow the user to override the flags for
3043# our build compiler if desired.
3044if test x"${build}" = x"${host}" ; then
3045  CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
3046  CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
3047  LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
3048fi
3049
3050# On Canadian crosses, we'll be searching the right directories for
3051# the previously-installed cross compiler, so don't bother to add
3052# flags for directories within the install tree of the compiler
3053# being built; programs in there won't even run.
3054if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
3055  # Search for pre-installed headers if nothing else fits.
3056  FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
3057fi
3058
3059if test "x${use_gnu_ld}" = x &&
3060   echo " ${configdirs} " | grep " ld " > /dev/null ; then
3061  # Arrange for us to find uninstalled linker scripts.
3062  FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
3063fi
3064
3065# Search for other target-specific linker scripts and such.
3066case "${target}" in
3067  mep*)
3068    FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
3069    ;;
3070esac
3071
3072# Makefile fragments.
3073for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
3074do
3075  eval fragval=\$$frag
3076  if test $fragval != /dev/null; then
3077    eval $frag=${srcdir}/$fragval
3078  fi
3079done
3080AC_SUBST_FILE(host_makefile_frag)
3081AC_SUBST_FILE(target_makefile_frag)
3082AC_SUBST_FILE(alphaieee_frag)
3083AC_SUBST_FILE(ospace_frag)
3084
3085# Miscellanea: directories, flags, etc.
3086AC_SUBST(RPATH_ENVVAR)
3087AC_SUBST(GCC_SHLIB_SUBDIR)
3088AC_SUBST(tooldir)
3089AC_SUBST(build_tooldir)
3090AC_SUBST(CONFIGURE_GDB_TK)
3091AC_SUBST(GDB_TK)
3092AC_SUBST(INSTALL_GDB_TK)
3093
3094# Build module lists & subconfigure args.
3095AC_SUBST(build_configargs)
3096AC_SUBST(build_configdirs)
3097
3098# Host module lists & subconfigure args.
3099AC_SUBST(host_configargs)
3100AC_SUBST(configdirs)
3101AC_SUBST(target_configdirs)
3102
3103# Target module lists & subconfigure args.
3104AC_SUBST(target_configargs)
3105
3106
3107# Build tools.
3108AC_SUBST(AR_FOR_BUILD)
3109AC_SUBST(AS_FOR_BUILD)
3110AC_SUBST(CC_FOR_BUILD)
3111AC_SUBST(CFLAGS_FOR_BUILD)
3112AC_SUBST(CXXFLAGS_FOR_BUILD)
3113AC_SUBST(CXX_FOR_BUILD)
3114AC_SUBST(DLLTOOL_FOR_BUILD)
3115AC_SUBST(GCJ_FOR_BUILD)
3116AC_SUBST(GFORTRAN_FOR_BUILD)
3117AC_SUBST(GOC_FOR_BUILD)
3118AC_SUBST(LDFLAGS_FOR_BUILD)
3119AC_SUBST(LD_FOR_BUILD)
3120AC_SUBST(NM_FOR_BUILD)
3121AC_SUBST(RANLIB_FOR_BUILD)
3122AC_SUBST(WINDMC_FOR_BUILD)
3123AC_SUBST(WINDRES_FOR_BUILD)
3124
3125# Generate default definitions for YACC, M4, LEX and other programs that run
3126# on the build machine.  These are used if the Makefile can't locate these
3127# programs in objdir.
3128MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
3129
3130AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
3131case " $build_configdirs " in
3132  *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
3133esac
3134
3135AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
3136case " $build_configdirs " in
3137  *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
3138esac
3139
3140AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
3141case " $build_configdirs " in
3142  *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
3143esac
3144
3145AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
3146case " $build_configdirs " in
3147  *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3148  *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
3149esac
3150
3151AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
3152case " $build_configdirs " in
3153  *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3154esac
3155
3156AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
3157case " $build_configdirs " in
3158  *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
3159  *)
3160changequote(,)
3161    # For an installed makeinfo, we require it to be from texinfo 4.7 or
3162    # higher, else we use the "missing" dummy.
3163    if ${MAKEINFO} --version \
3164       | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
3165      :
3166    else
3167      MAKEINFO="$MISSING makeinfo"
3168    fi
3169    ;;
3170changequote([,])
3171esac
3172
3173# FIXME: expect and dejagnu may become build tools?
3174
3175AC_CHECK_PROGS(EXPECT, expect, expect)
3176case " $configdirs " in
3177  *" expect "*)
3178    test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
3179    ;;
3180esac
3181
3182AC_CHECK_PROGS(RUNTEST, runtest, runtest)
3183case " $configdirs " in
3184  *" dejagnu "*)
3185    test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
3186    ;;
3187esac
3188
3189
3190# Host tools.
3191NCN_STRICT_CHECK_TOOLS(AR, ar)
3192NCN_STRICT_CHECK_TOOLS(AS, as)
3193NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
3194NCN_STRICT_CHECK_TOOLS(LD, ld)
3195NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
3196NCN_STRICT_CHECK_TOOLS(NM, nm)
3197NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, true)
3198NCN_STRICT_CHECK_TOOLS(STRIP, strip, true)
3199NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
3200NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
3201NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
3202NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
3203NCN_STRICT_CHECK_TOOLS(READELF, readelf)
3204AC_SUBST(CC)
3205AC_SUBST(CXX)
3206AC_SUBST(CFLAGS)
3207AC_SUBST(CXXFLAGS)
3208
3209# Target tools.
3210AC_ARG_WITH([build-time-tools], 
3211  [AS_HELP_STRING([--with-build-time-tools=PATH],
3212		  [use given path to find target tools during the build])],
3213  [case x"$withval" in
3214     x/*) ;;
3215     *)
3216       with_build_time_tools=
3217       AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
3218       ;;
3219   esac],
3220  [with_build_time_tools=])
3221
3222NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
3223NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
3224NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
3225NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
3226NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
3227NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo)
3228
3229ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
3230ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
3231ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
3232ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
3233ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
3234ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
3235ACX_CHECK_INSTALLED_TARGET_TOOL(OBJCOPY_FOR_TARGET, objcopy)
3236ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
3237ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib)
3238ACX_CHECK_INSTALLED_TARGET_TOOL(READELF_FOR_TARGET, readelf)
3239ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
3240ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
3241ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
3242
3243RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
3244
3245GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
3246GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
3247GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3248dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
3249GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
3250		[gcc/xg++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
3251		c++)
3252GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
3253		[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 -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
3254		c++)
3255GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
3256GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3257GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
3258		[gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
3259GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
3260		[gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
3261GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC,
3262		[gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go)
3263GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
3264GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
3265GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
3266GCC_TARGET_TOOL(objcopy, OBJCOPY_FOR_TARGET, OBJDUMP, [binutils/objcopy])
3267GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
3268GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
3269GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF, [binutils/readelf])
3270GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new])
3271GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
3272GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
3273
3274AC_SUBST(FLAGS_FOR_TARGET)
3275AC_SUBST(RAW_CXX_FOR_TARGET)
3276
3277# Certain tools may need extra flags.
3278AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
3279RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
3280NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
3281
3282# When building target libraries, except in a Canadian cross, we use
3283# the same toolchain as the compiler we just built.
3284COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
3285COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
3286COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
3287if test $host = $build; then
3288  case " $configdirs " in
3289    *" gcc "*)
3290      COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
3291      COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
3292      COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
3293      ;;
3294  esac
3295fi
3296
3297AC_SUBST(COMPILER_AS_FOR_TARGET)
3298AC_SUBST(COMPILER_LD_FOR_TARGET)
3299AC_SUBST(COMPILER_NM_FOR_TARGET)
3300
3301AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3302AC_ARG_ENABLE(maintainer-mode,
3303[AS_HELP_STRING([--enable-maintainer-mode],
3304		[enable make rules and dependencies not useful
3305		 (and sometimes confusing) to the casual installer])],
3306      USE_MAINTAINER_MODE=$enableval,
3307      USE_MAINTAINER_MODE=no)
3308AC_MSG_RESULT($USE_MAINTAINER_MODE)
3309AC_SUBST(MAINTAINER_MODE_TRUE)
3310AC_SUBST(MAINTAINER_MODE_FALSE)
3311if test "$USE_MAINTAINER_MODE" = yes; then
3312  MAINTAINER_MODE_TRUE=
3313  MAINTAINER_MODE_FALSE='#'
3314else
3315  MAINTAINER_MODE_TRUE='#'
3316  MAINTAINER_MODE_FALSE=
3317fi	
3318MAINT=$MAINTAINER_MODE_TRUE
3319AC_SUBST(MAINT)dnl
3320
3321# ---------------------
3322# GCC bootstrap support
3323# ---------------------
3324
3325# Stage specific cflags for build.
3326stage1_cflags="-g"
3327case $build in
3328  vax-*-*)
3329    case ${GCC} in
3330      yes) stage1_cflags="-g -Wa,-J" ;;
3331      *) stage1_cflags="-g -J" ;;
3332    esac ;;
3333esac
3334
3335AC_SUBST(stage1_cflags)
3336
3337# Enable --enable-checking in stage1 of the compiler.
3338AC_ARG_ENABLE(stage1-checking,
3339[AS_HELP_STRING([[--enable-stage1-checking[=all]]],
3340		[choose additional checking for stage1 of the compiler])],
3341[stage1_checking=--enable-checking=${enable_stage1_checking}],
3342[if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
3343  stage1_checking=--enable-checking=yes,types
3344else
3345  stage1_checking=--enable-checking=$enable_checking,types
3346fi])
3347AC_SUBST(stage1_checking)
3348
3349# Enable -Werror in bootstrap stage2 and later.
3350AC_ARG_ENABLE(werror,
3351[AS_HELP_STRING([--enable-werror],
3352		[enable -Werror in bootstrap stage2 and later])], [],
3353[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
3354  enable_werror=yes
3355else
3356  enable_werror=no
3357fi])
3358case ${enable_werror} in
3359  yes) stage2_werror_flag="--enable-werror-always" ;;
3360  *) stage2_werror_flag="" ;;
3361esac
3362AC_SUBST(stage2_werror_flag)
3363
3364# Enable --enable-host-shared.
3365AC_ARG_ENABLE(host-shared,
3366[AS_HELP_STRING([--enable-host-shared],
3367		[build host code as shared libraries])],
3368[host_shared=$enableval], [host_shared=no])
3369AC_SUBST(host_shared)
3370
3371# Specify what files to not compare during bootstrap.
3372
3373compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
3374case "$target" in
3375  hppa*64*-*-hpux*) ;;
3376  hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
3377  powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;;
3378esac
3379AC_SUBST(compare_exclusions)
3380
3381AC_CONFIG_FILES([Makefile],
3382  [sed "$extrasub_build" Makefile |
3383   sed "$extrasub_host" |
3384   sed "$extrasub_target" > mf$$
3385   mv -f mf$$ Makefile],
3386  [extrasub_build="$extrasub_build"
3387   extrasub_host="$extrasub_host"
3388   extrasub_target="$extrasub_target"])
3389AC_OUTPUT
3390