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