2006-02-14 Paolo Bonzini <bonzini@gnu.org>
[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 BUILD_PREFIX=${build_alias}-
1064 BUILD_PREFIX_1=${build_alias}-
9e07f89d
NN
1065
1066else
1067 # Set reasonable default values for some tools even if not Canadian.
1068 # Of course, these are different reasonable default values, originally
1069 # specified directly in the Makefile.
1070 # We don't export, so that autoconf can do its job.
1071 # Note that all these settings are above the fragment inclusion point
1072 # in Makefile.in, so can still be overridden by fragments.
1073 # This is all going to change when we autoconfiscate...
1074
9e07f89d 1075 CC_FOR_BUILD="\$(CC)"
9e07f89d
NN
1076 BUILD_PREFIX=
1077 BUILD_PREFIX_1=loser-
6a9cf61e
PB
1078
1079 AC_PROG_CC
9e07f89d
NN
1080
1081 # We must set the default linker to the linker used by gcc for the correct
1082 # operation of libtool. If LD is not defined and we are using gcc, try to
1083 # set the LD default to the ld used by gcc.
1084 if test -z "$LD"; then
6a9cf61e 1085 if test "$GCC" = yes; then
9e07f89d
NN
1086 case $build in
1087 *-*-mingw*)
1088 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1089 *)
1090 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1091 esac
1092 case $gcc_prog_ld in
1093 # Accept absolute paths.
1094 [[\\/]* | [A-Za-z]:[\\/]*)]
1095 LD="$gcc_prog_ld" ;;
1096 esac
1097 fi
1098 fi
1099
1100 CXX=${CXX-"c++"}
1101 CFLAGS=${CFLAGS-"-g"}
1102 CXXFLAGS=${CXXFLAGS-"-g -O2"}
1103fi
1104
1105ACX_PROG_GNAT
b8908782 1106ACX_PROG_CMP_IGNORE_INITIAL
9e07f89d 1107
11b04d1f 1108# Check for GMP and MPFR
4b1cb4fe
DD
1109gmplibs=
1110gmpinc=
1111have_gmp=yes
11b04d1f
DD
1112# Specify a location for mpfr
1113# check for this first so it ends up on the link line before gmp.
1114AC_ARG_WITH(mpfr-dir, [ --with-mpfr-dir=PATH Specify source directory for MPFR library])
1115
1116if test "x$with_mpfr_dir" != x; then
c10e9ba7 1117 gmpinc="-I$with_mpfr_dir"
11b04d1f
DD
1118 gmplibs="$with_mpfr_dir/libmpfr.a"
1119else
1120 gmplibs="-lmpfr"
1121fi
1122
1123AC_ARG_WITH(mpfr, [ --with-mpfr=PATH Specify directory for installed MPFR library])
1124
1125if test "x$with_mpfr" != x; then
1126 gmplibs="-L$with_mpfr/lib $gmplibs"
1127 gmpinc="-I$with_mpfr/include"
1128fi
1129
4b1cb4fe
DD
1130# Specify a location for gmp
1131AC_ARG_WITH(gmp-dir, [ --with-gmp-dir=PATH Specify source directory for GMP library])
1132
11b04d1f
DD
1133if test "x$with_gmp_dir" != x; then
1134 gmpinc="$gmpinc -I$with_gmp_dir"
4b1cb4fe 1135 if test -f "$with_gmp_dir/.libs/libgmp.a"; then
11b04d1f 1136 gmplibs="$gmplibs $with_gmp_dir/.libs/libgmp.a"
4b1cb4fe 1137 elif test -f "$with_gmp_dir/_libs/libgmp.a"; then
11b04d1f 1138 gmplibs="$gmplibs $with_gmp_dir/_libs/libgmp.a"
4b1cb4fe
DD
1139 fi
1140 # One of the later tests will catch the error if neither library is present.
11b04d1f
DD
1141else
1142 gmplibs="$gmplibs -lgmp"
4b1cb4fe
DD
1143fi
1144
1145AC_ARG_WITH(gmp, [ --with-gmp=PATH Specify directory for installed GMP library])
1146
11b04d1f
DD
1147if test "x$with_gmp" != x; then
1148 gmplibs="-L$with_gmp/lib $gmplibs"
1149 gmpinc="-I$with_gmp/include $gmpinc"
4b1cb4fe
DD
1150fi
1151
1152saved_CFLAGS="$CFLAGS"
1153CFLAGS="$CFLAGS $gmpinc"
1154# Check GMP actually works
1155AC_MSG_CHECKING([for correct version of gmp.h])
1156AC_TRY_COMPILE([#include "gmp.h"],[
1157#if __GNU_MP_VERSION < 3
1158choke me
1159#endif
1160], [AC_MSG_RESULT([yes])],
1161 [AC_MSG_RESULT([no]); have_gmp=no])
1162
1163if test x"$have_gmp" = xyes; then
11b04d1f 1164 AC_MSG_CHECKING([for MPFR])
4b1cb4fe
DD
1165
1166 saved_LIBS="$LIBS"
1167 LIBS="$LIBS $gmplibs"
11b04d1f
DD
1168 AC_TRY_LINK([#include <gmp.h>
1169#include <mpfr.h>], [mpfr_t n; mpfr_init(n);],
4b1cb4fe
DD
1170 [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1171 LIBS="$saved_LIBS"
1172 CFLAGS="$saved_CFLAGS"
1173fi
1174
11b04d1f 1175# Flags needed for both GMP and/or MPFR
4b1cb4fe
DD
1176AC_SUBST(gmplibs)
1177AC_SUBST(gmpinc)
1178
947f426e 1179# By default, C is the only stage 1 language.
1d39f329
NN
1180stage1_languages=c
1181AC_SUBST(stage1_languages)
1182
9e07f89d
NN
1183# Figure out what language subdirectories are present.
1184# Look if the user specified --enable-languages="..."; if not, use
1185# the environment variable $LANGUAGES if defined. $LANGUAGES might
1186# go away some day.
1187# NB: embedded tabs in this IF block -- do not untabify
1188if test -d ${srcdir}/gcc; then
1189 if test x"${enable_languages+set}" != xset; then
1190 if test x"${LANGUAGES+set}" = xset; then
1191 enable_languages="${LANGUAGES}"
1192 echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1193 else
1194 enable_languages=all
1195 fi
1196 else
1197 if test x"${enable_languages}" = x ||
1198 test x"${enable_languages}" = xyes;
1199 then
1200 echo configure.in: --enable-languages needs at least one language argument 1>&2
1201 exit 1
1202 fi
1203 fi
1204 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
1205
096f7d00
DE
1206 # 'f95' is the old name for the 'fortran' language. We issue a warning
1207 # and make the substitution.
1208 case ,${enable_languages}, in
1209 *,f95,*)
1210 echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1211 enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1212 ;;
1213 esac
1214
9e07f89d
NN
1215 # First scan to see if an enabled language requires some other language.
1216 # We assume that a given config-lang.in will list all the language
1217 # front ends it requires, even if some are required indirectly.
1218 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1219 case ${lang_frag} in
1220 ..) ;;
1221 # The odd quoting in the next line works around
1222 # an apparent bug in bash 1.12 on linux.
1223 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1224 *)
1225 # From the config-lang.in, get $language, $lang_requires
1226 language=
1227 lang_requires=
1228 . ${lang_frag}
1229 for other in ${lang_requires} ; do
1230 case ,${enable_languages}, in
1231 *,$other,*) ;;
1232 *,all,*) ;;
1233 *,$language,*)
1234 echo " \`$other' language required by \`$language'; enabling" 1>&2
1235 enable_languages="${enable_languages},${other}"
1236 ;;
1237 esac
1238 done
1239 ;;
1240 esac
1241 done
1242
1243 new_enable_languages=c
1244 missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
9cb3fa6f 1245 potential_languages=c
9e07f89d
NN
1246
1247 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1248 case ${lang_frag} in
1249 ..) ;;
1250 # The odd quoting in the next line works around
1251 # an apparent bug in bash 1.12 on linux.
1252 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1253 *)
1254 # From the config-lang.in, get $language, $target_libs,
1d39f329 1255 # $lang_dirs, $boot_language, and $build_by_default
9e07f89d
NN
1256 language=
1257 target_libs=
1258 lang_dirs=
1d39f329 1259 boot_language=
9e07f89d 1260 build_by_default=
9cb3fa6f 1261 need_gmp=
9e07f89d 1262 . ${lang_frag}
9cb3fa6f 1263 potential_languages="${potential_languages},${language}"
9e07f89d
NN
1264 # This is quite sensitive to the ordering of the case statement arms.
1265 case ,${enable_languages},:${language}:${have_gnat}:${build_by_default} in
1266 *::*:*)
1267 echo "${lang_frag} doesn't set \$language." 1>&2
1268 exit 1
9cb3fa6f 1269 ;;
9e07f89d
NN
1270 *:ada:no:*)
1271 # Ada was requested with no preexisting GNAT. Disable unconditionally.
1272 add_this_lang=no
1273 ;;
1274 *,${language},*:*:*:*)
1275 # Language was explicitly selected; include it.
1276 add_this_lang=yes
1277 ;;
1278 *,all,*:*:*:no)
1279 # 'all' was selected, but this is not a default language
9cb3fa6f 1280 # so do not include it.
9e07f89d 1281 add_this_lang=no
9cb3fa6f 1282 ;;
9e07f89d
NN
1283 *,all,*:*:*:*)
1284 # 'all' was selected and this is a default language; include it.
1285 add_this_lang=yes
1286 ;;
1287 *)
1288 add_this_lang=no
1289 ;;
1290 esac
4b1cb4fe 1291
9cb3fa6f
PB
1292 # Disable languages that need GMP if it isn't available.
1293 case ,${enable_languages},:${have_gmp}:${need_gmp} in
1294 *,${language},*:no:yes)
1295 # Specifically requested language; tell them.
1296 AC_MSG_ERROR([GMP with MPFR support is required to build $language])
1297 ;;
1298 *:no:yes)
1299 # Silently disable.
1300 add_this_lang=no
1301 ;;
1302 esac
59f7ec45
HPN
1303
1304 # Disable a language that is unsupported by the target.
1305 case " $unsupported_languages " in
1306 *" $language "*)
1307 add_this_lang=no
1308 ;;
1309 esac
1310
4b1cb4fe 1311 case $add_this_lang in
9e07f89d
NN
1312 no)
1313 # Remove language-dependent dirs.
1d39f329
NN
1314 eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
1315 ;;
9e07f89d
NN
1316 *)
1317 new_enable_languages="$new_enable_languages,$language"
1d39f329
NN
1318 missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1319 case ${boot_language} in
1320 yes)
4fa63067
NN
1321 # Add to (comma-separated) list of stage 1 languages.
1322 stage1_languages="${stage1_languages},${language}"
1d39f329
NN
1323 ;;
1324 esac
1325 ;;
9e07f89d
NN
1326 esac
1327 ;;
1328 esac
1329 done
1330
4b0ac75d 1331 missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
9e07f89d
NN
1332 if test "x$missing_languages" != x; then
1333 AC_MSG_ERROR([
27258dd4
PB
1334The following requested languages could not be built: ${missing_languages}
1335Recognised languages are: ${potential_languages}])
9e07f89d
NN
1336 fi
1337
1338 if test "x$new_enable_languages" != "x$enable_languages"; then
1339 echo The following languages will be built: ${new_enable_languages}
1340 fi
1341 enable_languages="$new_enable_languages"
2e70b094 1342 ac_configure_args=`echo " $ac_configure_args" | sed -e 's/ --enable-languages=[[^ ]]*//' -e 's/$/ --enable-languages='"$enable_languages"/ `
9e07f89d
NN
1343fi
1344
caeba88f
AL
1345# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
1346# $build_configdirs and $target_configdirs.
9e07f89d
NN
1347# If we have the source for $noconfigdirs entries, add them to $notsupp.
1348
1349notsupp=""
1350for dir in . $skipdirs $noconfigdirs ; do
caeba88f 1351 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
9e07f89d
NN
1352 if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1353 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1354 if test -r $srcdir/$dirname/configure ; then
1355 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1356 true
1357 else
1358 notsupp="$notsupp $dir"
1359 fi
1360 fi
1361 fi
caeba88f
AL
1362 if test $dir != . && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1363 build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
1364 if test -r $srcdir/$dirname/configure ; then
1365 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1366 true
1367 else
1368 notsupp="$notsupp $dir"
1369 fi
1370 fi
1371 fi
9e07f89d
NN
1372 if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1373 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1374 if test -r $srcdir/$dirname/configure ; then
1375 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1376 true
1377 else
1378 notsupp="$notsupp $dir"
1379 fi
1380 fi
1381 fi
1382done
1383
1384# Sometimes the tools are distributed with libiberty but with no other
1385# libraries. In that case, we don't want to build target-libiberty.
1386if test -n "${target_configdirs}" ; then
1387 others=
1388 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1389 if test "$i" != "libiberty" ; then
1390 if test -r $srcdir/$i/configure ; then
1391 others=yes;
1392 break;
1393 fi
1394 fi
1395 done
1396 if test -z "${others}" ; then
1397 target_configdirs=
1398 fi
1399fi
1400
1401# Quietly strip out all directories which aren't configurable in this tree.
1402# This relies on all configurable subdirectories being autoconfiscated, which
1403# is now the case.
6a9cf61e
PB
1404build_configdirs_all="$build_configdirs"
1405build_configdirs=
1406for i in ${build_configdirs_all} ; do
1407 j=`echo $i | sed -e s/build-//g`
1408 if test -f ${srcdir}/$j/configure ; then
1409 build_configdirs="${build_configdirs} $i"
1410 fi
1411done
1412
9e07f89d
NN
1413configdirs_all="$configdirs"
1414configdirs=
1415for i in ${configdirs_all} ; do
1416 if test -f ${srcdir}/$i/configure ; then
1417 configdirs="${configdirs} $i"
1418 fi
1419done
6a9cf61e 1420
9e07f89d
NN
1421target_configdirs_all="$target_configdirs"
1422target_configdirs=
1423for i in ${target_configdirs_all} ; do
1424 j=`echo $i | sed -e s/target-//g`
1425 if test -f ${srcdir}/$j/configure ; then
1426 target_configdirs="${target_configdirs} $i"
1427 fi
1428done
1429
1430# Produce a warning message for the subdirs we can't configure.
1431# This isn't especially interesting in the Cygnus tree, but in the individual
1432# FSF releases, it's important to let people know when their machine isn't
1433# supported by the one or two programs in a package.
1434
1435if test -n "${notsupp}" && test -z "${norecursion}" ; then
1436 # If $appdirs is non-empty, at least one of those directories must still
1437 # be configured, or we error out. (E.g., if the gas release supports a
1438 # specified target in some subdirs but not the gas subdir, we shouldn't
1439 # pretend that all is well.)
1440 if test -n "$appdirs" ; then
1441 for dir in $appdirs ; do
1442 if test -r $dir/Makefile.in ; then
1443 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1444 appdirs=""
1445 break
1446 fi
6a9cf61e 1447 if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
9e07f89d
NN
1448 appdirs=""
1449 break
1450 fi
1451 fi
1452 done
1453 if test -n "$appdirs" ; then
1454 echo "*** This configuration is not supported by this package." 1>&2
1455 exit 1
1456 fi
1457 fi
1458 # Okay, some application will build, or we don't care to check. Still
1459 # notify of subdirs not getting built.
1460 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1461 echo " ${notsupp}" 1>&2
1462 echo " (Any other directories should still work fine.)" 1>&2
1463fi
1464
1465case "$host" in
1466 *msdosdjgpp*)
1467 enable_gdbtk=no ;;
1468esac
1469
1470copy_dirs=
1471
a19b6204
MM
1472AC_ARG_WITH([build-sysroot],
1473 [ --with-build-sysroot=sysroot
1474 use sysroot as the system root during the build],
1475 [if test x"$withval" != x ; then
1476 SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
1477 fi],
1478 [SYSROOT_CFLAGS_FOR_TARGET=])
1479AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
1480
9e07f89d
NN
1481# Handle --with-headers=XXX. If the value is not "yes", the contents of
1482# the named directory are copied to $(tooldir)/sys-include.
1483if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
1484 if test x${is_cross_compiler} = xno ; then
1485 echo 1>&2 '***' --with-headers is only supported when cross compiling
1486 exit 1
1487 fi
1488 if test x"${with_headers}" != xyes ; then
1489 case "${exec_prefixoption}" in
1490 "") x=${prefix} ;;
1491 *) x=${exec_prefix} ;;
1492 esac
1493 copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
1494 fi
1495fi
1496
1497# Handle --with-libs=XXX. If the value is not "yes", the contents of
1498# the name directories are copied to $(tooldir)/lib. Multiple directories
1499# are permitted.
1500if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
1501 if test x${is_cross_compiler} = xno ; then
1502 echo 1>&2 '***' --with-libs is only supported when cross compiling
1503 exit 1
1504 fi
1505 if test x"${with_libs}" != xyes ; then
1506 # Copy the libraries in reverse order, so that files in the first named
1507 # library override files in subsequent libraries.
1508 case "${exec_prefixoption}" in
1509 "") x=${prefix} ;;
1510 *) x=${exec_prefix} ;;
1511 esac
1512 for l in ${with_libs}; do
1513 copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
1514 done
1515 fi
1516fi
1517
2429c060
PB
1518# Set with_gnu_as and with_gnu_ld as appropriate.
1519#
1520# This is done by determining whether or not the appropriate directory
1521# is available, and by checking whether or not specific configurations
1522# have requested that this magic not happen.
1523#
1524# The command line options always override the explicit settings in
1525# configure.in, and the settings in configure.in override this magic.
1526#
1527# If the default for a toolchain is to use GNU as and ld, and you don't
1528# want to do that, then you should use the --without-gnu-as and
1529# --without-gnu-ld options for the configure script.
1530
1531if test x${use_gnu_as} = x &&
1532 echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
1533 with_gnu_as=yes
1534 extra_host_args="$extra_host_args --with-gnu-as"
1535fi
1536
1537if test x${use_gnu_ld} = x &&
1538 echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then
1539 with_gnu_ld=yes
1540 extra_host_args="$extra_host_args --with-gnu-ld"
1541fi
1542
1543# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
1544# can detect this case.
1545
1546if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
1547 with_newlib=yes
1548 extra_host_args="$extra_host_args --with-newlib"
1549fi
1550
9e07f89d
NN
1551# Handle ${copy_dirs}
1552set fnord ${copy_dirs}
1553shift
1554while test $# != 0 ; do
1555 if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
1556 :
1557 else
1558 echo Copying $1 to $2
1559
1560 # Use the install script to create the directory and all required
1561 # parent directories.
1562 if test -d $2 ; then
1563 :
1564 else
1565 echo >config.temp
1566 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
1567 fi
1568
1569 # Copy the directory, assuming we have tar.
1570 # FIXME: Should we use B in the second tar? Not all systems support it.
1571 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
1572
1573 # It is the responsibility of the user to correctly adjust all
1574 # symlinks. If somebody can figure out how to handle them correctly
1575 # here, feel free to add the code.
1576
1577 echo $1 > $2/COPIED
1578 fi
1579 shift; shift
1580done
1581
2429c060
PB
1582# Determine a target-dependent exec_prefix that the installed
1583# gcc will search in. Keep this list sorted by triplet, with
1584# the *-*-osname triplets last.
1585md_exec_prefix=
1586case "${target}" in
1587 alpha*-*-*vms*)
1588 md_exec_prefix=/gnu/lib/gcc-lib
1589 ;;
1590 i[34567]86-pc-msdosdjgpp*)
1591 md_exec_prefix=/dev/env/DJDIR/bin
1592 ;;
1593 i[34567]86-*-sco3.2v5*)
1594 if test $with_gnu_as = yes; then
1595 md_exec_prefix=/usr/gnu/bin
1596 else
1597 md_exec_prefix=/usr/ccs/bin/elf
1598 fi
1599 ;;
1600
1601 mn10300-*-* | \
1602 powerpc-*-chorusos* | \
1603 powerpc*-*-eabi* | \
1604 powerpc*-*-sysv* | \
1605 powerpc*-*-kaos* | \
1606 s390x-ibm-tpf*)
1607 md_exec_prefix=/usr/ccs/bin
1608 ;;
1609 sparc64-*-elf*)
1610 ;;
1611 v850*-*-*)
1612 md_exec_prefix=/usr/ccs/bin
1613 ;;
1614 xtensa-*-elf*)
1615 ;;
1616
1617 *-*-beos* | \
1618 *-*-elf* | \
1619 *-*-hpux* | \
1620 *-*-netware* | \
1621 *-*-nto-qnx* | \
1622 *-*-rtems* | \
1623 *-*-solaris2* | \
1624 *-*-sysv[45]* | \
1625 *-*-vxworks* | \
1626 *-wrs-windiss)
1627 md_exec_prefix=/usr/ccs/bin
1628 ;;
1629esac
1630
874e38b4
NN
1631extra_arflags_for_target=
1632extra_nmflags_for_target=
1086bc09 1633extra_ranlibflags_for_target=
a0da8069 1634target_makefile_frag=/dev/null
f48556b1 1635case "${target}" in
2a3124ca 1636 *-*-netware*)
b6f83f2a 1637 target_makefile_frag="config/mt-netware"
f48556b1 1638 ;;
3d6dfe0f
NN
1639 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
1640 target_makefile_frag="config/mt-gnu"
f48556b1 1641 ;;
a0da8069 1642 *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
874e38b4
NN
1643 # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
1644 # commands to handle both 32-bit and 64-bit objects. These flags are
1645 # harmless if we're using GNU nm or ar.
1646 extra_arflags_for_target=" -X32_64"
1647 extra_nmflags_for_target=" -B -X32_64"
f48556b1 1648 ;;
1086bc09
NN
1649 *-*-darwin*)
1650 # ranlib from Darwin requires the -c flag to look at common symbols.
1651 extra_ranlibflags_for_target=" -c"
1652 ;;
f48556b1 1653 mips*-*-pe | sh*-*-pe | *arm-wince-pe)
b6f83f2a
DD
1654 target_makefile_frag="config/mt-wince"
1655 ;;
1656esac
1657
a0da8069 1658alphaieee_frag=/dev/null
b6f83f2a
DD
1659case $target in
1660 alpha*-*-*)
1661 # This just makes sure to use the -mieee option to build target libs.
1662 # This should probably be set individually by each library.
1663 alphaieee_frag="config/mt-alphaieee"
f48556b1
DD
1664 ;;
1665esac
a0a2c6c6 1666
f48556b1
DD
1667# If --enable-target-optspace always use -Os instead of -O2 to build
1668# the target libraries, similarly if it is not specified, use -Os
1669# on selected platforms.
a0da8069 1670ospace_frag=/dev/null
f48556b1
DD
1671case "${enable_target_optspace}:${target}" in
1672 yes:*)
b6f83f2a 1673 ospace_frag="config/mt-ospace"
f48556b1
DD
1674 ;;
1675 :d30v-*)
b6f83f2a 1676 ospace_frag="config/mt-d30v"
f48556b1
DD
1677 ;;
1678 :m32r-* | :d10v-* | :fr30-*)
b6f83f2a 1679 ospace_frag="config/mt-ospace"
f48556b1
DD
1680 ;;
1681 no:* | :*)
1682 ;;
1683 *)
1684 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
1685 ;;
1686esac
252b5132 1687
f48556b1
DD
1688# Default to using --with-stabs for certain targets.
1689if test x${with_stabs} = x ; then
1690 case "${target}" in
e31d1ea3 1691 mips*-*-irix[[56]]*)
f48556b1
DD
1692 ;;
1693 mips*-*-* | alpha*-*-osf*)
1694 with_stabs=yes;
ae831be5 1695 extra_host_args="${extra_host_args} --with-stabs"
f48556b1
DD
1696 ;;
1697 esac
1698fi
1699
1700# hpux11 in 64bit mode has libraries in a weird place. Arrange to find
1701# them automatically.
1702case "${host}" in
1703 hppa*64*-*-hpux11*)
ae831be5 1704 extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
f48556b1 1705 ;;
c92a0210
DD
1706esac
1707
a0da8069
NN
1708# Some systems (e.g., one of the i386-aix systems the gas testers are
1709# using) don't handle "\$" correctly, so don't use it here.
8013444f 1710tooldir='${exec_prefix}'/${target_alias}
a0da8069
NN
1711build_tooldir=${tooldir}
1712
a0da8069
NN
1713# Create a .gdbinit file which runs the one in srcdir
1714# and tells GDB to look there for source files.
1715
1716if test -r ${srcdir}/.gdbinit ; then
1717 case ${srcdir} in
1718 .) ;;
1719 *) cat > ./.gdbinit <<EOF
1720# ${NO_EDIT}
1721dir ${srcdir}
1722dir .
1723source ${srcdir}/.gdbinit
1724EOF
1725 ;;
1726 esac
1727fi
1728
252b5132
RH
1729# Make sure that the compiler is able to generate an executable. If it
1730# can't, we are probably in trouble. We don't care whether we can run the
1731# executable--we might be using a cross compiler--we only care whether it
1732# can be created. At this point the main configure script has set CC.
a0c4f3a0 1733we_are_ok=no
252b5132
RH
1734echo "int main () { return 0; }" > conftest.c
1735${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
a0c4f3a0
DD
1736if test $? = 0 ; then
1737 if test -s conftest || test -s conftest.exe ; then
1738 we_are_ok=yes
1739 fi
1740fi
1741case $we_are_ok in
1742 no)
1743 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
1744 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
1745 rm -f conftest*
1746 exit 1
1747 ;;
1748esac
252b5132
RH
1749rm -f conftest*
1750
1751# The Solaris /usr/ucb/cc compiler does not appear to work.
1752case "${host}" in
1753 sparc-sun-solaris2*)
1754 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
a0da8069 1755 if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
252b5132 1756 could_use=
a0c4f3a0
DD
1757 test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
1758 if test -d /opt/cygnus/bin ; then
1759 if test "$could_use" = "" ; then
252b5132
RH
1760 could_use="/opt/cygnus/bin"
1761 else
1762 could_use="$could_use or /opt/cygnus/bin"
1763 fi
1764 fi
a0c4f3a0 1765 if test "$could_use" = "" ; then
252b5132
RH
1766 echo "Warning: compilation may fail because you're using"
1767 echo "/usr/ucb/cc. You should change your PATH or CC "
1768 echo "variable and rerun configure."
1769 else
1770 echo "Warning: compilation may fail because you're using"
1771 echo "/usr/ucb/cc, when you should use the C compiler from"
1772 echo "$could_use. You should change your"
1773 echo "PATH or CC variable and rerun configure."
1774 fi
1775 fi
1776 ;;
1777esac
1778
8607b6c9
NN
1779case "${host}" in
1780 *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
9a237d9e 1781 *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
8607b6c9
NN
1782 *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
1783esac
8607b6c9 1784
3866be5d
NN
1785# Record target_configdirs and the configure arguments for target and
1786# build configuration in Makefile.
1787target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
6a9cf61e 1788build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
930314a4 1789
930314a4
NN
1790# Determine whether gdb needs tk/tcl or not.
1791# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
1792# and in that case we want gdb to be built without tk. Ugh!
1793# In fact I believe gdb is the *only* package directly dependent on tk,
1794# so we should be able to put the 'maybe's in unconditionally and
1795# leave out the maybe dependencies when enable_gdbtk is false. I'm not
1796# 100% sure that that's safe though.
c180f501 1797
675c6968 1798gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
930314a4
NN
1799case "$enable_gdbtk" in
1800 no)
1801 GDB_TK="" ;;
c180f501
AC
1802 yes)
1803 GDB_TK="${gdb_tk}" ;;
930314a4 1804 *)
c180f501
AC
1805 # Only add the dependency on gdbtk when GDBtk is part of the gdb
1806 # distro. Eventually someone will fix this and move Insight, nee
1807 # gdbtk to a separate directory.
1808 if test -d ${srcdir}/gdb/gdbtk ; then
1809 GDB_TK="${gdb_tk}"
1810 else
1811 GDB_TK=""
1812 fi
1813 ;;
930314a4 1814esac
907be67c
DJ
1815CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
1816INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
930314a4 1817
6bd3dfaa 1818# Strip out unwanted targets.
dd12c3a8
NN
1819
1820# While at that, we remove Makefiles if we were started for recursive
1821# configuration, so that the top-level Makefile reconfigures them,
1822# like we used to do when configure itself was recursive.
dd12c3a8 1823
6bd3dfaa
PB
1824# Loop over modules. $extrasub must be used with care, limiting as
1825# much as possible the usage of range addresses. That's because autoconf
1826# splits the sed script to overcome limits in the number of commands,
1827# and relying on carefully-timed sed passes may turn out to be very hard
1828# to maintain later. In this particular case, you just have to be careful
1829# not to nest @if/@endif pairs, because configure will not warn you at all.
dd12c3a8 1830
498d4a71 1831AC_ARG_ENABLE([bootstrap],
80911fe1 1832[ --enable-bootstrap Enable bootstrapping [yes if native build]],,
9cb3fa6f
PB
1833enable_bootstrap=default)
1834
1835# Issue errors and warnings for invalid/strange bootstrap combinations.
1836case "$configdirs" in
1837 *gcc*) have_compiler=yes ;;
1838 *) have_compiler=no ;;
1839esac
1840
1841case "$have_compiler:$host:$target:$enable_bootstrap" in
1842 *:*:*:no) ;;
1843
0aed8855 1844 # Default behavior. Enable bootstrap if we have a compiler
9cb3fa6f
PB
1845 # and we are in a native configuration.
1846 yes:$build:$build:default)
0aed8855 1847 enable_bootstrap=yes ;;
9cb3fa6f
PB
1848
1849 *:*:*:default)
1850 enable_bootstrap=no ;;
1851
1852 # We have a compiler and we are in a native configuration, bootstrap is ok
80911fe1 1853 yes:$build:$build:yes)
9cb3fa6f
PB
1854 ;;
1855
1856 # Other configurations, but we have a compiler. Assume the user knows
1857 # what he's doing.
80911fe1 1858 yes:*:*:yes)
9cb3fa6f
PB
1859 AC_MSG_WARN([trying to bootstrap a cross compiler])
1860 ;;
498d4a71 1861
9cb3fa6f 1862 # No compiler: if they passed --enable-bootstrap explicitly, fail
80911fe1 1863 no:*:*:yes)
9cb3fa6f
PB
1864 AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
1865
1866 # Fail if wrong command line
1867 *)
1868 AC_MSG_ERROR([invalid option for --enable-bootstrap])
1869 ;;
1870esac
1871
1872# Adjust the toplevel makefile according to whether bootstrap was selected.
498d4a71
CF
1873case "$enable_bootstrap" in
1874 yes)
498d4a71
CF
1875 bootstrap_suffix=bootstrap ;;
1876 no)
498d4a71
CF
1877 bootstrap_suffix=no-bootstrap ;;
1878esac
498d4a71 1879
6a9cf61e 1880for module in ${build_configdirs} ; do
dd12c3a8
NN
1881 if test -z "${no_recursion}" \
1882 && test -f ${build_subdir}/${module}/Makefile; then
1883 echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
1884 rm -f ${build_subdir}/${module}/Makefile
1885 fi
6bd3dfaa
PB
1886 extrasub="$extrasub
1887/^@if build-$module\$/d
498d4a71
CF
1888/^@endif build-$module\$/d
1889/^@if build-$module-$bootstrap_suffix\$/d
1890/^@endif build-$module-$bootstrap_suffix\$/d"
dd12c3a8
NN
1891done
1892for module in ${configdirs} ; do
80911fe1
PB
1893 if test -z "${no_recursion}"; then
1894 for file in stage*-${module}/Makefile ${module}/Makefile; do
1895 if test -f ${file}; then
1896 echo 1>&2 "*** removing ${file} to force reconfigure"
1897 rm -f ${file}
1898 fi
1899 done
dd12c3a8 1900 fi
6bd3dfaa
PB
1901 extrasub="$extrasub
1902/^@if $module\$/d
498d4a71
CF
1903/^@endif $module\$/d
1904/^@if $module-$bootstrap_suffix\$/d
1905/^@endif $module-$bootstrap_suffix\$/d"
dd12c3a8
NN
1906done
1907for module in ${target_configdirs} ; do
1908 if test -z "${no_recursion}" \
1909 && test -f ${target_subdir}/${module}/Makefile; then
1910 echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
1911 rm -f ${target_subdir}/${module}/Makefile
1912 fi
6bd3dfaa
PB
1913 extrasub="$extrasub
1914/^@if target-$module\$/d
498d4a71
CF
1915/^@endif target-$module\$/d
1916/^@if target-$module-$bootstrap_suffix\$/d
1917/^@endif target-$module-$bootstrap_suffix\$/d"
930314a4 1918done
319cab08 1919
6bd3dfaa
PB
1920extrasub="$extrasub
1921/^@if /,/^@endif /d"
930314a4 1922
a2cc058a
NN
1923# Create the serialization dependencies. This uses a temporary file.
1924
e6bfb94a 1925AC_ARG_ENABLE([serial-configure],
1047cb91
DD
1926[ --enable-serial-[{host,target,build}-]configure
1927 Force sequential configuration of
e6bfb94a 1928 sub-packages for the host, target or build
1047cb91
DD
1929 machine, or all sub-packages])
1930
1931case ${enable_serial_configure} in
1932 yes)
1933 enable_serial_build_configure=yes
1934 enable_serial_host_configure=yes
1935 enable_serial_target_configure=yes
1936 ;;
1937esac
e6bfb94a 1938
a2cc058a
NN
1939# These force 'configure's to be done one at a time, to avoid problems
1940# with contention over a shared config.cache.
1941rm -f serdep.tmp
e6bfb94a 1942echo '# serdep.tmp' > serdep.tmp
a2cc058a 1943olditem=
1047cb91 1944test "x${enable_serial_build_configure}" = xyes &&
a2cc058a
NN
1945for item in ${build_configdirs} ; do
1946 case ${olditem} in
1947 "") ;;
e6bfb94a 1948 *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
a2cc058a
NN
1949 esac
1950 olditem=${item}
1951done
1952olditem=
1047cb91 1953test "x${enable_serial_host_configure}" = xyes &&
a2cc058a
NN
1954for item in ${configdirs} ; do
1955 case ${olditem} in
1956 "") ;;
e6bfb94a 1957 *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
a2cc058a
NN
1958 esac
1959 olditem=${item}
1960done
1961olditem=
1047cb91 1962test "x${enable_serial_target_configure}" = xyes &&
a2cc058a
NN
1963for item in ${target_configdirs} ; do
1964 case ${olditem} in
1965 "") ;;
e6bfb94a 1966 *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
a2cc058a
NN
1967 esac
1968 olditem=${item}
1969done
a0da8069
NN
1970serialization_dependencies=serdep.tmp
1971AC_SUBST_FILE(serialization_dependencies)
a2cc058a 1972
e6bfb94a
AO
1973# Base args. Strip norecursion, cache-file, srcdir, host, build,
1974# target and nonopt. These are the ones we might not want to pass
f27d4f92
DJ
1975# down to subconfigures. Also strip program-prefix, program-suffix,
1976# and program-transform-name, so that we can pass down a consistent
1977# program-transform-name. If autoconf has put single quotes around
1978# any of these arguments (because they contain shell metacharacters)
1979# then this will fail; in practice this only happens for
1980# --program-transform-name, so be sure to override --program-transform-name
1981# at the end of the argument list.
1982# These will be expanded by make, so quote '$'.
d2cc0e0d 1983cat <<\EOF_SED > conftestsed
54752a6b
NN
1984s/ --no[[^ ]]*/ /g
1985s/ --c[[a-z-]]*[[= ]][[^ ]]*//g
1986s/ --sr[[a-z-]]*[[= ]][[^ ]]*//g
1987s/ --ho[[a-z-]]*[[= ]][[^ ]]*//g
1988s/ --bu[[a-z-]]*[[= ]][[^ ]]*//g
1989s/ --t[[a-z-]]*[[= ]][[^ ]]*//g
1990s/ --program-[[pst]][[a-z-]]*[[= ]][[^ ]]*//g
1991s/ -cache-file[[= ]][[^ ]]*//g
1992s/ -srcdir[[= ]][[^ ]]*//g
1993s/ -host[[= ]][[^ ]]*//g
1994s/ -build[[= ]][[^ ]]*//g
1995s/ -target[[= ]][[^ ]]*//g
1996s/ -program-prefix[[= ]][[^ ]]*//g
1997s/ -program-suffix[[= ]][[^ ]]*//g
1998s/ -program-transform-name[[= ]][[^ ]]*//g
d2cc0e0d
GK
1999s/ [[^' -][^ ]*] / /
2000s/^ *//;s/ *$//
8ff944f6
DJ
2001s,\$,$$,g
2002EOF_SED
2003sed -f conftestsed <<EOF_SED > conftestsed.out
2004 ${ac_configure_args}
d2cc0e0d 2005EOF_SED
8ff944f6
DJ
2006baseargs=`cat conftestsed.out`
2007rm -f conftestsed conftestsed.out
252b5132 2008
f27d4f92
DJ
2009# Add in --program-transform-name, after --program-prefix and
2010# --program-suffix have been applied to it. Autoconf has already
2011# doubled dollar signs and backslashes in program_transform_name; we want
2012# the backslashes un-doubled, and then the entire thing wrapped in single
2013# quotes, because this will be expanded first by make and then by the shell.
2014# Also, because we want to override the logic in subdir configure scripts to
2015# choose program_transform_name, replace any s,x,x, with s,y,y,.
2016sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2017${program_transform_name}
2018EOF_SED
2019gcc_transform_name=`cat conftestsed.out`
2020rm -f conftestsed.out
2021baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2022
49b7683b
DD
2023# For the build-side libraries, we just need to pretend we're native,
2024# and not use the same cache file. Multilibs are neither needed nor
2025# desired.
69e57115 2026build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} --target=${target_alias} ${baseargs}"
91e060aa 2027
ae831be5
NN
2028# For host modules, accept cache file option, or specification as blank.
2029case "${cache_file}" in
2030"") # empty
2031 cache_file_option="" ;;
a0da8069 2032/* | [[A-Za-z]]:[[\\/]]* ) # absolute path
ae831be5
NN
2033 cache_file_option="--cache-file=${cache_file}" ;;
2034*) # relative path
2035 cache_file_option="--cache-file=../${cache_file}" ;;
2036esac
2037
82252c06
NN
2038# Host dirs don't like to share a cache file either, horribly enough.
2039# This seems to be due to autoconf 2.5x stupidity.
bb5dca17 2040host_configargs="--cache-file=./config.cache --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}"
ae831be5 2041
a0da8069 2042target_configargs=${baseargs}
49b7683b 2043
252b5132
RH
2044# Passing a --with-cross-host argument lets the target libraries know
2045# whether they are being built with a cross-compiler or being built
2046# native. However, it would be better to use other mechanisms to make the
2047# sorts of decisions they want to make on this basis. Please consider
2048# this option to be deprecated. FIXME.
a0c4f3a0 2049if test x${is_cross_compiler} = xyes ; then
a0da8069 2050 target_configargs="--with-cross-host=${host_alias} ${target_configargs}"
252b5132
RH
2051fi
2052
2053# Default to --enable-multilib.
a0c4f3a0 2054if test x${enable_multilib} = x ; then
a0da8069 2055 target_configargs="--enable-multilib ${target_configargs}"
252b5132
RH
2056fi
2057
2058# Pass --with-newlib if appropriate. Note that target_configdirs has
2059# changed from the earlier setting of with_newlib.
a0c4f3a0 2060if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
a0da8069 2061 target_configargs="--with-newlib ${target_configargs}"
252b5132
RH
2062fi
2063
95036d20
NN
2064# Different target subdirs use different values of certain variables
2065# (notably CXX). Worse, multilibs use *lots* of different values.
2066# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2067# it doesn't automatically accept command-line overrides of them.
2068# This means it's not safe for target subdirs to share a cache file,
2069# which is disgusting, but there you have it. Hopefully this can be
2070# fixed in future. It's still worthwhile to use a cache file for each
2071# directory. I think.
2072
ae380b45
MS
2073# Pass the appropriate --build, --host, --target and --cache-file arguments.
2074# We need to pass --target, as newer autoconf's requires consistency
2075# for target_alias and gcc doesn't manage it consistently.
2076target_configargs="--cache-file=./config.cache --build=${build_alias} --host=${target_alias} --target=${target_alias} ${target_configargs}"
49b7683b 2077
9e449d3e 2078FLAGS_FOR_TARGET=
7c1f909c 2079case " $target_configdirs " in
75205f78 2080 *" newlib "*)
a0da8069 2081 case " $target_configargs " in
75205f78 2082 *" --with-newlib "*)
9e449d3e 2083 case "$target" in
63266560 2084 *-cygwin*)
564b43e5 2085 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
2086 esac
2087
7450026c 2088 # If we're not building GCC, don't discard standard headers.
4d5fd396 2089 if test -d ${srcdir}/gcc; then
63266560 2090 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
7450026c
AO
2091
2092 if test "${build}" != "${host}"; then
2093 # On Canadian crosses, CC_FOR_TARGET will have already been set
2094 # by `configure', so we won't have an opportunity to add -Bgcc/
2095 # to it. This is right: we don't want to search that directory
2096 # for binaries, but we want the header files in there, so add
2097 # them explicitly.
b00612cc 2098 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
7450026c
AO
2099
2100 # Someone might think of using the pre-installed headers on
2101 # Canadian crosses, in case the installed compiler is not fully
2102 # compatible with the compiler being built. In this case, it
2103 # would be better to flag an error than risking having
2104 # incompatible object files being constructed. We can't
2105 # guarantee that an error will be flagged, but let's hope the
2106 # compiler will do it, when presented with incompatible header
2107 # files.
2108 fi
63266560
DD
2109 fi
2110
0a0d0041 2111 case "${target}-${is_cross_compiler}" in
ec11bdc6 2112 i[[3456789]]86-*-linux*-no)
0a0d0041
TF
2113 # Here host == target, so we don't need to build gcc,
2114 # so we don't want to discard standard headers.
2115 FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
0a0d0041
TF
2116 ;;
2117 *)
2118 # If we're building newlib, use its generic headers last, but search
2119 # for any libc-related directories first (so make it the last -B
2120 # switch).
2121 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2122 ;;
2123 esac
9e449d3e 2124 ;;
75205f78
DD
2125 esac
2126 ;;
9e449d3e 2127esac
63266560 2128
5fbad20a
DD
2129# Allow the user to override the flags for
2130# our build compiler if desired.
2131CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2132
63266560
DD
2133# On Canadian crosses, we'll be searching the right directories for
2134# the previously-installed cross compiler, so don't bother to add
2135# flags for directories within the install tree of the compiler
2136# being built; programs in there won't even run.
4d5fd396 2137if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
9e449d3e 2138 # Search for pre-installed headers if nothing else fits.
bba45b8b 2139 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
9e449d3e 2140fi
63266560 2141
7c1f909c 2142if test "x${use_gnu_ld}" = x &&
f48556b1 2143 echo " ${configdirs} " | grep " ld " > /dev/null ; then
9e449d3e 2144 # Arrange for us to find uninstalled linker scripts.
b00612cc 2145 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
9e449d3e
AO
2146fi
2147
a0da8069 2148# Makefile fragments.
3e707e94
PB
2149for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2150do
2151 eval fragval=\$$frag
2152 if test $fragval != /dev/null; then
2153 eval $frag=${srcdir}/$fragval
2154 fi
2155done
a0da8069
NN
2156AC_SUBST_FILE(host_makefile_frag)
2157AC_SUBST_FILE(target_makefile_frag)
2158AC_SUBST_FILE(alphaieee_frag)
2159AC_SUBST_FILE(ospace_frag)
2160
2161# Miscellanea: directories, flags, etc.
a0da8069
NN
2162AC_SUBST(RPATH_ENVVAR)
2163AC_SUBST(BUILD_PREFIX)
2164AC_SUBST(BUILD_PREFIX_1)
a0da8069
NN
2165AC_SUBST(tooldir)
2166AC_SUBST(build_tooldir)
907be67c 2167AC_SUBST(CONFIGURE_GDB_TK)
a0da8069 2168AC_SUBST(GDB_TK)
907be67c 2169AC_SUBST(INSTALL_GDB_TK)
a0da8069
NN
2170
2171# Build module lists & subconfigure args.
a0da8069 2172AC_SUBST(build_configargs)
6a9cf61e 2173AC_SUBST(build_configdirs)
a0da8069
NN
2174
2175# Host module lists & subconfigure args.
2176AC_SUBST(host_configargs)
2177AC_SUBST(configdirs)
a0da8069
NN
2178
2179# Target module lists & subconfigure args.
a0da8069
NN
2180AC_SUBST(target_configargs)
2181AC_SUBST(target_configdirs)
a0da8069
NN
2182
2183# Build tools.
a0da8069 2184AC_SUBST(CC_FOR_BUILD)
a0da8069
NN
2185AC_SUBST(config_shell)
2186
be01d343
PB
2187# Generate default definitions for YACC, M4, LEX and other programs that run
2188# on the build machine. These are used if the Makefile can't locate these
2189# programs in objdir.
2190MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
2191
2192AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
2193case " $build_configdirs " in
2194 *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
2195 *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;;
2196esac
2197
2198AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
2199case " $build_configdirs " in
2200 *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
2201esac
2202
2203AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
2204case " $build_configdirs " in
2205 *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
2206esac
2207
2208AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
2209case " $build_configdirs " in
2210 *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2211 *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
2212esac
2213
2214AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
2215case " $build_configdirs " in
2216 *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
2217esac
2218
2219AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
2220case " $build_configdirs " in
2221 *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
2222 *)
2223changequote(,)
2224 # For an installed makeinfo, we require it to be from texinfo 4.2 or
2225 # higher, else we use the "missing" dummy.
2226 if ${MAKEINFO} --version \
2227 | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-9]|[5-9])' >/dev/null 2>&1; then
2228 :
2229 else
2230 MAKEINFO="$MISSING makeinfo"
2231 fi
2232 ;;
2233changequote([,])
2234esac
2235
2236# FIXME: expect and dejagnu may become build tools?
2237
2238AC_CHECK_PROGS(EXPECT, expect, expect)
2239case " $configdirs " in
2240 *" expect "*)
2241 test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
2242 ;;
2243esac
2244
2245AC_CHECK_PROGS(RUNTEST, runtest, runtest)
2246case " $configdirs " in
2247 *" dejagnu "*)
2248 test $host = $build && RUNTEST='$$r/$(HOST_SUBDIR)/dejagnu/runtest'
2249 ;;
2250esac
2251
2252
a0da8069 2253# Host tools.
05cbd757
PB
2254NCN_STRICT_CHECK_TOOLS(AR, ar)
2255NCN_STRICT_CHECK_TOOLS(AS, as)
2256NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
2257NCN_STRICT_CHECK_TOOLS(LD, ld)
be01d343 2258NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
05cbd757
PB
2259NCN_STRICT_CHECK_TOOLS(NM, nm)
2260NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :)
be01d343 2261NCN_STRICT_CHECK_TOOLS(STRIP, strip, :)
05cbd757
PB
2262NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
2263NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
2264NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
a0da8069
NN
2265AC_SUBST(CC)
2266AC_SUBST(CXX)
2267AC_SUBST(CFLAGS)
5fbad20a 2268AC_SUBST(CFLAGS_FOR_BUILD)
a0da8069 2269AC_SUBST(CXXFLAGS)
a0da8069 2270
be01d343 2271# Target tools.
2429c060
PB
2272AC_ARG_WITH([build-time-tools],
2273 [ --with-build-time-tools=path
2274 use given path to find target tools during the build],
2275 [case x"$withval" in
2276 x/*) ;;
2277 *)
2278 with_build_time_tools=
2279 AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
2280 ;;
2281 esac],
2282 [with_build_time_tools=])
2283
05cbd757
PB
2284NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
2285NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
05cbd757
PB
2286NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
2287NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
2288NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
2429c060
PB
2289
2290ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
2291ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
2292ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
2293ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
2294ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
2295ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
2296ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
2297ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :)
2298ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
2299ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
55db4b87 2300
be01d343
PB
2301RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
2302
2303GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
2304GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
2305GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2306GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
2307 [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],
2308 c++)
2309GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
2310 [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],
2311 c++)
2312GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
2313GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
2314GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
2315 [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
2316GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
2317 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
2318GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
2319GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
2320GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
2321GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
2322GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
2323GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip])
2324GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
55db4b87 2325
be01d343 2326AC_SUBST(FLAGS_FOR_TARGET)
55db4b87 2327AC_SUBST(RAW_CXX_FOR_TARGET)
54752a6b 2328
a0da8069
NN
2329# Certain tools may need extra flags.
2330AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
2331RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
2332NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
252b5132 2333
be01d343
PB
2334# When building target libraries, except in a Canadian cross, we use
2335# the same toolchain as the compiler we just built.
2336COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
2337COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
2338COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
2339if test $host = $build; then
2340 case " $configdirs " in
2341 *" gcc "*)
2342 COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
2343 COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
2344 COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
2345 ;;
2346 esac
2347fi
2348
2349AC_SUBST(COMPILER_AS_FOR_TARGET)
2350AC_SUBST(COMPILER_LD_FOR_TARGET)
2351AC_SUBST(COMPILER_NM_FOR_TARGET)
2352
6b784d9f
AO
2353AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
2354AC_ARG_ENABLE(maintainer-mode,
2355[ --enable-maintainer-mode enable make rules and dependencies not useful
2356 (and sometimes confusing) to the casual installer],
2357 USE_MAINTAINER_MODE=$enableval,
2358 USE_MAINTAINER_MODE=no)
2359AC_MSG_RESULT($USE_MAINTAINER_MODE)
2360AC_SUBST(MAINTAINER_MODE_TRUE)
2361AC_SUBST(MAINTAINER_MODE_FALSE)
2362if test "$USE_MAINTAINER_MODE" = yes; then
2363 MAINTAINER_MODE_TRUE=
2364 MAINTAINER_MODE_FALSE='#'
2365else
2366 MAINTAINER_MODE_TRUE='#'
2367 MAINTAINER_MODE_FALSE=
2368fi
2369MAINT=$MAINTAINER_MODE_TRUE
2370AC_SUBST(MAINT)dnl
2371
1d39f329
NN
2372# ---------------------
2373# GCC bootstrap support
2374# ---------------------
2375
2376# Stage specific cflags for build.
2377stage1_cflags="-g"
2378case $build in
2379 vax-*-*)
2380 case ${GCC} in
2381 yes) stage1_cflags="-g -Wa,-J" ;;
2382 *) stage1_cflags="-g -J" ;;
2383 esac ;;
2384 powerpc-*-darwin*)
2385 # The spiffy cpp-precomp chokes on some legitimate constructs in GCC
2386 # sources; use -no-cpp-precomp to get to GNU cpp.
2387 # Apple's GCC has bugs in designated initializer handling, so disable
2388 # that too.
2389 stage1_cflags="-g -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
2390 ;;
2391esac
2392AC_SUBST(stage1_cflags)
2393
2394# Enable -Werror in bootstrap stage2 and later.
2395# Change the default to "no" on release branches.
2396AC_ARG_ENABLE(werror,
2397[ --enable-werror enable -Werror in bootstrap stage2 and later], [],
2398[enable_werror=yes])
1a6f2dc7
NN
2399case ${enable_werror} in
2400 yes) stage2_werror_flag="--enable-werror-always" ;;
2401 *) stage2_werror_flag="" ;;
1d39f329 2402esac
1a6f2dc7 2403AC_SUBST(stage2_werror_flag)
1d39f329 2404
a0da8069 2405AC_OUTPUT(Makefile)
This page took 0.491531 seconds and 4 git commands to generate.