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