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