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