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