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