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