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