]> git.ipfire.org Git - thirdparty/gcc.git/blame - configure.ac
PR bootstrap/33781
[thirdparty/gcc.git] / configure.ac
CommitLineData
77ae4d79 1# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2# 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
28e9041c 3#
4# This file is free software; you can redistribute it and/or modify it
5# under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful, but
10# WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12# General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, write to the Free Software
06b8a6e6 16# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
28e9041c 17
18##############################################################################
71ab34df 19### WARNING: this file contains embedded tabs. Do not run untabify on this file.
20
599a3eac 21sinclude(config/acx.m4)
22
71ab34df 23AC_INIT(move-if-change)
b30fcfae 24AC_PREREQ(2.59)
25
26# Find the build, host, and target systems.
27ACX_NONCANONICAL_BUILD
28ACX_NONCANONICAL_HOST
29ACX_NONCANONICAL_TARGET
30
31dnl Autoconf 2.5x and later will set a default program prefix if
32dnl --target was used, even if it was the same as --host. Disable
33dnl that behavior. This must be done before AC_CANONICAL_SYSTEM
34dnl to take effect.
35test "$host_noncanonical" = "$target_noncanonical" &&
36 test "$program_prefix$program_suffix$program_transform_name" = \
37 NONENONEs,x,x, &&
38 program_transform_name=s,y,y,
39
71ab34df 40AC_CANONICAL_SYSTEM
41AC_ARG_PROGRAM
42
b30fcfae 43m4_pattern_allow([^AS_FOR_TARGET$])dnl
93c5e793 44m4_pattern_allow([^AS_FOR_BUILD$])dnl
b30fcfae 45
450e6c84 46# Get 'install' or 'install-sh' and its variants.
47AC_PROG_INSTALL
599a3eac 48ACX_PROG_LN
5965d276 49AC_PROG_LN_S
450e6c84 50
71ab34df 51### we might need to use some other shell than /bin/sh for running subshells
52### If we are on Windows, search for the shell. This will permit people
53### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
54### without also having to set CONFIG_SHELL. This code will work when
55### using bash, which sets OSTYPE.
56case "${OSTYPE}" in
57*win32*)
58 if test x${CONFIG_SHELL} = x ; then
59 if test ! -f /bin/sh ; then
60 if test x${SHELL} != x && test -f ${SHELL} ; then
61 CONFIG_SHELL=${SHELL}
62 export CONFIG_SHELL
63 else
64 for prog in sh sh.exe bash bash.exe; do
65 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
66 for dir in $PATH; do
67 test -z "$dir" && dir=.
68 if test -f $dir/$prog; then
69 CONFIG_SHELL=$dir/$prog
70 export CONFIG_SHELL
71 break
72 fi
73 done
74 IFS="$save_ifs"
75 test -n "${CONFIG_SHELL}" && break
76 done
77 fi
78 fi
79 fi
80 ;;
81esac
82
83config_shell=${CONFIG_SHELL-/bin/sh}
84
71ab34df 85progname=$0
86# if PWD already has a value, it is probably wrong.
87if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
88
77ae4d79 89# Export original configure arguments for use by sub-configures.
90# Quote arguments with shell meta charatcers.
91TOPLEVEL_CONFIGURE_ARGUMENTS=
92set -- "$progname" "$@"
ae8552b7 93for ac_arg
94do
77ae4d79 95 case "$ac_arg" in
d623d587 96 *" "*|*" "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
77ae4d79 97 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
98 # if the argument is of the form -foo=baz, quote the baz part only
99 ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
100 *) ;;
101 esac
102 # Add the quoted argument to the list.
103 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
104done
af7bb0c0 105if test "$silent" = yes; then
106 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
107fi
77ae4d79 108# Remove the initial space we just introduced and, as these will be
109# expanded by make, quote '$'.
110TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
a16b5a9d 111AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
71ab34df 112
113moveifchange=${srcdir}/move-if-change
114
3a8631fa 115srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
116
117# We pass INSTALL explicitly to sub-makes. Make sure that it is not
118# a relative path.
119if test "$INSTALL" = "${srcdir}/install-sh -c"; then
120 INSTALL="${srcpwd}/install-sh -c"
121fi
122
71ab34df 123# Set srcdir to "." if that's what it is.
124# This is important for multilib support.
125pwd=`${PWDCMD-pwd}`
71ab34df 126if test "${pwd}" = "${srcpwd}" ; then
127 srcdir=.
128fi
129
130topsrcdir=$srcpwd
28e9041c 131
805e22b2 132extra_host_args=
14ac9144 133
28e9041c 134### To add a new directory to the tree, first choose whether it is a target
135### or a host dependent tool. Then put it into the appropriate list
805e22b2 136### (library or tools, host or target), doing a dependency sort.
137
138# Subdirs will be configured in the order listed in build_configdirs,
139# configdirs, or target_configdirs; see the serialization section below.
140
141# Dependency sorting is only needed when *configuration* must be done in
142# a particular order. In all cases a dependency should be specified in
143# the Makefile, whether or not it's implicitly specified here.
28e9041c 144
805e22b2 145# Double entries in build_configdirs, configdirs, or target_configdirs may
146# cause circular dependencies and break everything horribly.
28e9041c 147
2f8725b0 148# these library is used by various programs built for the build
149# environment
150#
151build_libs="build-libiberty"
152
153# these tools are built for the build environment
2b59cb05 154build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes"
2f8725b0 155
28e9041c 156# these libraries are used by various programs built for the host environment
157#
d45318b3 158host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr"
28e9041c 159
28e9041c 160# these tools are built for the host environment
161# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
162# know that we are building the simulator.
805e22b2 163# binutils, gas and ld appear in that order because it makes sense to run
164# "make check" in that particular order.
a136b23d 165host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc 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 166
4d5a2476 167# libgcj represents the runtime libraries only used by gcj.
168libgcj="target-libffi \
4d5a2476 169 target-zlib \
170 target-qthreads \
171 target-libjava"
172
28e9041c 173# these libraries are built for the target environment, and are built after
174# the host libraries and the host tools (which may be a cross compiler)
175#
27bfe7b7 176target_libraries="target-libgcc \
177 target-libiberty \
ed37269d 178 target-libgloss \
179 target-newlib \
a0191bfe 180 target-libgomp \
54d7d5f2 181 target-libstdc++-v3 \
4ee9c684 182 target-libmudflap \
0d55f4d0 183 target-libssp \
4ee9c684 184 target-libgfortran \
dd6d3a67 185 target-boehm-gc \
cdfc500e 186 ${libgcj} \
93341878 187 target-libobjc \
a0191bfe 188 target-libada"
28e9041c 189
328637e8 190# these tools are built using the target libraries, and are intended to
191# run only in the target environment
28e9041c 192#
328637e8 193# note: any program that *uses* libraries that are in the "target_libraries"
28e9041c 194# list belongs in this list. those programs are also very likely
195# candidates for the "native_only" list which follows
196#
410f1dde 197target_tools="target-examples target-groff target-gperf target-rda"
28e9041c 198
199################################################################################
200
28e9041c 201## All tools belong in one of the four categories, and are assigned above
202## We assign ${configdirs} this way to remove all embedded newlines. This
203## is important because configure will choke if they ever get through.
204## ${configdirs} is directories we build using the host tools.
205## ${target_configdirs} is directories we build using the target tools.
28e9041c 206configdirs=`echo ${host_libs} ${host_tools}`
328637e8 207target_configdirs=`echo ${target_libraries} ${target_tools}`
2b59cb05 208build_configdirs=`echo ${build_libs} ${build_tools}`
6f4f34a7 209
d2d2630b 210m4_divert_text([PARSE_ARGS],
211[ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
212])
213
28e9041c 214################################################################################
215
28e9041c 216srcname="gnu development package"
217
218# This gets set non-empty for some net releases of packages.
219appdirs=""
220
99aa6b34 221# Define is_cross_compiler to save on calls to 'test'.
222is_cross_compiler=
223if test x"${host}" = x"${target}" ; then
224 is_cross_compiler=no
225else
226 is_cross_compiler=yes
227fi
228
2f61b8ca 229# Find the build and target subdir names.
6f4f34a7 230GCC_TOPLEV_SUBDIRS
7bb9dd92 231
13b1b53a 232# Skipdirs are removed silently.
233skipdirs=
234# Noconfigdirs are removed loudly.
235noconfigdirs=""
28e9041c 236
13b1b53a 237use_gnu_ld=
238# Make sure we don't let GNU ld be added if we didn't want it.
239if test x$with_gnu_ld = xno ; then
240 use_gnu_ld=no
241 noconfigdirs="$noconfigdirs ld"
28e9041c 242fi
243
13b1b53a 244use_gnu_as=
245# Make sure we don't let GNU as be added if we didn't want it.
246if test x$with_gnu_as = xno ; then
247 use_gnu_as=no
248 noconfigdirs="$noconfigdirs gas"
28e9041c 249fi
250
13b1b53a 251# some tools are so dependent upon X11 that if we're not building with X,
252# it's not even worth trying to configure, much less build, that tool.
28e9041c 253
13b1b53a 254case ${with_x} in
255 yes | "") ;; # the default value for this tree is that X11 is available
f6c0123d 256 no)
f843f075 257 skipdirs="${skipdirs} tk itcl libgui"
f6c0123d 258 # We won't be able to build gdbtk without X.
259 enable_gdbtk=no
260 ;;
13b1b53a 261 *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
262esac
28e9041c 263
13b1b53a 264# Some tools are only suitable for building in a "native" situation.
2a1ac811 265# Remove these if host!=target.
a2c13723 266native_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 267
268# Similarly, some are only suitable for cross toolchains.
269# Remove these if host=target.
270cross_only="target-libgloss target-newlib target-opcodes"
28e9041c 271
13b1b53a 272case $is_cross_compiler in
273 no) skipdirs="${skipdirs} ${cross_only}" ;;
274 yes) skipdirs="${skipdirs} ${native_only}" ;;
275esac
28e9041c 276
4ff41e84 277# If both --with-headers and --with-libs are specified, default to
278# --without-newlib.
3bdd04cc 279if test x"${with_headers}" != x && test x"${with_headers}" != xno \
280 && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
4ff41e84 281 if test x"${with_newlib}" = x ; then
282 with_newlib=no
283 fi
284fi
285
286# Recognize --with-newlib/--without-newlib.
287case ${with_newlib} in
288 no) skipdirs="${skipdirs} target-newlib" ;;
289 yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
290esac
291
28e9041c 292# Configure extra directories which are host specific
293
294case "${host}" in
13b1b53a 295 *-cygwin*)
805e22b2 296 configdirs="$configdirs libtermcap" ;;
28e9041c 297esac
298
ff7dcf6a 299# A target can indicate whether a language isn't supported for some reason.
300# Only spaces may be used in this macro; not newlines or tabs.
301unsupported_languages=
302
28e9041c 303# Remove more programs from consideration, based on the host or
304# target this usually means that a port of the program doesn't
305# exist yet.
306
28e9041c 307case "${host}" in
3a6d39fe 308 hppa*64*-*-*)
309 noconfigdirs="$noconfigdirs byacc"
310 ;;
f74ea578 311 i[[3456789]]86-*-vsta)
f843f075 312 noconfigdirs="$noconfigdirs tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl gnuserv gettext"
28e9041c 313 ;;
f74ea578 314 i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*)
f843f075 315 noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl gnuserv libffi"
602d002b 316 ;;
06dd9e69 317 x86_64-*-mingw*)
318 noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool newlib"
319 ;;
f74ea578 320 i[[3456789]]86-*-mingw32*)
f843f075 321 # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl gnuserv"
d6d689df 322 noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool newlib"
602d002b 323 ;;
f74ea578 324 i[[3456789]]86-*-beos*)
f843f075 325 noconfigdirs="$noconfigdirs tk itcl libgui gdb"
602d002b 326 ;;
151ad919 327 *-*-cygwin*)
9dec93ca 328 noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl"
28e9041c 329 ;;
ed37269d 330 *-*-netbsd*)
9dec93ca 331 noconfigdirs="$noconfigdirs rcs"
ed37269d 332 ;;
28e9041c 333 ppc*-*-pe)
f843f075 334 noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl gnuserv"
1f448e1c 335 ;;
1532359f 336 powerpc-*-beos*)
f843f075 337 noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
1532359f 338 ;;
28e9041c 339esac
340
4ee9c684 341
93341878 342AC_ARG_ENABLE(libada,
09c2d953 343[ --enable-libada build libada directory],
93341878 344ENABLE_LIBADA=$enableval,
345ENABLE_LIBADA=yes)
346if test "${ENABLE_LIBADA}" != "yes" ; then
a136b23d 347 noconfigdirs="$noconfigdirs gnattools"
93341878 348fi
349
07da5214 350AC_ARG_ENABLE(libssp,
09c2d953 351[ --enable-libssp build libssp directory],
07da5214 352ENABLE_LIBSSP=$enableval,
353ENABLE_LIBSSP=yes)
07da5214 354
f7ec7829 355# Save it here so that, even in case of --enable-libgcj, if the Java
356# front-end isn't enabled, we still get libgcj disabled.
357libgcj_saved=$libgcj
358case $enable_libgcj in
359yes)
360 # If we reset it here, it won't get added to noconfigdirs in the
361 # target-specific build rules, so it will be forcibly enabled
362 # (unless the Java language itself isn't enabled).
363 libgcj=
364 ;;
365no)
366 # Make sure we get it printed in the list of not supported target libs.
367 noconfigdirs="$noconfigdirs ${libgcj}"
368 ;;
369esac
370
4ee9c684 371
50996fe5 372# Disable libmudflap on some systems.
373if test x$enable_libmudflap = x ; then
344b2784 374 case "${target}" in
e77068c4 375 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux*)
cb8a7007 376 # Enable libmudflap by default in GNU and friends.
344b2784 377 ;;
122ae8c7 378 *-*-freebsd*)
379 # Enable libmudflap by default in FreeBSD.
380 ;;
344b2784 381 *)
382 # Disable it by default everywhere else.
383 noconfigdirs="$noconfigdirs target-libmudflap"
384 ;;
385 esac
50996fe5 386fi
4ee9c684 387
50996fe5 388# Disable libgomp on non POSIX hosted systems.
389if test x$enable_libgomp = x ; then
1e8e9920 390 # Enable libgomp by default on hosted POSIX systems.
391 case "${target}" in
392 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
393 ;;
394 *-*-netbsd* | *-*-freebsd* | *-*-openbsd*)
395 ;;
778f2e8d 396 *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11*)
1e8e9920 397 ;;
634efbee 398 *-*-darwin* | *-*-aix*)
1e8e9920 399 ;;
400 *)
401 noconfigdirs="$noconfigdirs target-libgomp"
402 ;;
403 esac
50996fe5 404fi
1e8e9920 405
1c5767f1 406# Default libgloss CPU subdirectory.
407libgloss_dir="$target_cpu"
4ee9c684 408
28e9041c 409case "${target}" in
f6dd84a6 410 *-*-chorusos)
d6f7b8f2 411 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
f6dd84a6 412 ;;
06e8069d 413 powerpc-*-darwin* | i[[3456789]]86-*-darwin* | x86_64-*-darwin9*)
ffe859e6 414 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
d28caca4 415 noconfigdirs="$noconfigdirs sim target-rda"
0894307c 416 ;;
fce068fd 417 *-*-darwin*)
418 noconfigdirs="$noconfigdirs ld gas gdb gprof"
419 noconfigdirs="$noconfigdirs sim target-rda"
420 noconfigdirs="$noconfigdirs ${libgcj}"
421 ;;
71ab34df 422 *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
d6f7b8f2 423 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
e701a477 424 ;;
c01dd063 425 *-*-freebsd*)
4ee9c684 426 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
427 if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
428 && test -f /usr/local/include/gmp.h; then
429 with_gmp=/usr/local
430 fi
431
432 # Skip some stuff that's unsupported on some FreeBSD configurations.
433 case "${target}" in
434 i*86-*-*) ;;
435 alpha*-*-*) ;;
436 *)
d6f7b8f2 437 noconfigdirs="$noconfigdirs ${libgcj}"
4ee9c684 438 ;;
439 esac
440 ;;
336577be 441 *-*-kaos*)
442 # Remove unsupported stuff on all kaOS configurations.
d6f7b8f2 443 skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx"
336577be 444 skipdirs="$skipdirs target-libobjc target-examples target-groff target-gperf"
445 skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
446 noconfigdirs="$noconfigdirs target-libgloss"
447 ;;
1602f15c 448 *-*-netbsd*)
449 # Skip some stuff on all NetBSD configurations.
4babcd43 450 noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
1602f15c 451
452 # Skip some stuff that's unsupported on some NetBSD configurations.
453 case "${target}" in
ec66e65b 454 i*86-*-netbsdelf*) ;;
c8a4cc21 455 arm*-*-netbsdelf*) ;;
1602f15c 456 *)
d6f7b8f2 457 noconfigdirs="$noconfigdirs ${libgcj}"
1602f15c 458 ;;
459 esac
460 ;;
634f7a13 461 *-*-netware*)
d6f7b8f2 462 noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap"
28e9041c 463 ;;
952fead6 464 *-*-rtems*)
d6f7b8f2 465 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
952fead6 466 ;;
9f88bc9d 467 # The tpf target doesn't support gdb yet.
468 *-*-tpf*)
d6f7b8f2 469 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
9f88bc9d 470 ;;
688429c4 471 *-*-uclinux*)
d6f7b8f2 472 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
688429c4 473 ;;
28e9041c 474 *-*-vxworks*)
d6f7b8f2 475 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
28e9041c 476 ;;
8c7cf808 477 alpha*-dec-osf*)
ebd9f514 478 # ld works, but does not support shared libraries.
479 # newlib is not 64 bit ready. I'm not sure about fileutils.
28e9041c 480 # gas doesn't generate exception information.
ebd9f514 481 noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss"
28e9041c 482 ;;
483 alpha*-*-*vms*)
d6f7b8f2 484 noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}"
28e9041c 485 ;;
f3efc960 486 alpha*-*-linux*)
487 # newlib is not 64 bit ready
1986d3d9 488 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
f3efc960 489 ;;
28e9041c 490 alpha*-*-*)
491 # newlib is not 64 bit ready
d6f7b8f2 492 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
28e9041c 493 ;;
700d38c2 494 am33_2.0-*-linux*)
d6f7b8f2 495 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
700d38c2 496 ;;
d5d994d4 497 sh-*-linux*)
d6f7b8f2 498 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
d5d994d4 499 ;;
8027f1d6 500 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
d6f7b8f2 501 noconfigdirs="$noconfigdirs ${libgcj}"
4d5a2476 502 noconfigdirs="$noconfigdirs target-examples"
151ad919 503 noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr"
f843f075 504 noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
8027f1d6 505 noconfigdirs="$noconfigdirs expect dejagnu"
506 # the C++ libraries don't build on top of CE's C libraries
54d7d5f2 507 noconfigdirs="$noconfigdirs target-libstdc++-v3"
4babcd43 508 noconfigdirs="$noconfigdirs target-newlib"
8027f1d6 509 case "${host}" in
510 *-*-cygwin*) ;; # keep gdb and readline
123bd2df 511 *) noconfigdirs="$noconfigdirs gdb readline"
8027f1d6 512 ;;
513 esac
1c5767f1 514 libgloss_dir=wince
8027f1d6 515 ;;
151ad919 516 arc-*-*)
d6f7b8f2 517 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
151ad919 518 ;;
6675f2d9 519 arm-semi-aof )
6675f2d9 520 ;;
2704ebd1 521 arm-*-coff | strongarm-*-coff | xscale-*-coff)
d6f7b8f2 522 noconfigdirs="$noconfigdirs ${libgcj}"
1c5767f1 523 libgloss_dir=arm
2704ebd1 524 ;;
30e9913f 525 arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )
2704ebd1 526 noconfigdirs="$noconfigdirs target-libffi target-qthreads"
1c5767f1 527 libgloss_dir=arm
2704ebd1 528 ;;
6783d878 529 arm*-*-linux-gnueabi)
b9eb3c64 530 noconfigdirs="$noconfigdirs target-qthreads"
531 noconfigdirs="$noconfigdirs target-libobjc"
aa331421 532 case ${with_newlib} in
533 no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
534 esac
1c5767f1 535 libgloss_dir=arm
6783d878 536 ;;
8647a116 537 arm*-*-symbianelf*)
d6f7b8f2 538 noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
1c5767f1 539 libgloss_dir=arm
8647a116 540 ;;
28e9041c 541 arm-*-pe*)
d6f7b8f2 542 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
28e9041c 543 ;;
0579e60e 544 thumb-*-coff)
d6f7b8f2 545 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
0579e60e 546 ;;
151ad919 547 thumb-*-elf)
d6f7b8f2 548 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
151ad919 549 ;;
151ad919 550 thumb-*-pe)
d6f7b8f2 551 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
151ad919 552 ;;
ed37269d 553 arm-*-riscix*)
d6f7b8f2 554 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
ed37269d 555 ;;
a899dc64 556 avr-*-*)
d6f7b8f2 557 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
a899dc64 558 ;;
7172be51 559 bfin-*-*)
3eec5071 560 noconfigdirs="$noconfigdirs gdb"
8d687193 561 if test x${is_cross_compiler} != xno ; then
7172be51 562 target_configdirs="${target_configdirs} target-bsp target-cygmon"
563 fi
564 ;;
6c5e2f80 565 c4x-*-* | tic4x-*-*)
d6f7b8f2 566 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
df2ff48f 567 ;;
568 c54x*-*-* | tic54x-*-*)
d6f7b8f2 569 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
df2ff48f 570 ;;
06b2086e 571 cris-*-* | crisv32-*-*)
ff7dcf6a 572 unsupported_languages="$unsupported_languages java"
06b2086e 573 case "${target}" in
c0188550 574 *-*-aout)
2c718da0 575 unsupported_languages="$unsupported_languages fortran"
ff7dcf6a 576 noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
c0188550 577 *-*-elf)
2c718da0 578 unsupported_languages="$unsupported_languages fortran"
d0c03476 579 noconfigdirs="$noconfigdirs target-boehm-gc";;
c0188550 580 *-*-linux*)
d0c03476 581 noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
06b2086e 582 *)
2c718da0 583 unsupported_languages="$unsupported_languages fortran"
d6f7b8f2 584 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";;
06b2086e 585 esac
1c5767f1 586 libgloss_dir=cris
10475f52 587 ;;
75b6260c 588 crx-*-*)
d6f7b8f2 589 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap ${libgcj}"
75b6260c 590 ;;
28e9041c 591 d10v-*-*)
d6f7b8f2 592 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
151ad919 593 ;;
594 d30v-*-*)
d6f7b8f2 595 noconfigdirs="$noconfigdirs ${libgcj} gdb"
28e9041c 596 ;;
1c5767f1 597 ep9312-*-elf | ep9312-*-coff)
598 libgloss_dir=arm
599 ;;
f9254114 600 fr30-*-elf*)
d6f7b8f2 601 noconfigdirs="$noconfigdirs ${libgcj} gdb"
f9254114 602 ;;
98b82774 603 frv-*-*)
d6f7b8f2 604 noconfigdirs="$noconfigdirs ${libgcj}"
98b82774 605 ;;
df2ff48f 606 h8300*-*-*)
d6f7b8f2 607 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
df2ff48f 608 ;;
28e9041c 609 h8500-*-*)
d6f7b8f2 610 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
28e9041c 611 ;;
6675f2d9 612 hppa1.1-*-osf* | hppa1.1-*-bsd* )
6675f2d9 613 ;;
954078d1 614 hppa*64*-*-linux* | parisc*64*-*-linux*)
615 # In this case, it's because the hppa64-linux target is for
616 # the kernel only at this point and has no libc, and thus no
617 # headers, crt*.o, etc., all of which are needed by these.
618 noconfigdirs="$noconfigdirs target-zlib"
619 ;;
08261f02 620 parisc*-*-linux* | hppa*-*-linux*)
621 ;;
28e9041c 622 hppa*-*-*elf* | \
1ef89cd1 623 hppa*-*-lites* | \
dc0ea924 624 hppa*-*-openbsd* | \
1ef89cd1 625 hppa*64*-*-*)
d6f7b8f2 626 noconfigdirs="$noconfigdirs ${libgcj}"
28e9041c 627 ;;
75d59721 628 hppa*-hp-hpux11*)
629 noconfigdirs="$noconfigdirs ld shellutils"
630 ;;
1c5767f1 631 hppa*-*-pro*)
632 libgloss_dir=pa
633 ;;
28e9041c 634 hppa*-*-*)
dfb18c91 635 # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
636 # build on HP-UX 10.20.
d6f7b8f2 637 noconfigdirs="$noconfigdirs ld shellutils ${libgcj}"
151ad919 638 ;;
4a9237fb 639 i960-*-*)
d6f7b8f2 640 noconfigdirs="$noconfigdirs ${libgcj} gdb"
4a9237fb 641 ;;
151ad919 642 ia64*-*-elf*)
643 # No gdb support yet.
f843f075 644 noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb"
151ad919 645 ;;
df2ff48f 646 ia64*-**-hpux*)
647 # No gdb or ld support yet.
d6f7b8f2 648 noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
df2ff48f 649 ;;
6675f2d9 650 i370-*-opened*)
6675f2d9 651 ;;
f74ea578 652 i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
d6f7b8f2 653 noconfigdirs="$noconfigdirs ${libgcj}"
1c5767f1 654 libgloss_dir=i386
28e9041c 655 ;;
f74ea578 656 i[[3456789]]86-*-linux*)
4ea2c3bf 657 # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
658 # not build java stuff by default.
659 case "${target}" in
660 *-*-*libc1*)
d6f7b8f2 661 noconfigdirs="$noconfigdirs ${libgcj}";;
4ea2c3bf 662 esac
663
84690ae2 664 # This section makes it possible to build newlib natively on linux.
665 # If we are using a cross compiler then don't configure newlib.
666 if test x${is_cross_compiler} != xno ; then
602d002b 667 noconfigdirs="$noconfigdirs target-newlib"
84690ae2 668 fi
669 noconfigdirs="$noconfigdirs target-libgloss"
670 # If we are not using a cross compiler, do configure newlib.
671 # Note however, that newlib will only be configured in this situation
672 # if the --with-newlib option has been given, because otherwise
673 # 'target-newlib' will appear in skipdirs.
84690ae2 674 ;;
f74ea578 675 i[[3456789]]86-*-mingw32*)
d6d689df 676 target_configdirs="$target_configdirs target-winsup"
677 noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
ba7b87c8 678 ;;
06dd9e69 679 x86_64-*-mingw*)
680 target_configdirs="$target_configdirs target-winsup"
681 noconfigdirs="$noconfigdirs expect target-libgloss target-newlib ${libgcj}"
682 ;;
151ad919 683 *-*-cygwin*)
684 target_configdirs="$target_configdirs target-libtermcap target-winsup"
d6f7b8f2 685 noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}"
2c10944d 686 # always build newlib if winsup directory is present.
d6d689df 687 if test -d "$srcdir/winsup/cygwin"; then
2c10944d 688 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
3fba36a4 689 elif test -d "$srcdir/newlib"; then
d6d689df 690 echo "Warning: winsup/cygwin is missing so newlib can't be built."
2c10944d 691 fi
28e9041c 692 ;;
6675f2d9 693 i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss* | \
694 i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* )
6675f2d9 695 ;;
f74ea578 696 i[[3456789]]86-*-pe)
d6f7b8f2 697 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
28e9041c 698 ;;
f74ea578 699 i[[3456789]]86-*-sco3.2v5*)
28e9041c 700 # The linker does not yet know about weak symbols in COFF,
701 # and is not configured to handle mixed ELF and COFF.
d6f7b8f2 702 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
28e9041c 703 ;;
f74ea578 704 i[[3456789]]86-*-sco*)
d6f7b8f2 705 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
28e9041c 706 ;;
f74ea578 707 i[[3456789]]86-*-solaris2*)
ef1760c1 708 noconfigdirs="$noconfigdirs target-libgloss"
28e9041c 709 ;;
f74ea578 710 i[[3456789]]86-*-sysv4*)
d6f7b8f2 711 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
28e9041c 712 ;;
f74ea578 713 i[[3456789]]86-*-beos*)
d6f7b8f2 714 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
602d002b 715 ;;
ab0da556 716 i[[3456789]]86-*-rdos*)
717 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
718 ;;
4a9237fb 719 m32r-*-*)
d6f7b8f2 720 noconfigdirs="$noconfigdirs ${libgcj}"
4a9237fb 721 ;;
8f71eb19 722 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
d6f7b8f2 723 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
1c5767f1 724 libgloss_dir=m68hc11
8f71eb19 725 ;;
151ad919 726 m68k-*-elf*)
d6f7b8f2 727 noconfigdirs="$noconfigdirs ${libgcj}"
151ad919 728 ;;
729 m68k-*-coff*)
d6f7b8f2 730 noconfigdirs="$noconfigdirs ${libgcj}"
151ad919 731 ;;
1c5767f1 732 m68*-*-* | fido-*-*)
733 libgloss_dir=m68k
734 ;;
52fdc102 735 mcore-*-pe*)
736 # The EPOC C++ environment does not support exceptions or rtti,
737 # and so building libstdc++-v3 tends not to always work.
738 noconfigdirs="$noconfigdirs target-libstdc++-v3"
739 ;;
38135c1e 740 mmix-*-*)
ff7dcf6a 741 noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb libgloss"
2c718da0 742 unsupported_languages="$unsupported_languages fortran java"
38135c1e 743 ;;
28e9041c 744 mn10200-*-*)
d6f7b8f2 745 noconfigdirs="$noconfigdirs ${libgcj}"
28e9041c 746 ;;
747 mn10300-*-*)
d6f7b8f2 748 noconfigdirs="$noconfigdirs ${libgcj}"
28e9041c 749 ;;
957985d9 750 mt-*-*)
f6fa11cb 751 noconfigdirs="$noconfigdirs sim"
752 ;;
28e9041c 753 powerpc-*-aix*)
754 # copied from rs6000-*-* entry
d6f7b8f2 755 noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
28e9041c 756 ;;
757 powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
758 target_configdirs="$target_configdirs target-winsup"
d6f7b8f2 759 noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv ${libgcj}"
28e9041c 760 # always build newlib.
761 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
762 ;;
763 # This is temporary until we can link against shared libraries
764 powerpcle-*-solaris*)
d6f7b8f2 765 noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv ${libgcj}"
1c5767f1 766 libgloss_dir=rs6000
28e9041c 767 ;;
1532359f 768 powerpc-*-beos*)
d6f7b8f2 769 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
1532359f 770 ;;
151ad919 771 powerpc-*-eabi)
d6f7b8f2 772 noconfigdirs="$noconfigdirs ${libgcj}"
1c5767f1 773 libgloss_dir=rs6000
6675f2d9 774 ;;
775 powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
1c5767f1 776 libgloss_dir=rs6000
151ad919 777 ;;
28e9041c 778 rs6000-*-lynxos*)
d6f7b8f2 779 noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
28e9041c 780 ;;
781 rs6000-*-aix*)
d6f7b8f2 782 noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
28e9041c 783 ;;
784 rs6000-*-*)
d6f7b8f2 785 noconfigdirs="$noconfigdirs gprof ${libgcj}"
28e9041c 786 ;;
787 m68k-apollo-*)
d6f7b8f2 788 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
28e9041c 789 ;;
68c9bc25 790 mips*-sde-elf*)
791 skipdirs="$skipdirs target-libiberty"
792 noconfigdirs="$noconfigdirs ${libgcj}"
793 if test x$with_newlib = xyes; then
794 noconfigdirs="$noconfigdirs gprof"
795 fi
796 libgloss_dir=mips
797 ;;
28e9041c 798 mips*-*-irix5*)
d6f7b8f2 799 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
28e9041c 800 ;;
801 mips*-*-irix6*)
dfb18c91 802 # Linking libjava exceeds command-line length limits on at least
803 # IRIX 6.2, but not on IRIX 6.5.
804 # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
805 # <oldham@codesourcery.com>
d6f7b8f2 806 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
28e9041c 807 ;;
28e9041c 808 mips*-*-bsd*)
d6f7b8f2 809 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
28e9041c 810 ;;
857f2cca 811 mips*-*-linux*)
e31d86e1 812 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
857f2cca 813 ;;
28e9041c 814 mips*-*-*)
d6f7b8f2 815 noconfigdirs="$noconfigdirs gprof ${libgcj}"
1c5767f1 816 libgloss_dir=mips
28e9041c 817 ;;
818 romp-*-*)
d6f7b8f2 819 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
28e9041c 820 ;;
33974778 821 sh-*-* | sh64-*-*)
28e9041c 822 case "${host}" in
f74ea578 823 i[[3456789]]86-*-vsta) ;; # don't add gprof back in
824 i[[3456789]]86-*-go32*) ;; # don't add gprof back in
825 i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in
28e9041c 826 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
827 esac
d6f7b8f2 828 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
28e9041c 829 ;;
1c5767f1 830 sparclet-*-aout* | sparc86x-*-*)
831 libgloss_dir=sparc
832 ;;
ed37269d 833 sparc-*-elf*)
d6f7b8f2 834 noconfigdirs="$noconfigdirs ${libgcj}"
ed37269d 835 ;;
836 sparc64-*-elf*)
d6f7b8f2 837 noconfigdirs="$noconfigdirs ${libgcj}"
1c5767f1 838 libgloss_dir=sparc
ed37269d 839 ;;
151ad919 840 sparclite-*-*)
d6f7b8f2 841 noconfigdirs="$noconfigdirs ${libgcj}"
1c5767f1 842 libgloss_dir=sparc
ed37269d 843 ;;
28e9041c 844 sparc-*-sunos4*)
d6f7b8f2 845 noconfigdirs="$noconfigdirs ${libgcj}"
441f85dc 846 if test x${is_cross_compiler} != xno ; then
39b7c449 847 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
28e9041c 848 else
849 use_gnu_ld=no
850 fi
851 ;;
17336619 852 sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
d6f7b8f2 853 noconfigdirs="$noconfigdirs ${libgcj}"
17336619 854 ;;
05bcb167 855 sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
2c18c34e 856 ;;
644459d0 857 spu-*-*)
f5b9de9c 858 skipdirs="target-libssp"
644459d0 859 ;;
28e9041c 860 v810-*-*)
d6f7b8f2 861 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
28e9041c 862 ;;
ed37269d 863 v850-*-*)
d6f7b8f2 864 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
ed37269d 865 ;;
151ad919 866 v850e-*-*)
d6f7b8f2 867 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
151ad919 868 ;;
869 v850ea-*-*)
d6f7b8f2 870 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
151ad919 871 ;;
28e9041c 872 vax-*-vms)
d6f7b8f2 873 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
28e9041c 874 ;;
875 vax-*-*)
d6f7b8f2 876 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
28e9041c 877 ;;
678f5830 878 xtensa-*-*)
d6f7b8f2 879 noconfigdirs="$noconfigdirs ${libgcj}"
678f5830 880 ;;
1be37211 881 ip2k-*-*)
d6f7b8f2 882 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
1be37211 883 ;;
c01dd063 884 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
e31d86e1 885 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
886 ;;
28e9041c 887 *-*-lynxos*)
d6f7b8f2 888 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
28e9041c 889 ;;
7756f182 890 *-*-*)
d6f7b8f2 891 noconfigdirs="$noconfigdirs ${libgcj}"
7756f182 892 ;;
28e9041c 893esac
894
28e9041c 895# If we aren't building newlib, then don't build libgloss, since libgloss
896# depends upon some newlib header files.
897case "${noconfigdirs}" in
898 *target-libgloss*) ;;
899 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
13b1b53a 900esac
28e9041c 901
13b1b53a 902# Work in distributions that contain no compiler tools, like Autoconf.
903tentative_cc=""
71ab34df 904host_makefile_frag=/dev/null
13b1b53a 905if test -d ${srcdir}/config ; then
906case "${host}" in
907 m68k-hp-hpux*)
908 # Avoid "too much defining" errors from HPUX compiler.
909 tentative_cc="cc -Wp,-H256000"
71ab34df 910 # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
911 # If it's HP/UX ar, this should be harmless.
912 RANLIB="ar ts"
13b1b53a 913 ;;
914 m68k-apollo-sysv*)
915 tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
13b1b53a 916 ;;
917 m68k-apollo-bsd*)
918 #None of the Apollo compilers can compile gas or binutils. The preprocessor
919 # chokes on bfd, the compiler won't let you assign integers to enums, and
920 # other problems. Defining CC to gcc is a questionable way to say "don't use
921 # the apollo compiler" (the preferred version of GCC could be called cc,
922 # or whatever), but I'm not sure leaving CC as cc is any better...
923 #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
71ab34df 924 # Used to have BISON=yacc.
13b1b53a 925 tentative_cc=gcc
13b1b53a 926 ;;
927 m88k-dg-dgux*)
928 tentative_cc="gcc -Wall -ansi -D__using_DGUX"
13b1b53a 929 ;;
930 m88k-harris-cxux*)
931 # Under CX/UX, we want to tell the compiler to use ANSI mode.
932 tentative_cc="cc -Xa"
933 host_makefile_frag="config/mh-cxux"
934 ;;
935 m88k-motorola-sysv*)
13b1b53a 936 ;;
937 mips*-dec-ultrix*)
938 tentative_cc="cc -Wf,-XNg1000"
939 host_makefile_frag="config/mh-decstation"
940 ;;
941 mips*-nec-sysv4*)
942 # The C compiler on NEC MIPS SVR4 needs bigger tables.
943 tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
944 host_makefile_frag="config/mh-necv4"
945 ;;
13b1b53a 946 mips*-sgi-irix4*)
947 # Tell compiler to use K&R C. We can't compile under the SGI Ansi
948 # environment. Also bump switch table size so that cp-parse will
949 # compile. Bump string length limit so linker builds.
950 tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
951 ;;
13b1b53a 952 mips*-*-sysv4*)
953 host_makefile_frag="config/mh-sysv4"
954 ;;
955 mips*-*-sysv*)
956 # This is for a MIPS running RISC/os 4.52C.
957
958 # This is needed for GDB, but needs to be in the top-level make because
959 # if a library is compiled with the bsd headers and gets linked with the
960 # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
961 # a different size).
962 # ptrace(2) apparently has problems in the BSD environment. No workaround is
963 # known except to select the sysv environment. Could we use /proc instead?
964 # These "sysv environments" and "bsd environments" often end up being a pain.
965 #
966 # This is not part of CFLAGS because perhaps not all C compilers have this
967 # option.
968 tentative_cc="cc -systype sysv"
13b1b53a 969 ;;
970 i370-ibm-opened*)
971 tentative_cc="c89"
13b1b53a 972 ;;
f74ea578 973 i[[3456789]]86-*-sysv5*)
13b1b53a 974 host_makefile_frag="config/mh-sysv5"
975 ;;
f74ea578 976 i[[3456789]]86-*-dgux*)
13b1b53a 977 tentative_cc="gcc -Wall -ansi -D__using_DGUX"
978 host_makefile_frag="config/mh-dgux386"
979 ;;
f74ea578 980 i[[3456789]]86-ncr-sysv4.3*)
13b1b53a 981 # The MetaWare compiler will generate a copyright message unless you
982 # turn it off by adding the -Hnocopyr flag.
983 tentative_cc="cc -Hnocopyr"
13b1b53a 984 ;;
f74ea578 985 i[[3456789]]86-ncr-sysv4*)
13b1b53a 986 # for an NCR 3000 (i486/SVR4) system.
987 # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
988 # This compiler not only emits obnoxious copyright messages every time
989 # you run it, but it chokes and dies on a whole bunch of GNU source
990 # files. Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
991 tentative_cc="/usr/ccs/ATT/cc"
992 host_makefile_frag="config/mh-ncr3000"
993 ;;
f74ea578 994 i[[3456789]]86-*-sco3.2v5*)
13b1b53a 995 ;;
f74ea578 996 i[[3456789]]86-*-sco*)
13b1b53a 997 # The native C compiler botches some simple uses of const. Unfortunately,
998 # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
999 tentative_cc="cc -Dconst="
1000 host_makefile_frag="config/mh-sco"
1001 ;;
f74ea578 1002 i[[3456789]]86-*-udk*)
13b1b53a 1003 host_makefile_frag="config/mh-sysv5"
1004 ;;
f74ea578 1005 i[[3456789]]86-*-solaris2*)
13b1b53a 1006 host_makefile_frag="config/mh-sysv4"
1007 ;;
f74ea578 1008 i[[3456789]]86-*-msdosdjgpp*)
13b1b53a 1009 host_makefile_frag="config/mh-djgpp"
1010 ;;
1011 *-cygwin*)
1012 host_makefile_frag="config/mh-cygwin"
1013 ;;
1014 *-mingw32*)
70d8e49e 1015 host_makefile_frag="config/mh-mingw"
13b1b53a 1016 ;;
06dd9e69 1017 *-mingw64*)
70d8e49e 1018 host_makefile_frag="config/mh-mingw"
06dd9e69 1019 ;;
13b1b53a 1020 *-interix*)
1021 host_makefile_frag="config/mh-interix"
1022 ;;
1023 vax-*-ultrix2*)
1024 # The old BSD pcc isn't up to compiling parts of gdb so use gcc
1025 tentative_cc=gcc
1026 ;;
1027 *-*-solaris2*)
1028 host_makefile_frag="config/mh-solaris"
1029 ;;
1030 m68k-sun-sunos*)
1031 # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
1032 # without overflowing the jump tables (-J says to use a 32 bit table)
1033 tentative_cc="cc -J"
1034 ;;
13b1b53a 1035 *-hp-hpux*)
1036 tentative_cc="cc -Wp,-H256000"
13b1b53a 1037 ;;
1038 *-*-hiux*)
1039 tentative_cc="cc -Wp,-H256000"
13b1b53a 1040 ;;
1041 rs6000-*-lynxos*)
1042 # /bin/cc is less than useful for our purposes. Always use GCC
1043 tentative_cc="/usr/cygnus/progressive/bin/gcc"
1044 host_makefile_frag="config/mh-lynxrs6k"
1045 ;;
2b64d19b 1046 powerpc-*-darwin*)
0222d984 1047 host_makefile_frag="config/mh-ppc-darwin"
1048 ;;
9d44a802 1049 powerpc-*-aix*)
1050 host_makefile_frag="config/mh-ppc-aix"
1051 ;;
1052 rs6000-*-aix*)
1053 host_makefile_frag="config/mh-ppc-aix"
1054 ;;
13b1b53a 1055 *-*-lynxos*)
1056 # /bin/cc is less than useful for our purposes. Always use GCC
1057 tentative_cc="/bin/gcc"
1058 ;;
1059 *-*-sysv4*)
1060 host_makefile_frag="config/mh-sysv4"
1061 ;;
da9e6519 1062 # This is placed last to prevent interfering with the cases above.
1063 i[[3456789]]86-*-*)
1064 # Build the stage2 and stage3 compilers with -fomit-frame-pointer.
1065 host_makefile_frag="config/mh-x86omitfp"
1066 ;;
13b1b53a 1067esac
1068fi
1069
c24c5e46 1070# If we aren't going to be using gcc, see if we can extract a definition
1071# of CC from the fragment.
1072# Actually, use the 'pre-extracted' version above.
1073if test -z "${CC}" && test "${build}" = "${host}" ; then
1074 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
1075 found=
1076 for dir in $PATH; do
1077 test -z "$dir" && dir=.
1078 if test -f $dir/gcc; then
1079 found=yes
1080 break
1081 fi
1082 done
1083 IFS="$save_ifs"
1084 if test -z "${found}" && test -n "${tentative_cc}" ; then
1085 CC=$tentative_cc
1086 fi
1087fi
1088
1089if test "${build}" != "${host}" ; then
93c5e793 1090 AR_FOR_BUILD=${AR_FOR_BUILD-ar}
1091 AS_FOR_BUILD=${AS_FOR_BUILD-as}
c24c5e46 1092 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
93c5e793 1093 CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1094 GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
1095 GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1096 DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1097 LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1098 NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1099 RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1100 WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1101 WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
c24c5e46 1102else
93c5e793 1103 AR_FOR_BUILD="\$(AR)"
1104 AS_FOR_BUILD="\$(AS)"
c24c5e46 1105 CC_FOR_BUILD="\$(CC)"
93c5e793 1106 CXX_FOR_BUILD="\$(CXX)"
1107 GCJ_FOR_BUILD="\$(GCJ)"
1108 GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1109 DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1110 LD_FOR_BUILD="\$(LD)"
1111 NM_FOR_BUILD="\$(NM)"
1112 RANLIB_FOR_BUILD="\$(RANLIB)"
1113 WINDRES_FOR_BUILD="\$(WINDRES)"
1114 WINDMC_FOR_BUILD="\$(WINDMC)"
eae5b2bc 1115fi
c24c5e46 1116
eae5b2bc 1117AC_PROG_CC
1118AC_PROG_CXX
1119
1120# We must set the default linker to the linker used by gcc for the correct
1121# operation of libtool. If LD is not defined and we are using gcc, try to
1122# set the LD default to the ld used by gcc.
1123if test -z "$LD"; then
1124 if test "$GCC" = yes; then
1125 case $build in
1126 *-*-mingw*)
1127 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1128 *)
1129 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1130 esac
1131 case $gcc_prog_ld in
1132 # Accept absolute paths.
1133 [[\\/]* | [A-Za-z]:[\\/]*)]
1134 LD="$gcc_prog_ld" ;;
1135 esac
1136 fi
c24c5e46 1137fi
1138
1139ACX_PROG_GNAT
7bcc3b4a 1140ACX_PROG_CMP_IGNORE_INITIAL
c24c5e46 1141
5ca838b8 1142# Check for GMP and MPFR
d45318b3 1143gmplibs="-lmpfr -lgmp"
4ee9c684 1144gmpinc=
d45318b3 1145have_gmp=no
1146
5ca838b8 1147# Specify a location for mpfr
1148# check for this first so it ends up on the link line before gmp.
09c2d953 1149AC_ARG_WITH(mpfr-dir, [ --with-mpfr-dir=PATH this option has been REMOVED],
a5144c1d 1150 AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
1151Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH]))
5ca838b8 1152
09c2d953 1153AC_ARG_WITH(mpfr, [ --with-mpfr=PATH specify prefix directory for installed MPFR package.
a5144c1d 1154 Equivalent to --with-mpfr-include=PATH/include
1155 plus --with-mpfr-lib=PATH/lib])
1156AC_ARG_WITH(mpfr_include, [ --with-mpfr-include=PATH
09c2d953 1157 specify directory for installed MPFR include files])
1158AC_ARG_WITH(mpfr_lib, [ --with-mpfr-lib=PATH specify directory for the installed MPFR library])
5ca838b8 1159
1160if test "x$with_mpfr" != x; then
1161 gmplibs="-L$with_mpfr/lib $gmplibs"
1162 gmpinc="-I$with_mpfr/include"
1163fi
a5144c1d 1164if test "x$with_mpfr_include" != x; then
1165 gmpinc="-I$with_mpfr_include"
1166fi
1167if test "x$with_mpfr_lib" != x; then
1168 gmplibs="-L$with_mpfr_lib $gmplibs"
1169fi
d45318b3 1170if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1171 gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/.libs -L$$r/$(HOST_SUBDIR)/mpfr/_libs '"$gmplibs"
1172 gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
1173 # Do not test the mpfr version. Assume that it is sufficient, since
1174 # it is in the source tree, and the library has not been built yet
1175 # but it would be included on the link line in the version check below
1176 # hence making the test fail.
1177 have_gmp=yes
1178fi
5ca838b8 1179
4ee9c684 1180# Specify a location for gmp
09c2d953 1181AC_ARG_WITH(gmp-dir, [ --with-gmp-dir=PATH this option has been REMOVED],
a5144c1d 1182 AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
1183Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH]))
1184
09c2d953 1185AC_ARG_WITH(gmp, [ --with-gmp=PATH specify prefix directory for the installed GMP package.
a5144c1d 1186 Equivalent to --with-gmp-include=PATH/include
1187 plus --with-gmp-lib=PATH/lib])
09c2d953 1188AC_ARG_WITH(gmp_include, [ --with-gmp-include=PATH specify directory for installed GMP include files])
1189AC_ARG_WITH(gmp_lib, [ --with-gmp-lib=PATH specify directory for the installed GMP library])
4ee9c684 1190
4ee9c684 1191
5ca838b8 1192if test "x$with_gmp" != x; then
1193 gmplibs="-L$with_gmp/lib $gmplibs"
1194 gmpinc="-I$with_gmp/include $gmpinc"
4ee9c684 1195fi
a5144c1d 1196if test "x$with_gmp_include" != x; then
1197 gmpinc="-I$with_gmp_include $gmpinc"
1198fi
1199if test "x$with_gmp_lib" != x; then
1200 gmplibs="-L$with_gmp_lib $gmplibs"
1201fi
d45318b3 1202if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1203 gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L$$r/$(HOST_SUBDIR)/gmp/_libs '"$gmplibs"
1204 gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1205 # Do not test the gmp version. Assume that it is sufficient, since
1206 # it is in the source tree, and the library has not been built yet
1207 # but it would be included on the link line in the version check below
1208 # hence making the test fail.
1209 have_gmp=yes
1210fi
4ee9c684 1211
16c9b2e3 1212if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
d45318b3 1213 have_gmp=yes
1214 saved_CFLAGS="$CFLAGS"
1215 CFLAGS="$CFLAGS $gmpinc"
1216 # Check GMP actually works
1217 AC_MSG_CHECKING([for correct version of gmp.h])
1218 AC_TRY_COMPILE([#include "gmp.h"],[
1219 #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 1)
112f3d57 1220 choke me
d45318b3 1221 #endif
1222 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1223
1224 if test x"$have_gmp" = xyes; then
1225 saved_LIBS="$LIBS"
1226 LIBS="$LIBS $gmplibs"
e9450d5b 1227 dnl MPFR 2.2.1 is acceptable, but MPFR 2.3.0 is better.
d45318b3 1228 AC_MSG_CHECKING([for correct version of mpfr.h])
1229 AC_TRY_LINK([#include <gmp.h>
1230 #include <mpfr.h>],[
e9450d5b 1231 #if MPFR_VERSION < MPFR_VERSION_NUM(2,2,1)
d45318b3 1232 choke me
1233 #endif
78a477ad 1234 mpfr_t n;
1235 mpfr_t x;
d45318b3 1236 int t;
78a477ad 1237 mpfr_init (n);
1238 mpfr_init (x);
d45318b3 1239 mpfr_atan2 (n, n, x, GMP_RNDN);
1240 mpfr_erfc (n, x, GMP_RNDN);
1241 mpfr_subnormalize (x, t, GMP_RNDN);
1242 ], [AC_TRY_LINK([#include <gmp.h>
1243 #include <mpfr.h>],[
e9450d5b 1244 #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,0)
d45318b3 1245 choke me
1246 #endif
1247 mpfr_t n; mpfr_init(n);
1248 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1249 [AC_MSG_RESULT([no]); have_gmp=no])
1250 LIBS="$saved_LIBS"
1251 fi
1252 CFLAGS="$saved_CFLAGS"
4ee9c684 1253
d45318b3 1254 if test x$have_gmp != xyes; then
e9450d5b 1255 AC_MSG_ERROR([Building GCC requires GMP 4.1+ and MPFR 2.3.0+.
0818100b 1256Try the --with-gmp and/or --with-mpfr options to specify their locations.
1257Copies of these libraries' source code can be found at their respective
1258hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.
6af0e733 1259See also http://gcc.gnu.org/install/prerequisites.html for additional info.
1260If you obtained GMP and/or MPFR from a vendor distribution package, make
1261sure that you have installed both the libraries and the header files.
1262They may be located in separate packages.])
d45318b3 1263 fi
6a086156 1264fi
1265
5ca838b8 1266# Flags needed for both GMP and/or MPFR
4ee9c684 1267AC_SUBST(gmplibs)
1268AC_SUBST(gmpinc)
1269
8e6391a6 1270# By default, C is the only stage 1 language.
9c3a0a29 1271stage1_languages=,c,
2d64c2fd 1272
c24c5e46 1273# Figure out what language subdirectories are present.
1274# Look if the user specified --enable-languages="..."; if not, use
1275# the environment variable $LANGUAGES if defined. $LANGUAGES might
1276# go away some day.
1277# NB: embedded tabs in this IF block -- do not untabify
1278if test -d ${srcdir}/gcc; then
1279 if test x"${enable_languages+set}" != xset; then
1280 if test x"${LANGUAGES+set}" = xset; then
1281 enable_languages="${LANGUAGES}"
1282 echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1283 else
1284 enable_languages=all
1285 fi
1286 else
1287 if test x"${enable_languages}" = x ||
1288 test x"${enable_languages}" = xyes;
1289 then
1290 echo configure.in: --enable-languages needs at least one language argument 1>&2
1291 exit 1
1292 fi
1293 fi
1294 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
1295
2c718da0 1296 # 'f95' is the old name for the 'fortran' language. We issue a warning
1297 # and make the substitution.
1298 case ,${enable_languages}, in
1299 *,f95,*)
1300 echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1301 enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1302 ;;
1303 esac
1304
c24c5e46 1305 # First scan to see if an enabled language requires some other language.
1306 # We assume that a given config-lang.in will list all the language
1307 # front ends it requires, even if some are required indirectly.
1308 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1309 case ${lang_frag} in
1310 ..) ;;
1311 # The odd quoting in the next line works around
1312 # an apparent bug in bash 1.12 on linux.
1313 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1314 *)
1315 # From the config-lang.in, get $language, $lang_requires
1316 language=
1317 lang_requires=
1318 . ${lang_frag}
1319 for other in ${lang_requires} ; do
1320 case ,${enable_languages}, in
1321 *,$other,*) ;;
1322 *,all,*) ;;
1323 *,$language,*)
1324 echo " \`$other' language required by \`$language'; enabling" 1>&2
1325 enable_languages="${enable_languages},${other}"
1326 ;;
1327 esac
1328 done
1329 ;;
1330 esac
1331 done
1332
9c3a0a29 1333 new_enable_languages=,c,
c24c5e46 1334 missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
9c3a0a29 1335 potential_languages=,c,
c24c5e46 1336
1337 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1338 case ${lang_frag} in
1339 ..) ;;
1340 # The odd quoting in the next line works around
1341 # an apparent bug in bash 1.12 on linux.
1342 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1343 *)
1344 # From the config-lang.in, get $language, $target_libs,
2d64c2fd 1345 # $lang_dirs, $boot_language, and $build_by_default
c24c5e46 1346 language=
1347 target_libs=
1348 lang_dirs=
5dee13c2 1349 subdir_requires=
9c3a0a29 1350 boot_language=no
1351 build_by_default=yes
c24c5e46 1352 . ${lang_frag}
9c3a0a29 1353 if test x${language} = x; then
1354 echo "${lang_frag} doesn't set \$language." 1>&2
1355 exit 1
1356 fi
1357
1358 case ,${enable_languages}, in
1359 *,${language},*)
c24c5e46 1360 # Language was explicitly selected; include it.
1361 add_this_lang=yes
1362 ;;
9c3a0a29 1363 *,all,*)
1364 # 'all' was selected, select it if it is a default language
1365 add_this_lang=${build_by_default}
c24c5e46 1366 ;;
1367 *)
1368 add_this_lang=no
1369 ;;
1370 esac
4ee9c684 1371
5dee13c2 1372 # Disable languages that need other directories if these aren't available.
9333ae0b 1373 for i in $subdir_requires; do
3891e7d9 1374 test -f "$srcdir/gcc/$i/config-lang.in" && continue
5dee13c2 1375 case ,${enable_languages}, in
1376 *,${language},*)
1377 # Specifically requested language; tell them.
1378 AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
1379 ;;
1380 *)
1381 # Silently disable.
9c3a0a29 1382 add_this_lang=unsupported
5dee13c2 1383 ;;
1384 esac
1385 done
1386
9c3a0a29 1387 # Disable Ada if no preexisting GNAT is available.
1388 case ,${enable_languages},:${language}:${have_gnat} in
1389 *,${language},*:ada:no)
1390 # Specifically requested language; tell them.
1391 AC_MSG_ERROR([GNAT is required to build $language])
1392 ;;
1393 *:ada:no)
1394 # Silently disable.
1395 add_this_lang=unsupported
1396 ;;
1397 esac
1398
ff7dcf6a 1399 # Disable a language that is unsupported by the target.
1400 case " $unsupported_languages " in
1401 *" $language "*)
9c3a0a29 1402 add_this_lang=unsupported
ff7dcf6a 1403 ;;
1404 esac
1405
4ee9c684 1406 case $add_this_lang in
9c3a0a29 1407 unsupported)
c24c5e46 1408 # Remove language-dependent dirs.
2d64c2fd 1409 eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1410 ;;
9c3a0a29 1411 no)
1412 # Remove language-dependent dirs; still show language as supported.
1413 eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1414 potential_languages="${potential_languages}${language},"
1415 ;;
1416 yes)
1417 new_enable_languages="${new_enable_languages}${language},"
1418 potential_languages="${potential_languages}${language},"
2d64c2fd 1419 missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1420 case ${boot_language} in
1421 yes)
aff6cf7b 1422 # Add to (comma-separated) list of stage 1 languages.
9c3a0a29 1423 stage1_languages="${stage1_languages}${language},"
2d64c2fd 1424 ;;
1425 esac
1426 ;;
c24c5e46 1427 esac
1428 ;;
1429 esac
1430 done
1431
9c3a0a29 1432 AC_ARG_ENABLE(stage1-languages,
09c2d953 1433[ --enable-stage1-languages@<:@=all@:>@ choose additional languages to build during
9c3a0a29 1434 stage1. Mostly useful for compiler development.],
1435 [case ,${enable_stage1_languages}, in
1436 ,no,|,,)
1437 # Set it to something that will have no effect in the loop below
1438 enable_stage1_languages=c ;;
1439 ,yes,)
1440 enable_stage1_languages=`echo $new_enable_languages | \
1441 sed -e "s/^,//" -e "s/,$//" ` ;;
1442 *,all,*)
1443 enable_stage1_languages=`echo ,$enable_stage1_languages, | \
1444 sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
1445 esac
1446
1447 # Add "good" languages from enable_stage1_languages to stage1_languages,
1448 # while "bad" languages go in missing_languages. Leave no duplicates.
1449 for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
1450 case $potential_languages in
1451 *,$i,*)
1452 case $stage1_languages in
1453 *,$i,*) ;;
1454 *) stage1_languages="$stage1_languages$i," ;;
1455 esac ;;
1456 *)
1457 case $missing_languages in
1458 *,$i,*) ;;
1459 *) missing_languages="$missing_languages$i," ;;
1460 esac ;;
1461 esac
1462 done])
1463
1464 # Remove leading/trailing commas that were added for simplicity
1465 potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
989edd2f 1466 missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
9c3a0a29 1467 stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
1468 new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
1469
c24c5e46 1470 if test "x$missing_languages" != x; then
1471 AC_MSG_ERROR([
e8bfe1fa 1472The following requested languages could not be built: ${missing_languages}
9c3a0a29 1473Supported languages are: ${potential_languages}])
c24c5e46 1474 fi
c24c5e46 1475 if test "x$new_enable_languages" != "x$enable_languages"; then
1476 echo The following languages will be built: ${new_enable_languages}
9c3a0a29 1477 enable_languages="$new_enable_languages"
c24c5e46 1478 fi
9c3a0a29 1479
1480 AC_SUBST(stage1_languages)
b0e9b581 1481 ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
c24c5e46 1482fi
1483
50996fe5 1484# Handle --disable-<component> generically.
1485for dir in $configdirs $build_configdirs $target_configdirs ; do
1486 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
d2d2630b 1487 varname=`echo $dirname | sed -e s/+/_/g`
1488 if eval test x\${enable_${varname}} "=" xno ; then
50996fe5 1489 noconfigdirs="$noconfigdirs $dir"
1490 fi
1491done
1492
dd6d3a67 1493# Check for Boehm's garbage collector
1494AC_ARG_ENABLE(objc-gc,
09c2d953 1495[ --enable-objc-gc enable use of Boehm's garbage collector with the
1496 GNU Objective-C runtime],
dd6d3a67 1497[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
1498 *,objc,*:*:yes:*target-boehm-gc*)
1499 AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
1500 ;;
1501esac])
1502
1503# Make sure we only build Boehm's garbage collector if required.
f1716c67 1504case ,${enable_languages},:${enable_objc_gc} in
1505 *,objc,*:yes)
dd6d3a67 1506 # Keep target-boehm-gc if requested for Objective-C.
1507 ;;
dd6d3a67 1508 *)
f1716c67 1509 # Otherwise remove target-boehm-gc depending on target-libjava.
1510 if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
1511 noconfigdirs="$noconfigdirs target-boehm-gc"
1512 fi
dd6d3a67 1513 ;;
1514esac
1515
6675f2d9 1516# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
1517# $build_configdirs and $target_configdirs.
c24c5e46 1518# If we have the source for $noconfigdirs entries, add them to $notsupp.
1519
1520notsupp=""
1521for dir in . $skipdirs $noconfigdirs ; do
6675f2d9 1522 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
c24c5e46 1523 if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1524 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1525 if test -r $srcdir/$dirname/configure ; then
1526 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1527 true
1528 else
1529 notsupp="$notsupp $dir"
1530 fi
1531 fi
1532 fi
6675f2d9 1533 if test $dir != . && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1534 build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
1535 if test -r $srcdir/$dirname/configure ; then
1536 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1537 true
1538 else
1539 notsupp="$notsupp $dir"
1540 fi
1541 fi
1542 fi
c24c5e46 1543 if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1544 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1545 if test -r $srcdir/$dirname/configure ; then
1546 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1547 true
1548 else
1549 notsupp="$notsupp $dir"
1550 fi
1551 fi
1552 fi
1553done
1554
1555# Sometimes the tools are distributed with libiberty but with no other
1556# libraries. In that case, we don't want to build target-libiberty.
0a2e6193 1557# Don't let libgcc imply libiberty either.
c24c5e46 1558if test -n "${target_configdirs}" ; then
0a2e6193 1559 libgcc=
c24c5e46 1560 others=
1561 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
0a2e6193 1562 if test "$i" = "libgcc"; then
1563 libgcc=target-libgcc
1564 elif test "$i" != "libiberty" ; then
c24c5e46 1565 if test -r $srcdir/$i/configure ; then
1566 others=yes;
1567 break;
1568 fi
1569 fi
1570 done
1571 if test -z "${others}" ; then
0a2e6193 1572 target_configdirs=$libgcc
c24c5e46 1573 fi
1574fi
1575
1576# Quietly strip out all directories which aren't configurable in this tree.
1577# This relies on all configurable subdirectories being autoconfiscated, which
1578# is now the case.
2f8725b0 1579build_configdirs_all="$build_configdirs"
1580build_configdirs=
1581for i in ${build_configdirs_all} ; do
1582 j=`echo $i | sed -e s/build-//g`
1583 if test -f ${srcdir}/$j/configure ; then
1584 build_configdirs="${build_configdirs} $i"
1585 fi
1586done
1587
c24c5e46 1588configdirs_all="$configdirs"
1589configdirs=
1590for i in ${configdirs_all} ; do
1591 if test -f ${srcdir}/$i/configure ; then
1592 configdirs="${configdirs} $i"
1593 fi
1594done
2f8725b0 1595
c24c5e46 1596target_configdirs_all="$target_configdirs"
1597target_configdirs=
1598for i in ${target_configdirs_all} ; do
1599 j=`echo $i | sed -e s/target-//g`
1600 if test -f ${srcdir}/$j/configure ; then
1601 target_configdirs="${target_configdirs} $i"
1602 fi
1603done
1604
1605# Produce a warning message for the subdirs we can't configure.
1606# This isn't especially interesting in the Cygnus tree, but in the individual
1607# FSF releases, it's important to let people know when their machine isn't
1608# supported by the one or two programs in a package.
1609
1610if test -n "${notsupp}" && test -z "${norecursion}" ; then
1611 # If $appdirs is non-empty, at least one of those directories must still
1612 # be configured, or we error out. (E.g., if the gas release supports a
1613 # specified target in some subdirs but not the gas subdir, we shouldn't
1614 # pretend that all is well.)
1615 if test -n "$appdirs" ; then
1616 for dir in $appdirs ; do
1617 if test -r $dir/Makefile.in ; then
1618 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1619 appdirs=""
1620 break
1621 fi
2f8725b0 1622 if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
c24c5e46 1623 appdirs=""
1624 break
1625 fi
1626 fi
1627 done
1628 if test -n "$appdirs" ; then
1629 echo "*** This configuration is not supported by this package." 1>&2
1630 exit 1
1631 fi
1632 fi
1633 # Okay, some application will build, or we don't care to check. Still
1634 # notify of subdirs not getting built.
1635 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1636 echo " ${notsupp}" 1>&2
1637 echo " (Any other directories should still work fine.)" 1>&2
1638fi
1639
1640case "$host" in
1641 *msdosdjgpp*)
1642 enable_gdbtk=no ;;
1643esac
1644
eae5b2bc 1645# To find our prefix, in gcc_cv_tool_prefix.
1646ACX_TOOL_DIRS
1647
c24c5e46 1648copy_dirs=
1649
ffa8502d 1650AC_ARG_WITH([build-sysroot],
09c2d953 1651 [ --with-build-sysroot=SYSROOT
ffa8502d 1652 use sysroot as the system root during the build],
1653 [if test x"$withval" != x ; then
1654 SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
1655 fi],
1656 [SYSROOT_CFLAGS_FOR_TARGET=])
1657AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
1658
5f1f2de5 1659AC_ARG_WITH([debug-prefix-map],
1660 [ --with-debug-prefix-map='A=B C=D ...'
1661 map A to B, C to D ... in debug information],
1662 [if test x"$withval" != x; then
1663 DEBUG_PREFIX_CFLAGS_FOR_TARGET=
1664 for debug_map in $withval; do
1665 DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
1666 done
1667 fi],
1668 [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
1669AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
1670
c24c5e46 1671# Handle --with-headers=XXX. If the value is not "yes", the contents of
1672# the named directory are copied to $(tooldir)/sys-include.
1673if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
1674 if test x${is_cross_compiler} = xno ; then
1675 echo 1>&2 '***' --with-headers is only supported when cross compiling
1676 exit 1
1677 fi
1678 if test x"${with_headers}" != xyes ; then
eae5b2bc 1679 x=${gcc_cv_tool_prefix}
b30fcfae 1680 copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
c24c5e46 1681 fi
1682fi
1683
1684# Handle --with-libs=XXX. If the value is not "yes", the contents of
1685# the name directories are copied to $(tooldir)/lib. Multiple directories
1686# are permitted.
1687if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
1688 if test x${is_cross_compiler} = xno ; then
1689 echo 1>&2 '***' --with-libs is only supported when cross compiling
1690 exit 1
1691 fi
1692 if test x"${with_libs}" != xyes ; then
1693 # Copy the libraries in reverse order, so that files in the first named
1694 # library override files in subsequent libraries.
eae5b2bc 1695 x=${gcc_cv_tool_prefix}
c24c5e46 1696 for l in ${with_libs}; do
b30fcfae 1697 copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
c24c5e46 1698 done
1699 fi
1700fi
1701
c47832b1 1702# Set with_gnu_as and with_gnu_ld as appropriate.
1703#
1704# This is done by determining whether or not the appropriate directory
1705# is available, and by checking whether or not specific configurations
1706# have requested that this magic not happen.
1707#
1708# The command line options always override the explicit settings in
1709# configure.in, and the settings in configure.in override this magic.
1710#
1711# If the default for a toolchain is to use GNU as and ld, and you don't
1712# want to do that, then you should use the --without-gnu-as and
1713# --without-gnu-ld options for the configure script.
1714
1715if test x${use_gnu_as} = x &&
1716 echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1717 with_gnu_as=yes
1718 extra_host_args="$extra_host_args --with-gnu-as"
1719fi
1720
1721if test x${use_gnu_ld} = x &&
1722 echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1723 with_gnu_ld=yes
1724 extra_host_args="$extra_host_args --with-gnu-ld"
1725fi
1726
1727# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1728# can detect this case.
1729
1730if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1731 with_newlib=yes
1732 extra_host_args="$extra_host_args --with-newlib"
1733fi
1734
c24c5e46 1735# Handle ${copy_dirs}
1736set fnord ${copy_dirs}
1737shift
1738while test $# != 0 ; do
1739 if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
1740 :
1741 else
1742 echo Copying $1 to $2
1743
1744 # Use the install script to create the directory and all required
1745 # parent directories.
1746 if test -d $2 ; then
1747 :
1748 else
1749 echo >config.temp
1750 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
1751 fi
1752
1753 # Copy the directory, assuming we have tar.
1754 # FIXME: Should we use B in the second tar? Not all systems support it.
1755 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
1756
1757 # It is the responsibility of the user to correctly adjust all
1758 # symlinks. If somebody can figure out how to handle them correctly
1759 # here, feel free to add the code.
1760
1761 echo $1 > $2/COPIED
1762 fi
1763 shift; shift
1764done
1765
c47832b1 1766# Determine a target-dependent exec_prefix that the installed
1767# gcc will search in. Keep this list sorted by triplet, with
1768# the *-*-osname triplets last.
1769md_exec_prefix=
1770case "${target}" in
1771 alpha*-*-*vms*)
1772 md_exec_prefix=/gnu/lib/gcc-lib
1773 ;;
09c2d953 1774 i[[34567]]86-pc-msdosdjgpp*)
c47832b1 1775 md_exec_prefix=/dev/env/DJDIR/bin
1776 ;;
09c2d953 1777 i[[34567]]86-*-sco3.2v5*)
c47832b1 1778 if test $with_gnu_as = yes; then
1779 md_exec_prefix=/usr/gnu/bin
1780 else
1781 md_exec_prefix=/usr/ccs/bin/elf
1782 fi
1783 ;;
1784
1785 mn10300-*-* | \
1786 powerpc-*-chorusos* | \
1787 powerpc*-*-eabi* | \
1788 powerpc*-*-sysv* | \
1789 powerpc*-*-kaos* | \
1790 s390x-ibm-tpf*)
1791 md_exec_prefix=/usr/ccs/bin
1792 ;;
1793 sparc64-*-elf*)
1794 ;;
1795 v850*-*-*)
1796 md_exec_prefix=/usr/ccs/bin
1797 ;;
1798 xtensa-*-elf*)
1799 ;;
1800
1801 *-*-beos* | \
1802 *-*-elf* | \
1803 *-*-hpux* | \
1804 *-*-netware* | \
1805 *-*-nto-qnx* | \
1806 *-*-rtems* | \
1807 *-*-solaris2* | \
09c2d953 1808 *-*-sysv[[45]]* | \
c47832b1 1809 *-*-vxworks* | \
1810 *-wrs-windiss)
1811 md_exec_prefix=/usr/ccs/bin
1812 ;;
1813esac
1814
805e22b2 1815extra_arflags_for_target=
1816extra_nmflags_for_target=
b437616a 1817extra_ranlibflags_for_target=
71ab34df 1818target_makefile_frag=/dev/null
13b1b53a 1819case "${target}" in
38d7211b 1820 mep*-*-*)
1821 target_makefile_frag="config/mt-mep"
1822 ;;
57c7de11 1823 spu-*-*)
1824 target_makefile_frag="config/mt-spu"
1825 ;;
f8520ad7 1826 mips*-sde-elf*)
1827 target_makefile_frag="config/mt-sde"
1828 ;;
3013c2c7 1829 mipsisa*-*-elfoabi*)
1830 target_makefile_frag="config/mt-mips-elfoabi"
1831 ;;
634f7a13 1832 *-*-netware*)
70af7570 1833 target_makefile_frag="config/mt-netware"
13b1b53a 1834 ;;
cb8a7007 1835 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
1836 target_makefile_frag="config/mt-gnu"
13b1b53a 1837 ;;
71ab34df 1838 *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
805e22b2 1839 # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
1840 # commands to handle both 32-bit and 64-bit objects. These flags are
1841 # harmless if we're using GNU nm or ar.
1842 extra_arflags_for_target=" -X32_64"
1843 extra_nmflags_for_target=" -B -X32_64"
13b1b53a 1844 ;;
b437616a 1845 *-*-darwin*)
1846 # ranlib from Darwin requires the -c flag to look at common symbols.
1847 extra_ranlibflags_for_target=" -c"
1848 ;;
13b1b53a 1849 mips*-*-pe | sh*-*-pe | *arm-wince-pe)
70af7570 1850 target_makefile_frag="config/mt-wince"
1851 ;;
1852esac
1853
71ab34df 1854alphaieee_frag=/dev/null
70af7570 1855case $target in
1856 alpha*-*-*)
1857 # This just makes sure to use the -mieee option to build target libs.
1858 # This should probably be set individually by each library.
1859 alphaieee_frag="config/mt-alphaieee"
13b1b53a 1860 ;;
1861esac
b138c834 1862
13b1b53a 1863# If --enable-target-optspace always use -Os instead of -O2 to build
1864# the target libraries, similarly if it is not specified, use -Os
1865# on selected platforms.
71ab34df 1866ospace_frag=/dev/null
13b1b53a 1867case "${enable_target_optspace}:${target}" in
1868 yes:*)
70af7570 1869 ospace_frag="config/mt-ospace"
13b1b53a 1870 ;;
1871 :d30v-*)
70af7570 1872 ospace_frag="config/mt-d30v"
13b1b53a 1873 ;;
1874 :m32r-* | :d10v-* | :fr30-*)
70af7570 1875 ospace_frag="config/mt-ospace"
13b1b53a 1876 ;;
1877 no:* | :*)
1878 ;;
1879 *)
1880 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1881 ;;
1882esac
28e9041c 1883
13b1b53a 1884# Default to using --with-stabs for certain targets.
1885if test x${with_stabs} = x ; then
1886 case "${target}" in
d74dd50d 1887 mips*-*-irix[[56]]*)
13b1b53a 1888 ;;
1889 mips*-*-* | alpha*-*-osf*)
1890 with_stabs=yes;
805e22b2 1891 extra_host_args="${extra_host_args} --with-stabs"
13b1b53a 1892 ;;
1893 esac
1894fi
1895
1896# hpux11 in 64bit mode has libraries in a weird place. Arrange to find
1897# them automatically.
1898case "${host}" in
1899 hppa*64*-*-hpux11*)
805e22b2 1900 extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
13b1b53a 1901 ;;
85b038d8 1902esac
1903
71ab34df 1904# Some systems (e.g., one of the i386-aix systems the gas testers are
1905# using) don't handle "\$" correctly, so don't use it here.
b30fcfae 1906tooldir='${exec_prefix}'/${target_noncanonical}
71ab34df 1907build_tooldir=${tooldir}
1908
71ab34df 1909# Create a .gdbinit file which runs the one in srcdir
1910# and tells GDB to look there for source files.
1911
1912if test -r ${srcdir}/.gdbinit ; then
1913 case ${srcdir} in
1914 .) ;;
1915 *) cat > ./.gdbinit <<EOF
1916# ${NO_EDIT}
1917dir ${srcdir}
1918dir .
1919source ${srcdir}/.gdbinit
1920EOF
1921 ;;
1922 esac
1923fi
1924
28e9041c 1925# Make sure that the compiler is able to generate an executable. If it
1926# can't, we are probably in trouble. We don't care whether we can run the
1927# executable--we might be using a cross compiler--we only care whether it
1928# can be created. At this point the main configure script has set CC.
441f85dc 1929we_are_ok=no
28e9041c 1930echo "int main () { return 0; }" > conftest.c
1931${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
441f85dc 1932if test $? = 0 ; then
1933 if test -s conftest || test -s conftest.exe ; then
1934 we_are_ok=yes
1935 fi
1936fi
1937case $we_are_ok in
1938 no)
1939 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1940 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1941 rm -f conftest*
1942 exit 1
1943 ;;
1944esac
28e9041c 1945rm -f conftest*
1946
1947# The Solaris /usr/ucb/cc compiler does not appear to work.
1948case "${host}" in
1949 sparc-sun-solaris2*)
1950 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
71ab34df 1951 if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
28e9041c 1952 could_use=
441f85dc 1953 test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1954 if test -d /opt/cygnus/bin ; then
1955 if test "$could_use" = "" ; then
28e9041c 1956 could_use="/opt/cygnus/bin"
1957 else
1958 could_use="$could_use or /opt/cygnus/bin"
1959 fi
1960 fi
441f85dc 1961 if test "$could_use" = "" ; then
28e9041c 1962 echo "Warning: compilation may fail because you're using"
1963 echo "/usr/ucb/cc. You should change your PATH or CC "
1964 echo "variable and rerun configure."
1965 else
1966 echo "Warning: compilation may fail because you're using"
1967 echo "/usr/ucb/cc, when you should use the C compiler from"
1968 echo "$could_use. You should change your"
1969 echo "PATH or CC variable and rerun configure."
1970 fi
1971 fi
1972 ;;
1973esac
1974
949b0daa 1975case "${host}" in
1976 *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
697e01c8 1977 *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
949b0daa 1978 *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1979esac
949b0daa 1980
805e22b2 1981# Record target_configdirs and the configure arguments for target and
1982# build configuration in Makefile.
1983target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
2f8725b0 1984build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
805e22b2 1985
805e22b2 1986# Determine whether gdb needs tk/tcl or not.
1987# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1988# and in that case we want gdb to be built without tk. Ugh!
1989# In fact I believe gdb is the *only* package directly dependent on tk,
1990# so we should be able to put the 'maybe's in unconditionally and
1991# leave out the maybe dependencies when enable_gdbtk is false. I'm not
1992# 100% sure that that's safe though.
8fdaf281 1993
f843f075 1994gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
805e22b2 1995case "$enable_gdbtk" in
1996 no)
1997 GDB_TK="" ;;
8fdaf281 1998 yes)
1999 GDB_TK="${gdb_tk}" ;;
805e22b2 2000 *)
8fdaf281 2001 # Only add the dependency on gdbtk when GDBtk is part of the gdb
2002 # distro. Eventually someone will fix this and move Insight, nee
2003 # gdbtk to a separate directory.
2004 if test -d ${srcdir}/gdb/gdbtk ; then
2005 GDB_TK="${gdb_tk}"
2006 else
2007 GDB_TK=""
2008 fi
2009 ;;
805e22b2 2010esac
415470be 2011CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2012INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
805e22b2 2013
01b41571 2014# Strip out unwanted targets.
6f4f34a7 2015
2016# While at that, we remove Makefiles if we were started for recursive
2017# configuration, so that the top-level Makefile reconfigures them,
2018# like we used to do when configure itself was recursive.
6f4f34a7 2019
01b41571 2020# Loop over modules. $extrasub must be used with care, limiting as
2021# much as possible the usage of range addresses. That's because autoconf
2022# splits the sed script to overcome limits in the number of commands,
2023# and relying on carefully-timed sed passes may turn out to be very hard
2024# to maintain later. In this particular case, you just have to be careful
2025# not to nest @if/@endif pairs, because configure will not warn you at all.
6f4f34a7 2026
93f93279 2027AC_ARG_ENABLE([bootstrap],
09c2d953 2028[ --enable-bootstrap enable bootstrapping @<:@yes if native build@:>@],,
3c782584 2029enable_bootstrap=default)
93f93279 2030
3c782584 2031# Issue errors and warnings for invalid/strange bootstrap combinations.
2032case "$configdirs" in
2033 *gcc*) have_compiler=yes ;;
2034 *) have_compiler=no ;;
2035esac
2036
2037case "$have_compiler:$host:$target:$enable_bootstrap" in
2038 *:*:*:no) ;;
2039
98777423 2040 # Default behavior. Enable bootstrap if we have a compiler
3c782584 2041 # and we are in a native configuration.
2042 yes:$build:$build:default)
98777423 2043 enable_bootstrap=yes ;;
3c782584 2044
2045 *:*:*:default)
2046 enable_bootstrap=no ;;
2047
2048 # We have a compiler and we are in a native configuration, bootstrap is ok
0c8a85c6 2049 yes:$build:$build:yes)
3c782584 2050 ;;
2051
2052 # Other configurations, but we have a compiler. Assume the user knows
2053 # what he's doing.
0c8a85c6 2054 yes:*:*:yes)
3c782584 2055 AC_MSG_WARN([trying to bootstrap a cross compiler])
2056 ;;
2057
2058 # No compiler: if they passed --enable-bootstrap explicitly, fail
0c8a85c6 2059 no:*:*:yes)
3c782584 2060 AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
2061
2062 # Fail if wrong command line
2063 *)
2064 AC_MSG_ERROR([invalid option for --enable-bootstrap])
2065 ;;
2066esac
2067
2068# Adjust the toplevel makefile according to whether bootstrap was selected.
93f93279 2069case "$enable_bootstrap" in
2070 yes)
93f93279 2071 bootstrap_suffix=bootstrap ;;
2072 no)
93f93279 2073 bootstrap_suffix=no-bootstrap ;;
2074esac
93f93279 2075
2f8725b0 2076for module in ${build_configdirs} ; do
6f4f34a7 2077 if test -z "${no_recursion}" \
2078 && test -f ${build_subdir}/${module}/Makefile; then
2079 echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2080 rm -f ${build_subdir}/${module}/Makefile
2081 fi
01b41571 2082 extrasub="$extrasub
2083/^@if build-$module\$/d
93f93279 2084/^@endif build-$module\$/d
2085/^@if build-$module-$bootstrap_suffix\$/d
2086/^@endif build-$module-$bootstrap_suffix\$/d"
6f4f34a7 2087done
2088for module in ${configdirs} ; do
9c19a746 2089 if test -z "${no_recursion}"; then
35d84d10 2090 for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
9c19a746 2091 if test -f ${file}; then
2092 echo 1>&2 "*** removing ${file} to force reconfigure"
2093 rm -f ${file}
2094 fi
2095 done
6f4f34a7 2096 fi
01b41571 2097 extrasub="$extrasub
2098/^@if $module\$/d
93f93279 2099/^@endif $module\$/d
2100/^@if $module-$bootstrap_suffix\$/d
2101/^@endif $module-$bootstrap_suffix\$/d"
6f4f34a7 2102done
2103for module in ${target_configdirs} ; do
2104 if test -z "${no_recursion}" \
2105 && test -f ${target_subdir}/${module}/Makefile; then
2106 echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
2107 rm -f ${target_subdir}/${module}/Makefile
2108 fi
01b41571 2109 extrasub="$extrasub
2110/^@if target-$module\$/d
93f93279 2111/^@endif target-$module\$/d
2112/^@if target-$module-$bootstrap_suffix\$/d
2113/^@endif target-$module-$bootstrap_suffix\$/d"
805e22b2 2114done
54f0538b 2115
01b41571 2116extrasub="$extrasub
2117/^@if /,/^@endif /d"
805e22b2 2118
2119# Create the serialization dependencies. This uses a temporary file.
2120
11d8013a 2121AC_ARG_ENABLE([serial-configure],
09c2d953 2122[ --enable-serial-@<:@{host,target,build}-@:>@configure
2123 force sequential configuration of
11d8013a 2124 sub-packages for the host, target or build
09c2d953 2125 machine, or all sub-packages])
622c1fa9 2126
2127case ${enable_serial_configure} in
2128 yes)
2129 enable_serial_build_configure=yes
2130 enable_serial_host_configure=yes
2131 enable_serial_target_configure=yes
2132 ;;
2133esac
11d8013a 2134
805e22b2 2135# These force 'configure's to be done one at a time, to avoid problems
2136# with contention over a shared config.cache.
2137rm -f serdep.tmp
11d8013a 2138echo '# serdep.tmp' > serdep.tmp
805e22b2 2139olditem=
622c1fa9 2140test "x${enable_serial_build_configure}" = xyes &&
805e22b2 2141for item in ${build_configdirs} ; do
2142 case ${olditem} in
2143 "") ;;
11d8013a 2144 *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
805e22b2 2145 esac
2146 olditem=${item}
2147done
2148olditem=
622c1fa9 2149test "x${enable_serial_host_configure}" = xyes &&
805e22b2 2150for item in ${configdirs} ; do
2151 case ${olditem} in
2152 "") ;;
11d8013a 2153 *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
805e22b2 2154 esac
2155 olditem=${item}
2156done
2157olditem=
622c1fa9 2158test "x${enable_serial_target_configure}" = xyes &&
805e22b2 2159for item in ${target_configdirs} ; do
2160 case ${olditem} in
2161 "") ;;
11d8013a 2162 *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
805e22b2 2163 esac
2164 olditem=${item}
2165done
71ab34df 2166serialization_dependencies=serdep.tmp
2167AC_SUBST_FILE(serialization_dependencies)
949b0daa 2168
11d8013a 2169# Base args. Strip norecursion, cache-file, srcdir, host, build,
b30fcfae 2170# target, nonopt, and variable assignments. These are the ones we
2171# might not want to pass down to subconfigures. Also strip
2172# program-prefix, program-suffix, and program-transform-name, so that
2173# we can pass down a consistent program-transform-name.
2174baseargs=
2175keep_next=no
2176skip_next=no
2177eval "set -- $ac_configure_args"
4ff792a4 2178for ac_arg
2179do
b30fcfae 2180 if test X"$skip_next" = X"yes"; then
2181 skip_next=no
2182 continue
2183 fi
2184 if test X"$keep_next" = X"yes"; then
2185 case $ac_arg in
2186 *\'*)
2187 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2188 esac
2189 baseargs="$baseargs '$ac_arg'"
2190 keep_next=no
2191 continue
2192 fi
2193
2194 # Handle separated arguments. Based on the logic generated by
2195 # autoconf 2.59.
2196 case $ac_arg in
2197 *=* | --config-cache | -C | -disable-* | --disable-* \
2198 | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2199 | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2200 | -with-* | --with-* | -without-* | --without-* | --x)
2201 separate_arg=no
2202 ;;
2203 -*)
2204 separate_arg=yes
2205 ;;
2206 *)
2207 separate_arg=no
2208 ;;
2209 esac
2210
2211 case "$ac_arg" in
2212 --no*)
2213 continue
2214 ;;
2215 --c* | \
2216 --sr* | \
2217 --ho* | \
2218 --bu* | \
2219 --t* | \
2220 --program-* | \
2221 -cache_file* | \
2222 -srcdir* | \
2223 -host* | \
2224 -build* | \
2225 -target* | \
2226 -program-prefix* | \
2227 -program-suffix* | \
2228 -program-transform-name* )
2229 skip_next=$separate_arg
2230 continue
2231 ;;
2232 -*)
2233 # An option. Add it.
2234 case $ac_arg in
2235 *\'*)
2236 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2237 esac
2238 baseargs="$baseargs '$ac_arg'"
2239 keep_next=$separate_arg
2240 ;;
2241 *)
2242 # Either a variable assignment, or a nonopt (triplet). Don't
2243 # pass it down; let the Makefile handle this.
2244 continue
2245 ;;
2246 esac
2247done
2248# Remove the initial space we just introduced and, as these will be
2249# expanded by make, quote '$'.
2250baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
28e9041c 2251
fbfea1fa 2252# Add in --program-transform-name, after --program-prefix and
2253# --program-suffix have been applied to it. Autoconf has already
2254# doubled dollar signs and backslashes in program_transform_name; we want
2255# the backslashes un-doubled, and then the entire thing wrapped in single
2256# quotes, because this will be expanded first by make and then by the shell.
2257# Also, because we want to override the logic in subdir configure scripts to
2258# choose program_transform_name, replace any s,x,x, with s,y,y,.
2259sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2260${program_transform_name}
2261EOF_SED
2262gcc_transform_name=`cat conftestsed.out`
2263rm -f conftestsed.out
2264baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
af7bb0c0 2265if test "$silent" = yes; then
2266 baseargs="$baseargs --silent"
2267fi
fbfea1fa 2268
31972771 2269# For the build-side libraries, we just need to pretend we're native,
2270# and not use the same cache file. Multilibs are neither needed nor
2271# desired.
d45318b3 2272build_configargs="--cache-file=../config.cache ${baseargs}"
64d298c9 2273
805e22b2 2274# For host modules, accept cache file option, or specification as blank.
2275case "${cache_file}" in
2276"") # empty
2277 cache_file_option="" ;;
71ab34df 2278/* | [[A-Za-z]]:[[\\/]]* ) # absolute path
805e22b2 2279 cache_file_option="--cache-file=${cache_file}" ;;
2280*) # relative path
2281 cache_file_option="--cache-file=../${cache_file}" ;;
2282esac
2283
ba1081ef 2284# Host dirs don't like to share a cache file either, horribly enough.
2285# This seems to be due to autoconf 2.5x stupidity.
d45318b3 2286host_configargs="--cache-file=./config.cache ${extra_host_args} ${baseargs}"
805e22b2 2287
3a7bfd0c 2288target_configargs=${baseargs}
31972771 2289
28e9041c 2290# Passing a --with-cross-host argument lets the target libraries know
2291# whether they are being built with a cross-compiler or being built
2292# native. However, it would be better to use other mechanisms to make the
2293# sorts of decisions they want to make on this basis. Please consider
2294# this option to be deprecated. FIXME.
441f85dc 2295if test x${is_cross_compiler} = xyes ; then
b30fcfae 2296 target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
28e9041c 2297fi
2298
2299# Default to --enable-multilib.
441f85dc 2300if test x${enable_multilib} = x ; then
3a7bfd0c 2301 target_configargs="--enable-multilib ${target_configargs}"
28e9041c 2302fi
2303
ed37269d 2304# Pass --with-newlib if appropriate. Note that target_configdirs has
2305# changed from the earlier setting of with_newlib.
441f85dc 2306if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
3a7bfd0c 2307 target_configargs="--with-newlib ${target_configargs}"
ed37269d 2308fi
2309
74fef112 2310# Different target subdirs use different values of certain variables
2311# (notably CXX). Worse, multilibs use *lots* of different values.
2312# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2313# it doesn't automatically accept command-line overrides of them.
2314# This means it's not safe for target subdirs to share a cache file,
2315# which is disgusting, but there you have it. Hopefully this can be
2316# fixed in future. It's still worthwhile to use a cache file for each
2317# directory. I think.
2318
a8abbd9d 2319# Pass the appropriate --build, --host, --target and --cache-file arguments.
2320# We need to pass --target, as newer autoconf's requires consistency
2321# for target_alias and gcc doesn't manage it consistently.
d45318b3 2322target_configargs="--cache-file=./config.cache ${target_configargs}"
31972771 2323
bc7af389 2324FLAGS_FOR_TARGET=
753fca8a 2325case " $target_configdirs " in
681dbe98 2326 *" newlib "*)
3a7bfd0c 2327 case " $target_configargs " in
681dbe98 2328 *" --with-newlib "*)
bc7af389 2329 case "$target" in
32999451 2330 *-cygwin*)
d957c480 2331 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' ;;
bc7af389 2332 esac
2333
e2bac683 2334 # If we're not building GCC, don't discard standard headers.
296a0f54 2335 if test -d ${srcdir}/gcc; then
32999451 2336 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
e2bac683 2337
2338 if test "${build}" != "${host}"; then
2339 # On Canadian crosses, CC_FOR_TARGET will have already been set
2340 # by `configure', so we won't have an opportunity to add -Bgcc/
2341 # to it. This is right: we don't want to search that directory
2342 # for binaries, but we want the header files in there, so add
2343 # them explicitly.
c1eb9e31 2344 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
e2bac683 2345
2346 # Someone might think of using the pre-installed headers on
2347 # Canadian crosses, in case the installed compiler is not fully
2348 # compatible with the compiler being built. In this case, it
2349 # would be better to flag an error than risking having
2350 # incompatible object files being constructed. We can't
2351 # guarantee that an error will be flagged, but let's hope the
2352 # compiler will do it, when presented with incompatible header
2353 # files.
2354 fi
32999451 2355 fi
2356
df2ff48f 2357 case "${target}-${is_cross_compiler}" in
f74ea578 2358 i[[3456789]]86-*-linux*-no)
df2ff48f 2359 # Here host == target, so we don't need to build gcc,
2360 # so we don't want to discard standard headers.
2361 FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
df2ff48f 2362 ;;
2363 *)
2364 # If we're building newlib, use its generic headers last, but search
2365 # for any libc-related directories first (so make it the last -B
2366 # switch).
2367 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
1c5767f1 2368
2369 # If we're building libgloss, find the startup file, simulator library
2370 # and linker script.
2371 case " $target_configdirs " in
2372 *" libgloss "*)
2373 # Look for startup file, simulator library and maybe linker script.
2374 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
2375 # Look for libnosys.a in case the target needs it.
2376 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
2377 # Most targets have the linker script in the source directory.
2378 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
2379 ;;
2380 esac
df2ff48f 2381 ;;
2382 esac
bc7af389 2383 ;;
681dbe98 2384 esac
2385 ;;
bc7af389 2386esac
d6d689df 2387case "$target" in
2388*-mingw*)
2389 # Can't be handled as Cygwin above since Mingw does not use newlib.
2390 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' ;;
2391esac
32999451 2392
d8e9ea04 2393# Allow the user to override the flags for
2394# our build compiler if desired.
823e8b8d 2395if test x"${build}" = x"${host}" ; then
2396 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2397 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
2398 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
2399fi
d8e9ea04 2400
32999451 2401# On Canadian crosses, we'll be searching the right directories for
2402# the previously-installed cross compiler, so don't bother to add
2403# flags for directories within the install tree of the compiler
2404# being built; programs in there won't even run.
296a0f54 2405if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
bc7af389 2406 # Search for pre-installed headers if nothing else fits.
5750c7d4 2407 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
bc7af389 2408fi
32999451 2409
753fca8a 2410if test "x${use_gnu_ld}" = x &&
13b1b53a 2411 echo " ${configdirs} " | grep " ld " > /dev/null ; then
bc7af389 2412 # Arrange for us to find uninstalled linker scripts.
c1eb9e31 2413 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
bc7af389 2414fi
2415
24714a39 2416# Search for other target-specific linker scripts and such.
2417case "${target}" in
38d7211b 2418 mep*)
2419 FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
2420 ;;
24714a39 2421esac
2422
71ab34df 2423# Makefile fragments.
03c65091 2424for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2425do
2426 eval fragval=\$$frag
2427 if test $fragval != /dev/null; then
2428 eval $frag=${srcdir}/$fragval
2429 fi
2430done
71ab34df 2431AC_SUBST_FILE(host_makefile_frag)
2432AC_SUBST_FILE(target_makefile_frag)
2433AC_SUBST_FILE(alphaieee_frag)
2434AC_SUBST_FILE(ospace_frag)
2435
2436# Miscellanea: directories, flags, etc.
71ab34df 2437AC_SUBST(RPATH_ENVVAR)
71ab34df 2438AC_SUBST(tooldir)
2439AC_SUBST(build_tooldir)
415470be 2440AC_SUBST(CONFIGURE_GDB_TK)
71ab34df 2441AC_SUBST(GDB_TK)
415470be 2442AC_SUBST(INSTALL_GDB_TK)
71ab34df 2443
2444# Build module lists & subconfigure args.
71ab34df 2445AC_SUBST(build_configargs)
2f8725b0 2446AC_SUBST(build_configdirs)
71ab34df 2447
2448# Host module lists & subconfigure args.
2449AC_SUBST(host_configargs)
2450AC_SUBST(configdirs)
71ab34df 2451
2452# Target module lists & subconfigure args.
71ab34df 2453AC_SUBST(target_configargs)
7601142f 2454
71ab34df 2455
2456# Build tools.
93c5e793 2457AC_SUBST(AR_FOR_BUILD)
2458AC_SUBST(AS_FOR_BUILD)
71ab34df 2459AC_SUBST(CC_FOR_BUILD)
93c5e793 2460AC_SUBST(CFLAGS_FOR_BUILD)
2461AC_SUBST(CXXFLAGS_FOR_BUILD)
2462AC_SUBST(CXX_FOR_BUILD)
2463AC_SUBST(DLLTOOL_FOR_BUILD)
2464AC_SUBST(GCJ_FOR_BUILD)
2465AC_SUBST(GFORTRAN_FOR_BUILD)
2466AC_SUBST(LDFLAGS_FOR_BUILD)
2467AC_SUBST(LD_FOR_BUILD)
2468AC_SUBST(NM_FOR_BUILD)
2469AC_SUBST(RANLIB_FOR_BUILD)
2470AC_SUBST(WINDMC_FOR_BUILD)
2471AC_SUBST(WINDRES_FOR_BUILD)
71ab34df 2472AC_SUBST(config_shell)
2473
f5aebe3e 2474# Generate default definitions for YACC, M4, LEX and other programs that run
2475# on the build machine. These are used if the Makefile can't locate these
2476# programs in objdir.
2477MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
2478
2479AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
2480case " $build_configdirs " in
2481 *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
2482 *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;;
2483esac
2484
2485AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
2486case " $build_configdirs " in
2487 *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
2488esac
2489
2490AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
2491case " $build_configdirs " in
2492 *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
2493esac
2494
2495AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
2496case " $build_configdirs " in
2497 *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2498 *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
2499esac
2500
2501AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
2502case " $build_configdirs " in
2503 *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2504esac
2505
2506AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
2507case " $build_configdirs " in
2508 *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
2509 *)
2510changequote(,)
ef4a823a 2511 # For an installed makeinfo, we require it to be from texinfo 4.6 or
f5aebe3e 2512 # higher, else we use the "missing" dummy.
2513 if ${MAKEINFO} --version \
ef4a823a 2514 | egrep 'texinfo[^0-9]*(4\.([6-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
f5aebe3e 2515 :
2516 else
2517 MAKEINFO="$MISSING makeinfo"
2518 fi
2519 ;;
2520changequote([,])
2521esac
2522
2523# FIXME: expect and dejagnu may become build tools?
2524
2525AC_CHECK_PROGS(EXPECT, expect, expect)
2526case " $configdirs " in
2527 *" expect "*)
2528 test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
2529 ;;
2530esac
2531
2532AC_CHECK_PROGS(RUNTEST, runtest, runtest)
2533case " $configdirs " in
2534 *" dejagnu "*)
8d365775 2535 test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
f5aebe3e 2536 ;;
2537esac
2538
2539
71ab34df 2540# Host tools.
768691b5 2541NCN_STRICT_CHECK_TOOLS(AR, ar)
2542NCN_STRICT_CHECK_TOOLS(AS, as)
2543NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
2544NCN_STRICT_CHECK_TOOLS(LD, ld)
f5aebe3e 2545NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
768691b5 2546NCN_STRICT_CHECK_TOOLS(NM, nm)
2547NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :)
f5aebe3e 2548NCN_STRICT_CHECK_TOOLS(STRIP, strip, :)
768691b5 2549NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
75d6a0a9 2550NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
768691b5 2551NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
2552NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
71ab34df 2553AC_SUBST(CC)
2554AC_SUBST(CXX)
2555AC_SUBST(CFLAGS)
2556AC_SUBST(CXXFLAGS)
71ab34df 2557
f5aebe3e 2558# Target tools.
c47832b1 2559AC_ARG_WITH([build-time-tools],
09c2d953 2560 [ --with-build-time-tools=PATH
c47832b1 2561 use given path to find target tools during the build],
2562 [case x"$withval" in
2563 x/*) ;;
2564 *)
2565 with_build_time_tools=
2566 AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
2567 ;;
2568 esac],
2569 [with_build_time_tools=])
2570
768691b5 2571NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
2572NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
768691b5 2573NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
2574NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
2575NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
c47832b1 2576
2577ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
2578ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
2579ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
2580ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
2581ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
2582ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
2583ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
2584ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :)
2585ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
2586ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
75d6a0a9 2587ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
ef8184c7 2588
f5aebe3e 2589RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
2590
2591GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
2592GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
2593GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2594GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
2595 [gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
2596 c++)
2597GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
2598 [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],
2599 c++)
2600GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
2601GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2602GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
2603 [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
2604GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
2605 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
2606GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
2607GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
2608GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
2609GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
2610GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
2611GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip])
2612GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
75d6a0a9 2613GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
ef8184c7 2614
f5aebe3e 2615AC_SUBST(FLAGS_FOR_TARGET)
ef8184c7 2616AC_SUBST(RAW_CXX_FOR_TARGET)
49aae208 2617
71ab34df 2618# Certain tools may need extra flags.
2619AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2620RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2621NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
28e9041c 2622
f5aebe3e 2623# When building target libraries, except in a Canadian cross, we use
2624# the same toolchain as the compiler we just built.
2625COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
2626COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
2627COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
2628if test $host = $build; then
2629 case " $configdirs " in
2630 *" gcc "*)
2631 COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
2632 COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
2633 COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
2634 ;;
2635 esac
2636fi
2637
2638AC_SUBST(COMPILER_AS_FOR_TARGET)
2639AC_SUBST(COMPILER_LD_FOR_TARGET)
2640AC_SUBST(COMPILER_NM_FOR_TARGET)
2641
3290c0cf 2642AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2643AC_ARG_ENABLE(maintainer-mode,
2644[ --enable-maintainer-mode enable make rules and dependencies not useful
2645 (and sometimes confusing) to the casual installer],
2646 USE_MAINTAINER_MODE=$enableval,
2647 USE_MAINTAINER_MODE=no)
2648AC_MSG_RESULT($USE_MAINTAINER_MODE)
2649AC_SUBST(MAINTAINER_MODE_TRUE)
2650AC_SUBST(MAINTAINER_MODE_FALSE)
2651if test "$USE_MAINTAINER_MODE" = yes; then
2652 MAINTAINER_MODE_TRUE=
2653 MAINTAINER_MODE_FALSE='#'
2654else
2655 MAINTAINER_MODE_TRUE='#'
2656 MAINTAINER_MODE_FALSE=
2657fi
2658MAINT=$MAINTAINER_MODE_TRUE
2659AC_SUBST(MAINT)dnl
2660
2d64c2fd 2661# ---------------------
2662# GCC bootstrap support
2663# ---------------------
2664
2665# Stage specific cflags for build.
2666stage1_cflags="-g"
2667case $build in
2668 vax-*-*)
2669 case ${GCC} in
2670 yes) stage1_cflags="-g -Wa,-J" ;;
2671 *) stage1_cflags="-g -J" ;;
2672 esac ;;
2d64c2fd 2673esac
f508ba97 2674
2675# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
2676if test "$GCC" = yes; then
2677 saved_CFLAGS="$CFLAGS"
2678
2679 # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
2680 CFLAGS="$CFLAGS -fkeep-inline-functions"
2681 AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
505abe0c 2682 AC_TRY_COMPILE([
2683#if (__GNUC__ < 3) \
2684 || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
2685 || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
2686#error http://gcc.gnu.org/PR29382
2687#endif
2688 ],,
f508ba97 2689 [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
2690 [AC_MSG_RESULT([no])])
2691
2692 CFLAGS="$saved_CFLAGS"
2693fi
2694
2d64c2fd 2695AC_SUBST(stage1_cflags)
2696
39f34cfc 2697# Enable --enable-checking in stage1 of the compiler.
2698AC_ARG_ENABLE(stage1-checking,
09c2d953 2699[ --enable-stage1-checking@<:@=all@:>@ choose additional checking for stage1
2700 of the compiler],
39f34cfc 2701[stage1_checking=--enable-checking=${enable_stage1_checking}],
f6be6a96 2702[if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
f03e0ae4 2703 stage1_checking=--enable-checking=yes,types
39f34cfc 2704else
f6be6a96 2705 stage1_checking=--enable-checking=$enable_checking,types
39f34cfc 2706fi])
2707AC_SUBST(stage1_checking)
2708
2d64c2fd 2709# Enable -Werror in bootstrap stage2 and later.
2d64c2fd 2710AC_ARG_ENABLE(werror,
2711[ --enable-werror enable -Werror in bootstrap stage2 and later], [],
dd979235 2712[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
dc914c6d 2713 enable_werror=yes
2714else
2715 enable_werror=no
2716fi])
c0c5068d 2717case ${enable_werror} in
2718 yes) stage2_werror_flag="--enable-werror-always" ;;
2719 *) stage2_werror_flag="" ;;
2d64c2fd 2720esac
c0c5068d 2721AC_SUBST(stage2_werror_flag)
2d64c2fd 2722
d06227a7 2723# Flags needed to enable html installing and building
2724AC_ARG_WITH(datarootdir,
09c2d953 2725[ --with-datarootdir use datarootdir as the data root directory.],
d06227a7 2726[datarootdir="\${prefix}/${withval}"],
2727[datarootdir="\${prefix}/share"])
2728
2729AC_ARG_WITH(docdir,
09c2d953 2730[ --with-docdir install documentation in this directory.],
d06227a7 2731[docdir="\${prefix}/${withval}"],
2732[docdir="\${datarootdir}/doc"])
2733
130effca 2734AC_ARG_WITH(pdfdir,
09c2d953 2735[ --with-pdfdir install pdf in this directory.],
130effca 2736[pdfdir="\${prefix}/${withval}"],
2737[pdfdir="\${docdir}"])
2738
d06227a7 2739AC_ARG_WITH(htmldir,
09c2d953 2740[ --with-htmldir install html in this directory.],
d06227a7 2741[htmldir="\${prefix}/${withval}"],
2742[htmldir="\${docdir}"])
2743
2744AC_SUBST(datarootdir)
2745AC_SUBST(docdir)
130effca 2746AC_SUBST(pdfdir)
d06227a7 2747AC_SUBST(htmldir)
2748
71ab34df 2749AC_OUTPUT(Makefile)