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