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