sim: cfi: new flash device simulation
[deliverable/binutils-gdb.git] / configure.ac
... / ...
CommitLineData
1# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
3# Free Software Foundation, Inc.
4#
5# This file is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful, but
11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; see the file COPYING3. If not see
17# <http://www.gnu.org/licenses/>.
18
19##############################################################################
20### WARNING: this file contains embedded tabs. Do not run untabify on this file.
21
22m4_include(config/acx.m4)
23m4_include(config/override.m4)
24m4_include(config/proginstall.m4)
25m4_include(config/elf.m4)
26m4_include([libtool.m4])
27m4_include([ltoptions.m4])
28m4_include([ltsugar.m4])
29m4_include([ltversion.m4])
30m4_include([lt~obsolete.m4])
31m4_include([config/cloog.m4])
32
33AC_INIT(move-if-change)
34AC_PREREQ(2.64)
35AC_DISABLE_OPTION_CHECKING
36
37progname=$0
38# if PWD already has a value, it is probably wrong.
39if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
40
41# Export original configure arguments for use by sub-configures.
42# Quote arguments with shell meta charatcers.
43TOPLEVEL_CONFIGURE_ARGUMENTS=
44set -- "$progname" "$@"
45for ac_arg
46do
47 case "$ac_arg" in
48 *" "*|*" "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
49 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
50 # if the argument is of the form -foo=baz, quote the baz part only
51 ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
52 *) ;;
53 esac
54 # Add the quoted argument to the list.
55 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
56done
57if test "$silent" = yes; then
58 TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
59fi
60# Remove the initial space we just introduced and, as these will be
61# expanded by make, quote '$'.
62TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
63AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
64
65# Find the build, host, and target systems.
66ACX_NONCANONICAL_BUILD
67ACX_NONCANONICAL_HOST
68ACX_NONCANONICAL_TARGET
69
70dnl Autoconf 2.5x and later will set a default program prefix if
71dnl --target was used, even if it was the same as --host. Disable
72dnl that behavior. This must be done before AC_CANONICAL_SYSTEM
73dnl to take effect.
74test "$host_noncanonical" = "$target_noncanonical" &&
75 test "$program_prefix$program_suffix$program_transform_name" = \
76 NONENONEs,x,x, &&
77 program_transform_name=s,y,y,
78
79AC_CANONICAL_SYSTEM
80AC_ARG_PROGRAM
81
82m4_pattern_allow([^AS_FOR_TARGET$])dnl
83m4_pattern_allow([^AS_FOR_BUILD$])dnl
84
85# Get 'install' or 'install-sh' and its variants.
86AC_PROG_INSTALL
87ACX_PROG_LN
88AC_PROG_LN_S
89AC_PROG_SED
90AC_PROG_AWK
91
92### we might need to use some other shell than /bin/sh for running subshells
93### If we are on Windows, search for the shell. This will permit people
94### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure
95### without also having to set CONFIG_SHELL. This code will work when
96### using bash, which sets OSTYPE.
97case "${OSTYPE}" in
98*win32*)
99 if test x${CONFIG_SHELL} = x ; then
100 if test ! -f /bin/sh ; then
101 if test x${SHELL} != x && test -f ${SHELL} ; then
102 CONFIG_SHELL=${SHELL}
103 export CONFIG_SHELL
104 else
105 for prog in sh sh.exe bash bash.exe; do
106 IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
107 for dir in $PATH; do
108 test -z "$dir" && dir=.
109 if test -f $dir/$prog; then
110 CONFIG_SHELL=$dir/$prog
111 export CONFIG_SHELL
112 break
113 fi
114 done
115 IFS="$save_ifs"
116 test -n "${CONFIG_SHELL}" && break
117 done
118 fi
119 fi
120 fi
121 ;;
122esac
123
124config_shell=${CONFIG_SHELL-/bin/sh}
125
126moveifchange=${srcdir}/move-if-change
127
128srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
129
130# We pass INSTALL explicitly to sub-makes. Make sure that it is not
131# a relative path.
132if test "$INSTALL" = "${srcdir}/install-sh -c"; then
133 INSTALL="${srcpwd}/install-sh -c"
134fi
135
136# Set srcdir to "." if that's what it is.
137# This is important for multilib support.
138pwd=`${PWDCMD-pwd}`
139if test "${pwd}" = "${srcpwd}" ; then
140 srcdir=.
141fi
142
143topsrcdir=$srcpwd
144
145extra_host_args=
146
147### To add a new directory to the tree, first choose whether it is a target
148### or a host dependent tool. Then put it into the appropriate list
149### (library or tools, host or target), doing a dependency sort.
150
151# Subdirs will be configured in the order listed in build_configdirs,
152# configdirs, or target_configdirs; see the serialization section below.
153
154# Dependency sorting is only needed when *configuration* must be done in
155# a particular order. In all cases a dependency should be specified in
156# the Makefile, whether or not it's implicitly specified here.
157
158# Double entries in build_configdirs, configdirs, or target_configdirs may
159# cause circular dependencies and break everything horribly.
160
161# these library is used by various programs built for the build
162# environment
163#
164build_libs="build-libiberty"
165
166# these tools are built for the build environment
167build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes"
168
169# these libraries are used by various programs built for the host environment
170#
171host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc ppl cloog libelf libiconv"
172
173# these tools are built for the host environment
174# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
175# know that we are building the simulator.
176# binutils, gas and ld appear in that order because it makes sense to run
177# "make check" in that particular order.
178# If --enable-gold is used, "gold" may replace "ld".
179host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc cgen 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"
180
181# libgcj represents the runtime libraries only used by gcj.
182libgcj="target-libffi \
183 target-zlib \
184 target-qthreads \
185 target-libjava"
186
187# these libraries are built for the target environment, and are built after
188# the host libraries and the host tools (which may be a cross compiler)
189#
190target_libraries="target-libgcc \
191 target-libiberty \
192 target-libgloss \
193 target-newlib \
194 target-libgomp \
195 target-libstdc++-v3 \
196 target-libmudflap \
197 target-libssp \
198 target-libquadmath \
199 target-libgfortran \
200 target-boehm-gc \
201 ${libgcj} \
202 target-libobjc \
203 target-libada \
204 target-libgo"
205
206# these tools are built using the target libraries, and are intended to
207# run only in the target environment
208#
209# note: any program that *uses* libraries that are in the "target_libraries"
210# list belongs in this list.
211#
212target_tools="target-examples target-gperf target-rda"
213
214################################################################################
215
216## All tools belong in one of the four categories, and are assigned above
217## We assign ${configdirs} this way to remove all embedded newlines. This
218## is important because configure will choke if they ever get through.
219## ${configdirs} is directories we build using the host tools.
220## ${target_configdirs} is directories we build using the target tools.
221configdirs=`echo ${host_libs} ${host_tools}`
222target_configdirs=`echo ${target_libraries} ${target_tools}`
223build_configdirs=`echo ${build_libs} ${build_tools}`
224
225m4_divert_text([PARSE_ARGS],
226[case $srcdir in
227 *" "*)
228m4_pushdef([AS_MESSAGE_LOG_FD], [])dnl
229 AC_MSG_ERROR([path to source, $srcdir, contains spaces])
230m4_popdef([AS_MESSAGE_LOG_FD])dnl
231 ;;
232esac
233ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
234])
235
236################################################################################
237
238srcname="gnu development package"
239
240# This gets set non-empty for some net releases of packages.
241appdirs=""
242
243# Define is_cross_compiler to save on calls to 'test'.
244is_cross_compiler=
245if test x"${host}" = x"${target}" ; then
246 is_cross_compiler=no
247else
248 is_cross_compiler=yes
249fi
250
251# Find the build and target subdir names.
252GCC_TOPLEV_SUBDIRS
253# Be sure to cover against remnants of an in-tree build.
254if test $srcdir != . && test -d $srcdir/host-${host_noncanonical}; then
255 AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
256Use a pristine source tree when building in a separate tree])
257fi
258
259# Skipdirs are removed silently.
260skipdirs=
261# Noconfigdirs are removed loudly.
262noconfigdirs=""
263
264use_gnu_ld=
265# Make sure we don't let GNU ld be added if we didn't want it.
266if test x$with_gnu_ld = xno ; then
267 use_gnu_ld=no
268 noconfigdirs="$noconfigdirs ld gold"
269fi
270
271use_gnu_as=
272# Make sure we don't let GNU as be added if we didn't want it.
273if test x$with_gnu_as = xno ; then
274 use_gnu_as=no
275 noconfigdirs="$noconfigdirs gas"
276fi
277
278use_included_zlib=
279# Make sure we don't let ZLIB be added if we didn't want it.
280if test x$with_system_zlib = xyes ; then
281 use_included_zlib=no
282 noconfigdirs="$noconfigdirs zlib"
283fi
284
285# some tools are so dependent upon X11 that if we're not building with X,
286# it's not even worth trying to configure, much less build, that tool.
287
288case ${with_x} in
289 yes | "") ;; # the default value for this tree is that X11 is available
290 no)
291 skipdirs="${skipdirs} tk itcl libgui"
292 # We won't be able to build gdbtk without X.
293 enable_gdbtk=no
294 ;;
295 *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
296esac
297
298# Some are only suitable for cross toolchains.
299# Remove these if host=target.
300cross_only="target-libgloss target-newlib target-opcodes"
301
302case $is_cross_compiler in
303 no) skipdirs="${skipdirs} ${cross_only}" ;;
304esac
305
306# If both --with-headers and --with-libs are specified, default to
307# --without-newlib.
308if test x"${with_headers}" != x && test x"${with_headers}" != xno \
309 && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
310 if test x"${with_newlib}" = x ; then
311 with_newlib=no
312 fi
313fi
314
315# Recognize --with-newlib/--without-newlib.
316case ${with_newlib} in
317 no) skipdirs="${skipdirs} target-newlib" ;;
318 yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
319esac
320
321# Handle --enable-gold, --enable-ld.
322# --disable-gold [--enable-ld]
323# Build only ld. Default option.
324# --enable-gold [--enable-ld]
325# Build both gold and ld. Install gold as "ld.gold", install ld
326# as "ld.bfd" and "ld".
327# --enable-gold=default [--enable-ld]
328# Build both gold and ld. Install gold as "ld.gold" and "ld",
329# install ld as "ld.bfd".
330# --enable-gold[=default] --disable-ld
331# Build only gold, which is then installed as both "ld.gold" and "ld".
332# --enable-gold --enable-ld=default
333# Build both gold (installed as "ld.gold") and ld (installed as "ld"
334# and ld.bfd).
335# In other words, ld is default
336# --enable-gold=default --enable-ld=default
337# Error.
338
339default_ld=
340AC_ARG_ENABLE(gold,
341[AS_HELP_STRING([[--enable-gold[=ARG]]],
342 [build gold @<:@ARG={default,yes,no}@:>@])],
343ENABLE_GOLD=$enableval,
344ENABLE_GOLD=no)
345case "${ENABLE_GOLD}" in
346 yes|default)
347 # Check for ELF target.
348 is_elf=no
349 case "${target}" in
350 *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
351 | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
352 | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
353 | *-*-solaris2* | *-*-nto*)
354 case "${target}" in
355 *-*-linux*aout* | *-*-linux*oldld*)
356 ;;
357 *)
358 is_elf=yes
359 ;;
360 esac
361 esac
362
363 if test "$is_elf" = "yes"; then
364 # Check for target supported by gold.
365 case "${target}" in
366 i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
367 configdirs="$configdirs gold"
368 if test x${ENABLE_GOLD} = xdefault; then
369 default_ld=gold
370 fi
371 ENABLE_GOLD=yes
372 ;;
373 esac
374 fi
375 ;;
376 no)
377 ;;
378 *)
379 AC_MSG_ERROR([invalid --enable-gold argument])
380 ;;
381esac
382
383AC_ARG_ENABLE(ld,
384[AS_HELP_STRING([[--enable-ld[=ARG]]],
385 [build ld @<:@ARG={default,yes,no}@:>@])],
386ENABLE_LD=$enableval,
387ENABLE_LD=yes)
388
389case "${ENABLE_LD}" in
390 default)
391 if test x${default_ld} != x; then
392 AC_MSG_ERROR([either gold or ld can be the default ld])
393 fi
394 ;;
395 yes)
396 ;;
397 no)
398 if test x${ENABLE_GOLD} != xyes; then
399 AC_MSG_WARN([neither ld nor gold are enabled])
400 fi
401 configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'`
402 ;;
403 *)
404 AC_MSG_ERROR([invalid --enable-ld argument])
405 ;;
406esac
407
408# Configure extra directories which are host specific
409
410case "${host}" in
411 *-cygwin*)
412 configdirs="$configdirs libtermcap" ;;
413esac
414
415# A target can indicate whether a language isn't supported for some reason.
416# Only spaces may be used in this macro; not newlines or tabs.
417unsupported_languages=
418
419# Remove more programs from consideration, based on the host or
420# target this usually means that a port of the program doesn't
421# exist yet.
422
423case "${host}" in
424 i[[3456789]]86-*-msdosdjgpp*)
425 noconfigdirs="$noconfigdirs tcl tk itcl"
426 ;;
427esac
428
429
430AC_ARG_ENABLE(libquadmath,
431AS_HELP_STRING([--disable-libquadmath],
432 [do not build libquadmath directory]),
433ENABLE_LIBQUADMATH=$enableval,
434ENABLE_LIBQUADMATH=yes)
435if test "${ENABLE_LIBQUADMATH}" = "no" ; then
436 noconfigdirs="$noconfigdirs target-libquadmath"
437fi
438
439
440AC_ARG_ENABLE(libquadmath-support,
441AS_HELP_STRING([--disable-libquadmath-support],
442 [disable libquadmath support for Fortran]),
443ENABLE_LIBQUADMATH_SUPPORT=$enableval,
444ENABLE_LIBQUADMATH_SUPPORT=yes)
445enable_libquadmath_support=
446if test "${ENABLE_LIBQUADMATH_SUPPORT}" = "no" ; then
447 enable_libquadmath_support=no
448fi
449
450
451AC_ARG_ENABLE(libada,
452[AS_HELP_STRING([--enable-libada], [build libada directory])],
453ENABLE_LIBADA=$enableval,
454ENABLE_LIBADA=yes)
455if test "${ENABLE_LIBADA}" != "yes" ; then
456 noconfigdirs="$noconfigdirs gnattools"
457fi
458
459AC_ARG_ENABLE(libssp,
460[AS_HELP_STRING([--enable-libssp], [build libssp directory])],
461ENABLE_LIBSSP=$enableval,
462ENABLE_LIBSSP=yes)
463
464# Save it here so that, even in case of --enable-libgcj, if the Java
465# front-end isn't enabled, we still get libgcj disabled.
466libgcj_saved=$libgcj
467case $enable_libgcj in
468yes)
469 # If we reset it here, it won't get added to noconfigdirs in the
470 # target-specific build rules, so it will be forcibly enabled
471 # (unless the Java language itself isn't enabled).
472 libgcj=
473 ;;
474no)
475 # Make sure we get it printed in the list of not supported target libs.
476 # Don't disable libffi, though, other languages use it.
477 noconfigdirs="$noconfigdirs `echo ${libgcj} | sed -e 's/target-libffi//'`"
478 # Clear libgcj_saved so that even if java is enabled libffi won't be
479 # built.
480 libgcj_saved=
481 ;;
482esac
483
484
485# Disable libmudflap on some systems.
486if test x$enable_libmudflap = x ; then
487 case "${target}" in
488 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux* | *-*-kopensolaris*-gnu)
489 # Enable libmudflap by default in GNU and friends.
490 ;;
491 *-*-freebsd*)
492 # Enable libmudflap by default in FreeBSD.
493 ;;
494 *)
495 # Disable it by default everywhere else.
496 noconfigdirs="$noconfigdirs target-libmudflap"
497 ;;
498 esac
499fi
500
501# Disable libgomp on non POSIX hosted systems.
502if test x$enable_libgomp = x ; then
503 # Enable libgomp by default on hosted POSIX systems.
504 case "${target}" in
505 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
506 ;;
507 *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
508 ;;
509 *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11*)
510 ;;
511 *-*-darwin* | *-*-aix*)
512 ;;
513 *)
514 noconfigdirs="$noconfigdirs target-libgomp"
515 ;;
516 esac
517fi
518
519# Default libgloss CPU subdirectory.
520libgloss_dir="$target_cpu"
521
522case "${target}" in
523 *-*-chorusos)
524 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
525 ;;
526 powerpc-*-darwin*)
527 noconfigdirs="$noconfigdirs ld gas gdb gprof"
528 noconfigdirs="$noconfigdirs sim target-rda"
529 ;;
530 i[[3456789]]86-*-darwin*)
531 noconfigdirs="$noconfigdirs ld gprof"
532 noconfigdirs="$noconfigdirs sim target-rda"
533 ;;
534 x86_64-*-darwin[[912]]*)
535 noconfigdirs="$noconfigdirs ld gas gprof"
536 noconfigdirs="$noconfigdirs sim target-rda"
537 ;;
538 *-*-darwin*)
539 noconfigdirs="$noconfigdirs ld gas gdb gprof"
540 noconfigdirs="$noconfigdirs sim target-rda"
541 noconfigdirs="$noconfigdirs ${libgcj}"
542 ;;
543 *-*-dragonfly*)
544 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
545 ;;
546 *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
547 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
548 ;;
549 *-*-freebsd*)
550 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
551 if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
552 && test -f /usr/local/include/gmp.h; then
553 with_gmp=/usr/local
554 fi
555
556 # Skip some stuff that's unsupported on some FreeBSD configurations.
557 case "${target}" in
558 i*86-*-*) ;;
559 alpha*-*-*) ;;
560 x86_64-*-*) ;;
561 *)
562 noconfigdirs="$noconfigdirs ${libgcj}"
563 ;;
564 esac
565 ;;
566 *-*-kaos*)
567 # Remove unsupported stuff on all kaOS configurations.
568 skipdirs="target-libiberty ${libgcj} target-libstdc++-v3"
569 skipdirs="$skipdirs target-libobjc"
570 skipdirs="$skipdirs zlib fastjar target-libjava target-boehm-gc target-zlib"
571 noconfigdirs="$noconfigdirs target-libgloss"
572 ;;
573 *-*-netbsd*)
574 # Skip some stuff on all NetBSD configurations.
575 noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss"
576
577 # Skip some stuff that's unsupported on some NetBSD configurations.
578 case "${target}" in
579 i*86-*-netbsdelf*) ;;
580 arm*-*-netbsdelf*) ;;
581 *)
582 noconfigdirs="$noconfigdirs ${libgcj}"
583 ;;
584 esac
585 ;;
586 *-*-netware*)
587 noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj}"
588 ;;
589 *-*-rtems*)
590 skipdirs="${skipdirs} target-libiberty"
591 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
592 ;;
593 # The tpf target doesn't support gdb yet.
594 *-*-tpf*)
595 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} gdb tcl tk libgui itcl"
596 ;;
597 *-*-uclinux*)
598 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
599 ;;
600 *-*-vxworks*)
601 noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}"
602 ;;
603 alpha*-dec-osf*)
604 # ld works, but does not support shared libraries.
605 # newlib is not 64 bit ready.
606 # gas doesn't generate exception information.
607 noconfigdirs="$noconfigdirs gas ld target-newlib target-libgloss"
608 ;;
609 alpha*-*-*vms*)
610 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
611 ;;
612 alpha*-*-linux*)
613 # newlib is not 64 bit ready
614 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
615 ;;
616 alpha*-*-*)
617 # newlib is not 64 bit ready
618 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
619 ;;
620 am33_2.0-*-linux*)
621 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
622 ;;
623 sh-*-linux*)
624 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
625 ;;
626 sh*-*-pe|mips*-*-pe|*arm-wince-pe)
627 noconfigdirs="$noconfigdirs ${libgcj}"
628 noconfigdirs="$noconfigdirs target-libiberty"
629 noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
630 # the C++ libraries don't build on top of CE's C libraries
631 noconfigdirs="$noconfigdirs target-libstdc++-v3"
632 noconfigdirs="$noconfigdirs target-newlib"
633 libgloss_dir=wince
634 ;;
635 arc-*-*)
636 noconfigdirs="$noconfigdirs target-libgloss"
637 ;;
638 arm-*-coff)
639 noconfigdirs="$noconfigdirs ${libgcj}"
640 libgloss_dir=arm
641 ;;
642 arm-*-elf* | arm*-*-eabi* )
643 noconfigdirs="$noconfigdirs target-libffi"
644 libgloss_dir=arm
645 ;;
646 arm*-*-linux-gnueabi)
647 noconfigdirs="$noconfigdirs"
648 case ${with_newlib} in
649 no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
650 esac
651 libgloss_dir=arm
652 ;;
653 arm*-*-symbianelf*)
654 noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"
655 libgloss_dir=arm
656 ;;
657 arm-*-pe*)
658 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
659 ;;
660 arm-*-riscix*)
661 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
662 ;;
663 avr-*-*)
664 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj} target-libssp"
665 ;;
666 bfin-*-*)
667 unsupported_languages="$unsupported_languages java"
668 noconfigdirs="$noconfigdirs target-boehm-gc"
669 if test x${is_cross_compiler} != xno ; then
670 target_configdirs="${target_configdirs} target-bsp target-cygmon"
671 fi
672 ;;
673 c4x-*-* | tic4x-*-*)
674 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
675 ;;
676 c54x*-*-* | tic54x-*-*)
677 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb"
678 ;;
679 cr16-*-*)
680 noconfigdirs="$noconfigdirs ${libgcj} gdb"
681 ;;
682 cris-*-* | crisv32-*-*)
683 unsupported_languages="$unsupported_languages java"
684 case "${target}" in
685 *-*-aout)
686 unsupported_languages="$unsupported_languages fortran"
687 noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
688 *-*-elf) # See PR46792 regarding target-libffi.
689 noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
690 *-*-linux*)
691 noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
692 *)
693 unsupported_languages="$unsupported_languages fortran"
694 noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";;
695 esac
696 libgloss_dir=cris
697 ;;
698 d10v-*-*)
699 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
700 ;;
701 d30v-*-*)
702 noconfigdirs="$noconfigdirs ${libgcj} gdb"
703 ;;
704 fr30-*-elf*)
705 noconfigdirs="$noconfigdirs ${libgcj} gdb"
706 ;;
707 frv-*-*)
708 noconfigdirs="$noconfigdirs ${libgcj}"
709 ;;
710 moxie-*-*)
711 noconfigdirs="$noconfigdirs ${libgcj}"
712 noconfigdirs="$noconfigdirs gprof"
713 ;;
714 h8300*-*-*)
715 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
716 ;;
717 h8500-*-*)
718 noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
719 ;;
720 hppa1.1-*-osf* | hppa1.1-*-bsd* )
721 ;;
722 hppa*64*-*-linux*)
723 # In this case, it's because the hppa64-linux target is for
724 # the kernel only at this point and has no libc, and thus no
725 # headers, crt*.o, etc., all of which are needed by these.
726 noconfigdirs="$noconfigdirs target-zlib"
727 ;;
728 hppa*-*-linux*)
729 ;;
730 hppa*-*-*elf* | \
731 hppa*-*-lites* | \
732 hppa*-*-openbsd* | \
733 hppa*64*-*-*)
734 noconfigdirs="$noconfigdirs ${libgcj}"
735 ;;
736 hppa*-hp-hpux11*)
737 noconfigdirs="$noconfigdirs ld"
738 ;;
739 hppa*-*-pro*)
740 libgloss_dir=pa
741 ;;
742 hppa*-*-*)
743 # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
744 # build on HP-UX 10.20.
745 noconfigdirs="$noconfigdirs ld ${libgcj}"
746 ;;
747 i960-*-*)
748 noconfigdirs="$noconfigdirs ${libgcj} gdb"
749 ;;
750 ia64*-*-elf*)
751 # No gdb support yet.
752 noconfigdirs="$noconfigdirs readline libgui itcl gdb"
753 ;;
754 ia64*-**-hpux*)
755 # No ld support yet.
756 noconfigdirs="$noconfigdirs ${libgcj} libgui itcl ld"
757 ;;
758 ia64*-*-*vms*)
759 # No gdb or ld support yet.
760 noconfigdirs="$noconfigdirs ${libgcj} readline libgui itcl gdb ld"
761 ;;
762 i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
763 noconfigdirs="$noconfigdirs ${libgcj}"
764 libgloss_dir=i386
765 ;;
766 i[[3456789]]86-*-linux*)
767 # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's
768 # not build java stuff by default.
769 case "${target}" in
770 *-*-*libc1*)
771 noconfigdirs="$noconfigdirs ${libgcj}";;
772 esac
773
774 # This section makes it possible to build newlib natively on linux.
775 # If we are using a cross compiler then don't configure newlib.
776 if test x${is_cross_compiler} != xno ; then
777 noconfigdirs="$noconfigdirs target-newlib"
778 fi
779 noconfigdirs="$noconfigdirs target-libgloss"
780 # If we are not using a cross compiler, do configure newlib.
781 # Note however, that newlib will only be configured in this situation
782 # if the --with-newlib option has been given, because otherwise
783 # 'target-newlib' will appear in skipdirs.
784 ;;
785 i[[3456789]]86-w64-mingw*)
786 noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}"
787 ;;
788 i[[3456789]]86-*-mingw*)
789 target_configdirs="$target_configdirs target-winsup"
790 noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}"
791 ;;
792 x86_64-*-mingw*)
793 noconfigdirs="$noconfigdirs target-libgloss target-newlib ${libgcj}"
794 ;;
795 *-*-cygwin*)
796 target_configdirs="$target_configdirs target-libtermcap target-winsup"
797 noconfigdirs="$noconfigdirs target-libgloss"
798 # always build newlib if winsup directory is present.
799 if test -d "$srcdir/winsup/cygwin"; then
800 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
801 elif test -d "$srcdir/newlib"; then
802 echo "Warning: winsup/cygwin is missing so newlib can't be built."
803 fi
804 ;;
805 i[[3456789]]86-*-interix* )
806 ;;
807 i[[3456789]]86-*-pe)
808 noconfigdirs="$noconfigdirs target-libgloss"
809 ;;
810 i[[3456789]]86-*-sco3.2v5*)
811 # The linker does not yet know about weak symbols in COFF,
812 # and is not configured to handle mixed ELF and COFF.
813 noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}"
814 ;;
815 i[[3456789]]86-*-sco*)
816 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
817 ;;
818 i[[3456789]]86-*-solaris2*)
819 noconfigdirs="$noconfigdirs target-libgloss"
820 ;;
821 i[[3456789]]86-*-sysv4*)
822 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
823 ;;
824 i[[3456789]]86-*-beos*)
825 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
826 ;;
827 i[[3456789]]86-*-rdos*)
828 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
829 ;;
830 m32r-*-*)
831 noconfigdirs="$noconfigdirs ${libgcj}"
832 ;;
833 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
834 noconfigdirs="$noconfigdirs target-libiberty"
835 libgloss_dir=m68hc11
836 ;;
837 m68k-*-elf*)
838 noconfigdirs="$noconfigdirs ${libgcj}"
839 ;;
840 m68k-*-coff*)
841 noconfigdirs="$noconfigdirs ${libgcj}"
842 ;;
843 m68*-*-* | fido-*-*)
844 libgloss_dir=m68k
845 ;;
846 mmix-*-*)
847 noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb libgloss"
848 unsupported_languages="$unsupported_languages fortran java"
849 ;;
850 mn10200-*-*)
851 noconfigdirs="$noconfigdirs ${libgcj}"
852 ;;
853 mn10300-*-*)
854 noconfigdirs="$noconfigdirs ${libgcj}"
855 ;;
856 mt-*-*)
857 noconfigdirs="$noconfigdirs sim"
858 ;;
859 picochip-*-*)
860 noconfigdirs="$noconfigdirs target-libiberty"
861 ;;
862 powerpc-*-aix*)
863 # copied from rs6000-*-* entry
864 noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-newlib ${libgcj}"
865 ;;
866 powerpc*-*-winnt* | powerpc*-*-pe*)
867 target_configdirs="$target_configdirs target-winsup"
868 noconfigdirs="$noconfigdirs gdb tcl tk target-libgloss itcl ${libgcj}"
869 # always build newlib.
870 skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
871 ;;
872 # This is temporary until we can link against shared libraries
873 powerpcle-*-solaris*)
874 noconfigdirs="$noconfigdirs gdb sim tcl tk itcl ${libgcj}"
875 libgloss_dir=rs6000
876 ;;
877 powerpc-*-beos*)
878 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}"
879 ;;
880 powerpc-*-eabi)
881 noconfigdirs="$noconfigdirs ${libgcj}"
882 libgloss_dir=rs6000
883 ;;
884 powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
885 libgloss_dir=rs6000
886 ;;
887 rs6000-*-lynxos*)
888 noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
889 ;;
890 rs6000-*-aix*)
891 noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp target-newlib ${libgcj}"
892 ;;
893 rs6000-*-*)
894 noconfigdirs="$noconfigdirs gprof ${libgcj}"
895 ;;
896 m68k-apollo-*)
897 noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}"
898 ;;
899 microblaze*)
900 noconfigdirs="$noconfigdirs gprof target-libssp ${libgcj}"
901 ;;
902 mips*-sde-elf*)
903 skipdirs="$skipdirs target-libiberty"
904 noconfigdirs="$noconfigdirs ${libgcj}"
905 if test x$with_newlib = xyes; then
906 noconfigdirs="$noconfigdirs gprof"
907 fi
908 libgloss_dir=mips
909 ;;
910 mips*-*-irix5*)
911 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
912 ;;
913 mips*-*-irix6*)
914 # Linking libjava exceeds command-line length limits on at least
915 # IRIX 6.2, but not on IRIX 6.5.
916 # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham
917 # <oldham@codesourcery.com>
918 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
919 ;;
920 mips*-*-bsd*)
921 noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
922 ;;
923 mips*-*-linux*)
924 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
925 ;;
926 mips*-*-*)
927 noconfigdirs="$noconfigdirs gprof ${libgcj}"
928 libgloss_dir=mips
929 ;;
930 romp-*-*)
931 noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
932 ;;
933 sh-*-* | sh64-*-*)
934 case "${target}" in
935 sh*-*-elf)
936 noconfigdirs="$noconfigdirs ${libgcj}" ;;
937 *)
938 noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;;
939 esac
940 ;;
941 sparclet-*-aout* | sparc86x-*-*)
942 libgloss_dir=sparc
943 ;;
944 sparc-*-elf*)
945 noconfigdirs="$noconfigdirs ${libgcj}"
946 ;;
947 sparc64-*-elf*)
948 noconfigdirs="$noconfigdirs ${libgcj}"
949 libgloss_dir=sparc
950 ;;
951 sparclite-*-*)
952 noconfigdirs="$noconfigdirs ${libgcj}"
953 libgloss_dir=sparc
954 ;;
955 sparc-*-sunos4*)
956 noconfigdirs="$noconfigdirs ${libgcj}"
957 if test x${is_cross_compiler} != xno ; then
958 noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
959 else
960 use_gnu_ld=no
961 fi
962 ;;
963 sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
964 noconfigdirs="$noconfigdirs ${libgcj}"
965 ;;
966 sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
967 ;;
968 tic6x-*-*)
969 noconfigdirs="$noconfigdirs gdb sim ${libgcj}"
970 ;;
971 v810-*-*)
972 noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libstdc++-v3 opcodes target-libgloss ${libgcj}"
973 ;;
974 v850*-*-*)
975 noconfigdirs="$noconfigdirs ${libgcj}"
976 ;;
977 vax-*-vms)
978 noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}"
979 ;;
980 vax-*-*)
981 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
982 ;;
983 xtensa*-*-*)
984 noconfigdirs="$noconfigdirs ${libgcj}"
985 ;;
986 ip2k-*-*)
987 noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}"
988 ;;
989 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
990 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
991 ;;
992 *-*-lynxos*)
993 noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}"
994 ;;
995 *-*-*)
996 noconfigdirs="$noconfigdirs ${libgcj}"
997 ;;
998esac
999
1000# If we aren't building newlib, then don't build libgloss, since libgloss
1001# depends upon some newlib header files.
1002case "${noconfigdirs}" in
1003 *target-libgloss*) ;;
1004 *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
1005esac
1006
1007# Work in distributions that contain no compiler tools, like Autoconf.
1008host_makefile_frag=/dev/null
1009if test -d ${srcdir}/config ; then
1010case "${host}" in
1011 i[[3456789]]86-*-msdosdjgpp*)
1012 host_makefile_frag="config/mh-djgpp"
1013 ;;
1014 *-cygwin*)
1015 ACX_CHECK_CYGWIN_CAT_WORKS
1016 host_makefile_frag="config/mh-cygwin"
1017 ;;
1018 *-mingw*)
1019 host_makefile_frag="config/mh-mingw"
1020 ;;
1021 *-interix*)
1022 host_makefile_frag="config/mh-interix"
1023 ;;
1024 hppa*-hp-hpux10*)
1025 host_makefile_frag="config/mh-pa-hpux10"
1026 ;;
1027 hppa*-hp-hpux*)
1028 host_makefile_frag="config/mh-pa"
1029 ;;
1030 hppa*-*)
1031 host_makefile_frag="config/mh-pa"
1032 ;;
1033 *-*-darwin*)
1034 host_makefile_frag="config/mh-darwin"
1035 ;;
1036 powerpc-*-aix*)
1037 host_makefile_frag="config/mh-ppc-aix"
1038 ;;
1039 rs6000-*-aix*)
1040 host_makefile_frag="config/mh-ppc-aix"
1041 ;;
1042esac
1043fi
1044
1045if test "${build}" != "${host}" ; then
1046 AR_FOR_BUILD=${AR_FOR_BUILD-ar}
1047 AS_FOR_BUILD=${AS_FOR_BUILD-as}
1048 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1049 CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
1050 GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
1051 GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1052 GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
1053 DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
1054 LD_FOR_BUILD=${LD_FOR_BUILD-ld}
1055 NM_FOR_BUILD=${NM_FOR_BUILD-nm}
1056 RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
1057 WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
1058 WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
1059else
1060 AR_FOR_BUILD="\$(AR)"
1061 AS_FOR_BUILD="\$(AS)"
1062 CC_FOR_BUILD="\$(CC)"
1063 CXX_FOR_BUILD="\$(CXX)"
1064 GCJ_FOR_BUILD="\$(GCJ)"
1065 GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1066 GOC_FOR_BUILD="\$(GOC)"
1067 DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
1068 LD_FOR_BUILD="\$(LD)"
1069 NM_FOR_BUILD="\$(NM)"
1070 RANLIB_FOR_BUILD="\$(RANLIB)"
1071 WINDRES_FOR_BUILD="\$(WINDRES)"
1072 WINDMC_FOR_BUILD="\$(WINDMC)"
1073fi
1074
1075AC_PROG_CC
1076AC_PROG_CXX
1077
1078# We must set the default linker to the linker used by gcc for the correct
1079# operation of libtool. If LD is not defined and we are using gcc, try to
1080# set the LD default to the ld used by gcc.
1081if test -z "$LD"; then
1082 if test "$GCC" = yes; then
1083 case $build in
1084 *-*-mingw*)
1085 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
1086 *)
1087 gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
1088 esac
1089 case $gcc_prog_ld in
1090 # Accept absolute paths.
1091 [[\\/]* | [A-Za-z]:[\\/]*)]
1092 LD="$gcc_prog_ld" ;;
1093 esac
1094 fi
1095fi
1096
1097ACX_PROG_GNAT
1098ACX_PROG_CMP_IGNORE_INITIAL
1099
1100# See if we are building gcc with C++.
1101AC_ARG_ENABLE(build-with-cxx,
1102[AS_HELP_STRING([--enable-build-with-cxx],
1103 [build with C++ compiler instead of C compiler])],
1104ENABLE_BUILD_WITH_CXX=$enableval,
1105ENABLE_BUILD_WITH_CXX=no)
1106
1107# Used for setting $lt_cv_objdir
1108_LT_CHECK_OBJDIR
1109
1110# Check for GMP, MPFR and MPC
1111gmplibs="-lmpc -lmpfr -lgmp"
1112gmpinc=
1113have_gmp=no
1114
1115# Specify a location for mpc
1116# check for this first so it ends up on the link line before mpfr.
1117AC_ARG_WITH(mpc,
1118[AS_HELP_STRING([--with-mpc=PATH],
1119 [specify prefix directory for installed MPC package.
1120 Equivalent to --with-mpc-include=PATH/include
1121 plus --with-mpc-lib=PATH/lib])])
1122AC_ARG_WITH(mpc-include,
1123[AS_HELP_STRING([--with-mpc-include=PATH],
1124 [specify directory for installed MPC include files])])
1125AC_ARG_WITH(mpc-lib,
1126[AS_HELP_STRING([--with-mpc-lib=PATH],
1127 [specify directory for the installed MPC library])])
1128
1129if test "x$with_mpc" != x; then
1130 gmplibs="-L$with_mpc/lib $gmplibs"
1131 gmpinc="-I$with_mpc/include $gmpinc"
1132fi
1133if test "x$with_mpc_include" != x; then
1134 gmpinc="-I$with_mpc_include $gmpinc"
1135fi
1136if test "x$with_mpc_lib" != x; then
1137 gmplibs="-L$with_mpc_lib $gmplibs"
1138fi
1139if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
1140 gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs"
1141 gmpinc='-I$$s/mpc/src '"$gmpinc"
1142 # Do not test the mpc version. Assume that it is sufficient, since
1143 # it is in the source tree, and the library has not been built yet
1144 # but it would be included on the link line in the version check below
1145 # hence making the test fail.
1146 have_gmp=yes
1147fi
1148
1149# Specify a location for mpfr
1150# check for this first so it ends up on the link line before gmp.
1151AC_ARG_WITH(mpfr-dir,
1152[AS_HELP_STRING([--with-mpfr-dir=PATH], [this option has been REMOVED])],
1153[AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
1154Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH])])
1155
1156AC_ARG_WITH(mpfr,
1157[AS_HELP_STRING([--with-mpfr=PATH],
1158 [specify prefix directory for installed MPFR package.
1159 Equivalent to --with-mpfr-include=PATH/include
1160 plus --with-mpfr-lib=PATH/lib])])
1161AC_ARG_WITH(mpfr-include,
1162[AS_HELP_STRING([--with-mpfr-include=PATH],
1163 [specify directory for installed MPFR include files])])
1164AC_ARG_WITH(mpfr-lib,
1165[AS_HELP_STRING([--with-mpfr-lib=PATH],
1166 [specify directory for the installed MPFR library])])
1167
1168if test "x$with_mpfr" != x; then
1169 gmplibs="-L$with_mpfr/lib $gmplibs"
1170 gmpinc="-I$with_mpfr/include $gmpinc"
1171fi
1172if test "x$with_mpfr_include" != x; then
1173 gmpinc="-I$with_mpfr_include $gmpinc"
1174fi
1175if test "x$with_mpfr_lib" != x; then
1176 gmplibs="-L$with_mpfr_lib $gmplibs"
1177fi
1178if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1179 gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
1180 gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
1181 extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
1182 # Do not test the mpfr version. Assume that it is sufficient, since
1183 # it is in the source tree, and the library has not been built yet
1184 # but it would be included on the link line in the version check below
1185 # hence making the test fail.
1186 have_gmp=yes
1187fi
1188
1189# Specify a location for gmp
1190AC_ARG_WITH(gmp-dir,
1191[AS_HELP_STRING([--with-gmp-dir=PATH], [this option has been REMOVED])],
1192[AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
1193Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH])])
1194
1195AC_ARG_WITH(gmp,
1196[AS_HELP_STRING([--with-gmp=PATH],
1197 [specify prefix directory for the installed GMP package.
1198 Equivalent to --with-gmp-include=PATH/include
1199 plus --with-gmp-lib=PATH/lib])])
1200AC_ARG_WITH(gmp-include,
1201[AS_HELP_STRING([--with-gmp-include=PATH],
1202 [specify directory for installed GMP include files])])
1203AC_ARG_WITH(gmp-lib,
1204[AS_HELP_STRING([--with-gmp-lib=PATH],
1205 [specify directory for the installed GMP library])])
1206
1207
1208if test "x$with_gmp" != x; then
1209 gmplibs="-L$with_gmp/lib $gmplibs"
1210 gmpinc="-I$with_gmp/include $gmpinc"
1211fi
1212if test "x$with_gmp_include" != x; then
1213 gmpinc="-I$with_gmp_include $gmpinc"
1214fi
1215if test "x$with_gmp_lib" != x; then
1216 gmplibs="-L$with_gmp_lib $gmplibs"
1217fi
1218if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1219 gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
1220 gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1221 extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1222 extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1223 # Do not test the gmp version. Assume that it is sufficient, since
1224 # it is in the source tree, and the library has not been built yet
1225 # but it would be included on the link line in the version check below
1226 # hence making the test fail.
1227 have_gmp=yes
1228fi
1229
1230if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
1231 have_gmp=yes
1232 saved_CFLAGS="$CFLAGS"
1233 CFLAGS="$CFLAGS $gmpinc"
1234 # Check for the recommended and required versions of GMP.
1235 AC_MSG_CHECKING([for the correct version of gmp.h])
1236 AC_TRY_COMPILE([#include "gmp.h"],[
1237 #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1238 #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1239 #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,0)
1240 choke me
1241 #endif
1242 ], [AC_TRY_COMPILE([#include <gmp.h>],[
1243 #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
1244 #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1245 #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
1246 choke me
1247 #endif
1248 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1249 [AC_MSG_RESULT([no]); have_gmp=no])
1250
1251 # If we have GMP, check the MPFR version.
1252 if test x"$have_gmp" = xyes; then
1253 # Check for the recommended and required versions of MPFR.
1254 AC_MSG_CHECKING([for the correct version of mpfr.h])
1255 AC_TRY_COMPILE([#include <gmp.h>
1256 #include <mpfr.h>],[
1257 #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1)
1258 choke me
1259 #endif
1260 ], [AC_TRY_COMPILE([#include <gmp.h>
1261 #include <mpfr.h>],[
1262 #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2)
1263 choke me
1264 #endif
1265 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1266 [AC_MSG_RESULT([no]); have_gmp=no])
1267 fi
1268
1269 # Check for the MPC header version.
1270 if test x"$have_gmp" = xyes ; then
1271 # Check for the recommended and required versions of MPC.
1272 AC_MSG_CHECKING([for the correct version of mpc.h])
1273 AC_TRY_COMPILE([#include <mpc.h>],[
1274 #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
1275 choke me
1276 #endif
1277 ], [AC_TRY_COMPILE([#include <mpc.h>],[
1278 #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
1279 choke me
1280 #endif
1281 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1282 [AC_MSG_RESULT([no]); have_gmp=no])
1283 fi
1284
1285 # Now check the MPFR library.
1286 if test x"$have_gmp" = xyes; then
1287 saved_LIBS="$LIBS"
1288 LIBS="$LIBS $gmplibs"
1289 AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries])
1290 AC_TRY_LINK([#include <mpc.h>],[
1291 mpfr_t n;
1292 mpfr_t x;
1293 mpc_t c;
1294 int t;
1295 mpfr_init (n);
1296 mpfr_init (x);
1297 mpfr_atan2 (n, n, x, GMP_RNDN);
1298 mpfr_erfc (n, x, GMP_RNDN);
1299 mpfr_subnormalize (x, t, GMP_RNDN);
1300 mpfr_clear(n);
1301 mpfr_clear(x);
1302 mpc_init2 (c, 53);
1303 mpc_set_ui_ui (c, 1, 1, MPC_RNDNN);
1304 mpc_cosh (c, c, MPC_RNDNN);
1305 mpc_pow (c, c, c, MPC_RNDNN);
1306 mpc_acosh (c, c, MPC_RNDNN);
1307 mpc_clear (c);
1308 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
1309 LIBS="$saved_LIBS"
1310 fi
1311
1312 CFLAGS="$saved_CFLAGS"
1313
1314# The library versions listed in the error message below should match
1315# the HARD-minimums enforced above.
1316 if test x$have_gmp != xyes; then
1317 AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
1318Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
1319their locations. Source code for these libraries can be found at
1320their respective hosting sites as well as at
1321ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
1322http://gcc.gnu.org/install/prerequisites.html for additional info. If
1323you obtained GMP, MPFR and/or MPC from a vendor distribution package,
1324make sure that you have installed both the libraries and the header
1325files. They may be located in separate packages.])
1326 fi
1327fi
1328
1329# Flags needed for both GMP, MPFR and/or MPC.
1330AC_SUBST(gmplibs)
1331AC_SUBST(gmpinc)
1332AC_SUBST(extra_mpfr_configure_flags)
1333AC_SUBST(extra_mpc_gmp_configure_flags)
1334AC_SUBST(extra_mpc_mpfr_configure_flags)
1335
1336# Allow host libstdc++ to be specified for static linking with PPL.
1337AC_ARG_WITH(host-libstdcxx,
1338[AS_HELP_STRING([--with-host-libstdcxx=L],
1339 [use linker arguments L to link with libstdc++
1340 when linking with PPL])])
1341
1342case $with_host_libstdcxx in
1343 no|yes)
1344 AC_MSG_ERROR([-with-host-libstdcxx needs an argument])
1345 ;;
1346esac
1347
1348# Linker flags to use for stage1 or when not boostrapping.
1349AC_ARG_WITH(stage1-ldflags,
1350[AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
1351[if test "$withval" = "no" -o "$withval" = "yes"; then
1352 stage1_ldflags=
1353 else
1354 stage1_ldflags=$withval
1355 fi],
1356[stage1_ldflags=])
1357AC_SUBST(stage1_ldflags)
1358
1359# Libraries to use for stage1 or when not bootstrapping.
1360AC_ARG_WITH(stage1-libs,
1361[AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])],
1362[if test "$withval" = "no" -o "$withval" = "yes"; then
1363 stage1_libs=
1364 else
1365 stage1_libs=$withval
1366 fi],
1367[stage1_libs=$with_host_libstdcxx])
1368AC_SUBST(stage1_libs)
1369
1370# Libraries to use for stage2 and later builds. This defaults to the
1371# argument passed to --with-host-libstdcxx.
1372AC_ARG_WITH(boot-libs,
1373[AS_HELP_STRING([--with-boot-libs=LIBS], [libraries for stage2 and later])],
1374[if test "$withval" = "no" -o "$withval" = "yes"; then
1375 poststage1_libs=
1376 else
1377 poststage1_libs=$withval
1378 fi],
1379[poststage1_libs=$with_host_libstdcxx])
1380AC_SUBST(poststage1_libs)
1381
1382# Linker flags to use for stage2 and later builds.
1383AC_ARG_WITH(boot-ldflags,
1384[AS_HELP_STRING([--with-boot-ldflags=FLAGS],
1385 [linker flags for stage2 and later])],
1386[if test "$withval" = "no" -o "$withval" = "yes"; then
1387 poststage1_ldflags=
1388 else
1389 poststage1_ldflags=$withval
1390 fi],
1391[poststage1_ldflags=
1392 # In stages 2 and 3, default to linking libstdc++ and libgcc
1393 # statically. But if the user explicitly specified the libraries to
1394 # use, trust that they are doing what they want.
1395 if test "$poststage1_libs" = ""; then
1396 poststage1_ldflags="-static-libstdc++ -static-libgcc"
1397 fi])
1398AC_SUBST(poststage1_ldflags)
1399
1400# Check for PPL
1401ppllibs=
1402pplinc=
1403pwllib=
1404
1405AC_ARG_WITH(ppl,
1406[AS_HELP_STRING([--with-ppl=PATH],
1407 [specify prefix directory for the installed PPL package.
1408 Equivalent to --with-ppl-include=PATH/include
1409 plus --with-ppl-lib=PATH/lib])])
1410AC_ARG_WITH(ppl-include,
1411[AS_HELP_STRING([--with-ppl-include=PATH],
1412 [specify directory for installed PPL include files])])
1413AC_ARG_WITH(ppl-lib,
1414[AS_HELP_STRING([--with-ppl-lib=PATH],
1415 [specify directory for the installed PPL library])])
1416
1417AC_ARG_ENABLE(ppl-version-check,
1418[AS_HELP_STRING([--disable-ppl-version-check],
1419 [disable check for PPL version])])
1420
1421case $with_ppl in
1422 yes | no | "")
1423 ;;
1424 *)
1425 ppllibs="-L$with_ppl/lib"
1426 pplinc="-I$with_ppl/include $pplinc"
1427 if test -d "$with_ppl/lib" && test -d "$with_ppl/include"; then
1428 with_ppl=yes
1429 else
1430 AC_MSG_ERROR([cannot find directories "$with_ppl/lib" or "$with_ppl/include"])
1431 fi
1432 ;;
1433esac
1434
1435if test x"$with_ppl_include" != x; then
1436 pplinc="-I$with_ppl_include $pplinc"
1437 with_ppl=yes
1438fi
1439
1440if test "x$with_ppl_lib" != x; then
1441 ppllibs="-L$with_ppl_lib"
1442 with_ppl=yes
1443fi
1444
1445if test x"$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
1446 if test x"$enable_watchdog" = xyes; then
1447 pwllib="-lpwl"
1448 fi
1449 ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"
1450 pplinc='-I$$r/$(HOST_SUBDIR)/ppl/src -I$$r/$(HOST_SUBDIR)/ppl/interfaces/C '
1451 enable_ppl_version_check=no
1452 with_ppl=yes
1453fi
1454
1455if test "x$with_ppl" != xno; then
1456 if test "x$pwllib" = x; then
1457 saved_LIBS="$LIBS"
1458 LIBS="$LIBS $ppllibs -lstdc++ -lm"
1459 AC_CHECK_LIB(pwl, PWL_handle_timeout, [pwllib="-lpwl"])
1460 LIBS="$saved_LIBS"
1461 fi
1462
1463 ppllibs="$ppllibs -lppl_c -lppl $pwllib -lgmpxx"
1464
1465 if test "$enable_ppl_version_check" != no; then
1466 saved_CFLAGS="$CFLAGS"
1467 CFLAGS="$CFLAGS $pplinc $gmpinc"
1468 AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
1469 AC_TRY_COMPILE([#include "ppl_c.h"],[
1470 #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
1471 choke me
1472 #endif
1473 ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
1474 CFLAGS="$saved_CFLAGS"
1475 fi
1476fi
1477
1478# Flags needed for PPL
1479AC_SUBST(ppllibs)
1480AC_SUBST(pplinc)
1481
1482
1483# Check for CLOOG
1484
1485dnl Provide configure switches and initialize clooginc & clooglibs
1486dnl with user input.
1487CLOOG_INIT_FLAGS
1488if test "x$with_ppl" = "xno"; then
1489 dnl Only execute fail-action, if CLooG has been requested.
1490 CLOOG_REQUESTED([graphite_requested=yes], [graphite_requested=no])
1491 if test "${graphite_requested}" = yes; then
1492 AC_MSG_ERROR([Unable to find a usable PPL. See config.log for details.])
1493 fi
1494 with_cloog=no
1495fi
1496if test "x${with_cloog}" = x && test "x${with_cloog_include}" = x \
1497 && test "x${with_cloog_lib}" = x && test -d ${srcdir}/cloog; then
1498 clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' '
1499 clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include '
1500fi
1501if test "x$with_cloog" != "xno"; then
1502 dnl The minimal version of CLooG required for Graphite.
1503 dnl
1504 dnl If we use CLooG-Legacy, the provided version information is
1505 dnl ignored.
1506 CLOOG_CHECK_VERSION(0,16,1)
1507
1508 dnl Only execute fail-action, if CLooG has been requested.
1509 CLOOG_IF_FAILED([
1510 AC_MSG_ERROR([Unable to find a usable CLooG. See config.log for details.])])
1511fi
1512
1513# Check for LTO support.
1514AC_ARG_ENABLE(lto,
1515[AS_HELP_STRING([--enable-lto], [enable link time optimization support])],
1516enable_lto=$enableval,
1517enable_lto=yes; default_enable_lto=yes)
1518
1519ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
1520 build_lto_plugin=yes
1521],[if test x"$default_enable_lto" = x"yes" ; then
1522 case $target in
1523 *-apple-darwin9 | *-cygwin* | *-mingw*) ;;
1524 # On other non-ELF platforms, LTO has yet to be validated.
1525 *) enable_lto=no ;;
1526 esac
1527 else
1528 # Apart from ELF platforms, only Windows and Darwin support LTO so far.
1529 # It would also be nice to check the binutils support, but we don't
1530 # have gcc_GAS_CHECK_FEATURE available here. For now, we'll just
1531 # warn during gcc/ subconfigure; unless you're bootstrapping with
1532 # -flto it won't be needed until after installation anyway.
1533 case $target in
1534 *-cygwin* | *-mingw* | *-apple-darwin*) ;;
1535 *) if test x"$enable_lto" = x"yes"; then
1536 AC_MSG_ERROR([LTO support is not enabled for this target.])
1537 fi
1538 ;;
1539 esac
1540 fi
1541 # Among non-ELF, only Windows platforms support the lto-plugin so far.
1542 # Build it unless LTO was explicitly disabled.
1543 case $target in
1544 *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;;
1545 *) ;;
1546 esac
1547])
1548
1549
1550# By default, C is the only stage 1 language.
1551stage1_languages=,c,
1552
1553# Target libraries that we bootstrap.
1554bootstrap_target_libs=,target-libgcc,
1555
1556# Figure out what language subdirectories are present.
1557# Look if the user specified --enable-languages="..."; if not, use
1558# the environment variable $LANGUAGES if defined. $LANGUAGES might
1559# go away some day.
1560# NB: embedded tabs in this IF block -- do not untabify
1561if test -d ${srcdir}/gcc; then
1562 if test x"${enable_languages+set}" != xset; then
1563 if test x"${LANGUAGES+set}" = xset; then
1564 enable_languages="${LANGUAGES}"
1565 echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
1566 else
1567 enable_languages=all
1568 fi
1569 else
1570 if test x"${enable_languages}" = x ||
1571 test x"${enable_languages}" = xyes;
1572 then
1573 echo configure.in: --enable-languages needs at least one language argument 1>&2
1574 exit 1
1575 fi
1576 fi
1577 enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
1578
1579 # 'f95' is the old name for the 'fortran' language. We issue a warning
1580 # and make the substitution.
1581 case ,${enable_languages}, in
1582 *,f95,*)
1583 echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
1584 enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
1585 ;;
1586 esac
1587
1588 # First scan to see if an enabled language requires some other language.
1589 # We assume that a given config-lang.in will list all the language
1590 # front ends it requires, even if some are required indirectly.
1591 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1592 case ${lang_frag} in
1593 ..) ;;
1594 # The odd quoting in the next line works around
1595 # an apparent bug in bash 1.12 on linux.
1596 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1597 *)
1598 # From the config-lang.in, get $language, $lang_requires, and
1599 # $lang_requires_boot_languages.
1600 language=
1601 lang_requires=
1602 lang_requires_boot_languages=
1603 . ${lang_frag}
1604 for other in ${lang_requires} ${lang_requires_boot_languages}; do
1605 case ,${enable_languages}, in
1606 *,$other,*) ;;
1607 *,all,*) ;;
1608 *,$language,*)
1609 echo " \`$other' language required by \`$language'; enabling" 1>&2
1610 enable_languages="${enable_languages},${other}"
1611 ;;
1612 esac
1613 done
1614 for other in ${lang_requires_boot_languages} ; do
1615 if test "$other" != "c"; then
1616 case ,${enable_stage1_languages}, in
1617 *,$other,*) ;;
1618 *,all,*) ;;
1619 *)
1620 case ,${enable_languages}, in
1621 *,$language,*)
1622 echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
1623 enable_stage1_languages="$enable_stage1_languages,${other}"
1624 ;;
1625 esac
1626 ;;
1627 esac
1628 fi
1629 done
1630 ;;
1631 esac
1632 done
1633
1634 new_enable_languages=,c,
1635
1636 # If LTO is enabled, add the LTO front end.
1637 extra_host_libiberty_configure_flags=
1638 if test "$enable_lto" = "yes" ; then
1639 case ,${enable_languages}, in
1640 *,lto,*) ;;
1641 *) enable_languages="${enable_languages},lto" ;;
1642 esac
1643 if test "${build_lto_plugin}" = "yes" ; then
1644 configdirs="$configdirs lto-plugin"
1645 extra_host_libiberty_configure_flags=--enable-shared
1646 fi
1647 fi
1648 AC_SUBST(extra_host_libiberty_configure_flags)
1649
1650 missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1651 potential_languages=,c,
1652
1653 enabled_target_libs=
1654 disabled_target_libs=
1655
1656 for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
1657 case ${lang_frag} in
1658 ..) ;;
1659 # The odd quoting in the next line works around
1660 # an apparent bug in bash 1.12 on linux.
1661 ${srcdir}/gcc/[[*]]/config-lang.in) ;;
1662 *)
1663 # From the config-lang.in, get $language, $target_libs,
1664 # $lang_dirs, $boot_language, and $build_by_default
1665 language=
1666 target_libs=
1667 lang_dirs=
1668 subdir_requires=
1669 boot_language=no
1670 build_by_default=yes
1671 . ${lang_frag}
1672 if test x${language} = x; then
1673 echo "${lang_frag} doesn't set \$language." 1>&2
1674 exit 1
1675 fi
1676
1677 if test "$language" = "c++" \
1678 && test "$ENABLE_BUILD_WITH_CXX" = "yes"; then
1679 boot_language=yes
1680 fi
1681
1682 case ,${enable_languages}, in
1683 *,${language},*)
1684 # Language was explicitly selected; include it.
1685 add_this_lang=yes
1686 ;;
1687 *,all,*)
1688 # 'all' was selected, select it if it is a default language
1689 add_this_lang=${build_by_default}
1690 ;;
1691 *)
1692 add_this_lang=no
1693 ;;
1694 esac
1695
1696 # Disable languages that need other directories if these aren't available.
1697 for i in $subdir_requires; do
1698 test -f "$srcdir/gcc/$i/config-lang.in" && continue
1699 case ,${enable_languages}, in
1700 *,${language},*)
1701 # Specifically requested language; tell them.
1702 AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
1703 ;;
1704 *)
1705 # Silently disable.
1706 add_this_lang=unsupported
1707 ;;
1708 esac
1709 done
1710
1711 # Disable Ada if no preexisting GNAT is available.
1712 case ,${enable_languages},:${language}:${have_gnat} in
1713 *,${language},*:ada:no)
1714 # Specifically requested language; tell them.
1715 AC_MSG_ERROR([GNAT is required to build $language])
1716 ;;
1717 *:ada:no)
1718 # Silently disable.
1719 add_this_lang=unsupported
1720 ;;
1721 esac
1722
1723 # Disable a language that is unsupported by the target.
1724 case " $unsupported_languages " in
1725 *" $language "*)
1726 add_this_lang=unsupported
1727 ;;
1728 esac
1729
1730 case $add_this_lang in
1731 unsupported)
1732 # Remove language-dependent dirs.
1733 disabled_target_libs="$disabled_target_libs $target_libs"
1734 noconfigdirs="$noconfigdirs $lang_dirs"
1735 ;;
1736 no)
1737 # Remove language-dependent dirs; still show language as supported.
1738 disabled_target_libs="$disabled_target_libs $target_libs"
1739 noconfigdirs="$noconfigdirs $lang_dirs"
1740 potential_languages="${potential_languages}${language},"
1741 ;;
1742 yes)
1743 new_enable_languages="${new_enable_languages}${language},"
1744 potential_languages="${potential_languages}${language},"
1745 missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1746 enabled_target_libs="$enabled_target_libs $target_libs"
1747 case "${boot_language}:,$enable_stage1_languages," in
1748 yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
1749 # Add to (comma-separated) list of stage 1 languages.
1750 case ",$stage1_languages," in
1751 *,$language,* | ,yes, | ,all,) ;;
1752 *) stage1_languages="${stage1_languages}${language}," ;;
1753 esac
1754 # We need to bootstrap any supporting libraries.
1755 bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
1756 ;;
1757 esac
1758 ;;
1759 esac
1760 ;;
1761 esac
1762 done
1763
1764 # Add target libraries which are only needed for disabled languages
1765 # to noconfigdirs.
1766 if test -n "$disabled_target_libs"; then
1767 for dir in $disabled_target_libs; do
1768 case " $enabled_target_libs " in
1769 *" ${dir} "*) ;;
1770 *) noconfigdirs="$noconfigdirs $dir" ;;
1771 esac
1772 done
1773 fi
1774
1775 AC_ARG_ENABLE(stage1-languages,
1776 [AS_HELP_STRING([[--enable-stage1-languages[=all]]],
1777 [choose additional languages to build during
1778 stage1. Mostly useful for compiler development])],
1779 [case ,${enable_stage1_languages}, in
1780 ,no,|,,)
1781 # Set it to something that will have no effect in the loop below
1782 enable_stage1_languages=c ;;
1783 ,yes,)
1784 enable_stage1_languages=`echo $new_enable_languages | \
1785 sed -e "s/^,//" -e "s/,$//" ` ;;
1786 *,all,*)
1787 enable_stage1_languages=`echo ,$enable_stage1_languages, | \
1788 sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
1789 esac
1790
1791 # Add "good" languages from enable_stage1_languages to stage1_languages,
1792 # while "bad" languages go in missing_languages. Leave no duplicates.
1793 for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
1794 case $potential_languages in
1795 *,$i,*)
1796 case $stage1_languages in
1797 *,$i,*) ;;
1798 *) stage1_languages="$stage1_languages$i," ;;
1799 esac ;;
1800 *)
1801 case $missing_languages in
1802 *,$i,*) ;;
1803 *) missing_languages="$missing_languages$i," ;;
1804 esac ;;
1805 esac
1806 done])
1807
1808 # Remove leading/trailing commas that were added for simplicity
1809 potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
1810 missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
1811 stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
1812 new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
1813
1814 if test "x$missing_languages" != x; then
1815 AC_MSG_ERROR([
1816The following requested languages could not be built: ${missing_languages}
1817Supported languages are: ${potential_languages}])
1818 fi
1819 if test "x$new_enable_languages" != "x$enable_languages"; then
1820 echo The following languages will be built: ${new_enable_languages}
1821 enable_languages="$new_enable_languages"
1822 fi
1823
1824 AC_SUBST(stage1_languages)
1825 ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
1826fi
1827
1828# Handle --disable-<component> generically.
1829for dir in $configdirs $build_configdirs $target_configdirs ; do
1830 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
1831 varname=`echo $dirname | sed -e s/+/_/g`
1832 if eval test x\${enable_${varname}} "=" xno ; then
1833 noconfigdirs="$noconfigdirs $dir"
1834 fi
1835done
1836
1837# Check for Boehm's garbage collector
1838AC_ARG_ENABLE(objc-gc,
1839[AS_HELP_STRING([--enable-objc-gc],
1840 [enable use of Boehm's garbage collector with the
1841 GNU Objective-C runtime])],
1842[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
1843 *,objc,*:*:yes:*target-boehm-gc*)
1844 AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
1845 ;;
1846esac])
1847
1848# Make sure we only build Boehm's garbage collector if required.
1849case ,${enable_languages},:${enable_objc_gc} in
1850 *,objc,*:yes)
1851 # Keep target-boehm-gc if requested for Objective-C.
1852 ;;
1853 *)
1854 # Otherwise remove target-boehm-gc depending on target-libjava.
1855 if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
1856 noconfigdirs="$noconfigdirs target-boehm-gc"
1857 fi
1858 ;;
1859esac
1860
1861# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
1862# $build_configdirs and $target_configdirs.
1863# If we have the source for $noconfigdirs entries, add them to $notsupp.
1864
1865notsupp=""
1866for dir in . $skipdirs $noconfigdirs ; do
1867 dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
1868 if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1869 configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
1870 if test -r $srcdir/$dirname/configure ; then
1871 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1872 true
1873 else
1874 notsupp="$notsupp $dir"
1875 fi
1876 fi
1877 fi
1878 if test $dir != . && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1879 build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
1880 if test -r $srcdir/$dirname/configure ; then
1881 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1882 true
1883 else
1884 notsupp="$notsupp $dir"
1885 fi
1886 fi
1887 fi
1888 if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1889 target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
1890 if test -r $srcdir/$dirname/configure ; then
1891 if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1892 true
1893 else
1894 notsupp="$notsupp $dir"
1895 fi
1896 fi
1897 fi
1898done
1899
1900# Sometimes the tools are distributed with libiberty but with no other
1901# libraries. In that case, we don't want to build target-libiberty.
1902# Don't let libgcc imply libiberty either.
1903if test -n "${target_configdirs}" ; then
1904 libgcc=
1905 others=
1906 for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
1907 if test "$i" = "libgcc"; then
1908 libgcc=target-libgcc
1909 elif test "$i" != "libiberty" ; then
1910 if test -r $srcdir/$i/configure ; then
1911 others=yes;
1912 break;
1913 fi
1914 fi
1915 done
1916 if test -z "${others}" ; then
1917 target_configdirs=$libgcc
1918 fi
1919fi
1920
1921# Quietly strip out all directories which aren't configurable in this tree.
1922# This relies on all configurable subdirectories being autoconfiscated, which
1923# is now the case.
1924build_configdirs_all="$build_configdirs"
1925build_configdirs=
1926for i in ${build_configdirs_all} ; do
1927 j=`echo $i | sed -e s/build-//g`
1928 if test -f ${srcdir}/$j/configure ; then
1929 build_configdirs="${build_configdirs} $i"
1930 fi
1931done
1932
1933configdirs_all="$configdirs"
1934configdirs=
1935for i in ${configdirs_all} ; do
1936 if test -f ${srcdir}/$i/configure ; then
1937 configdirs="${configdirs} $i"
1938 fi
1939done
1940
1941target_configdirs_all="$target_configdirs"
1942target_configdirs=
1943for i in ${target_configdirs_all} ; do
1944 j=`echo $i | sed -e s/target-//g`
1945 if test -f ${srcdir}/$j/configure ; then
1946 target_configdirs="${target_configdirs} $i"
1947 fi
1948done
1949
1950# Produce a warning message for the subdirs we can't configure.
1951# This isn't especially interesting in the Cygnus tree, but in the individual
1952# FSF releases, it's important to let people know when their machine isn't
1953# supported by the one or two programs in a package.
1954
1955if test -n "${notsupp}" && test -z "${norecursion}" ; then
1956 # If $appdirs is non-empty, at least one of those directories must still
1957 # be configured, or we error out. (E.g., if the gas release supports a
1958 # specified target in some subdirs but not the gas subdir, we shouldn't
1959 # pretend that all is well.)
1960 if test -n "$appdirs" ; then
1961 for dir in $appdirs ; do
1962 if test -r $dir/Makefile.in ; then
1963 if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
1964 appdirs=""
1965 break
1966 fi
1967 if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
1968 appdirs=""
1969 break
1970 fi
1971 fi
1972 done
1973 if test -n "$appdirs" ; then
1974 echo "*** This configuration is not supported by this package." 1>&2
1975 exit 1
1976 fi
1977 fi
1978 # Okay, some application will build, or we don't care to check. Still
1979 # notify of subdirs not getting built.
1980 echo "*** This configuration is not supported in the following subdirectories:" 1>&2
1981 echo " ${notsupp}" 1>&2
1982 echo " (Any other directories should still work fine.)" 1>&2
1983fi
1984
1985case "$host" in
1986 *msdosdjgpp*)
1987 enable_gdbtk=no ;;
1988esac
1989
1990# To find our prefix, in gcc_cv_tool_prefix.
1991ACX_TOOL_DIRS
1992
1993copy_dirs=
1994
1995AC_ARG_WITH([build-sysroot],
1996 [AS_HELP_STRING([--with-build-sysroot=SYSROOT],
1997 [use sysroot as the system root during the build])],
1998 [if test x"$withval" != x ; then
1999 SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
2000 fi],
2001 [SYSROOT_CFLAGS_FOR_TARGET=])
2002AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
2003
2004AC_ARG_WITH([debug-prefix-map],
2005 [AS_HELP_STRING([--with-debug-prefix-map='A=B C=D ...'],
2006 [map A to B, C to D ... in debug information])],
2007 [if test x"$withval" != x; then
2008 DEBUG_PREFIX_CFLAGS_FOR_TARGET=
2009 for debug_map in $withval; do
2010 DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
2011 done
2012 fi],
2013 [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
2014AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
2015
2016# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
2017# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
2018# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
2019# We want to ensure that TARGET libraries (which we know are built with
2020# gcc) are built with "-O2 -g", so include those options when setting
2021# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
2022if test "x$CFLAGS_FOR_TARGET" = x; then
2023 CFLAGS_FOR_TARGET=$CFLAGS
2024 case " $CFLAGS " in
2025 *" -O2 "*) ;;
2026 *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
2027 esac
2028 case " $CFLAGS " in
2029 *" -g "* | *" -g3 "*) ;;
2030 *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
2031 esac
2032fi
2033AC_SUBST(CFLAGS_FOR_TARGET)
2034
2035if test "x$CXXFLAGS_FOR_TARGET" = x; then
2036 CXXFLAGS_FOR_TARGET=$CXXFLAGS
2037 case " $CXXFLAGS " in
2038 *" -O2 "*) ;;
2039 *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
2040 esac
2041 case " $CXXFLAGS " in
2042 *" -g "* | *" -g3 "*) ;;
2043 *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
2044 esac
2045fi
2046AC_SUBST(CXXFLAGS_FOR_TARGET)
2047
2048# Handle --with-headers=XXX. If the value is not "yes", the contents of
2049# the named directory are copied to $(tooldir)/sys-include.
2050if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
2051 if test x${is_cross_compiler} = xno ; then
2052 echo 1>&2 '***' --with-headers is only supported when cross compiling
2053 exit 1
2054 fi
2055 if test x"${with_headers}" != xyes ; then
2056 x=${gcc_cv_tool_prefix}
2057 copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
2058 fi
2059fi
2060
2061# Handle --with-libs=XXX. If the value is not "yes", the contents of
2062# the name directories are copied to $(tooldir)/lib. Multiple directories
2063# are permitted.
2064if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
2065 if test x${is_cross_compiler} = xno ; then
2066 echo 1>&2 '***' --with-libs is only supported when cross compiling
2067 exit 1
2068 fi
2069 if test x"${with_libs}" != xyes ; then
2070 # Copy the libraries in reverse order, so that files in the first named
2071 # library override files in subsequent libraries.
2072 x=${gcc_cv_tool_prefix}
2073 for l in ${with_libs}; do
2074 copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
2075 done
2076 fi
2077fi
2078
2079# Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
2080#
2081# This is done by determining whether or not the appropriate directory
2082# is available, and by checking whether or not specific configurations
2083# have requested that this magic not happen.
2084#
2085# The command line options always override the explicit settings in
2086# configure.in, and the settings in configure.in override this magic.
2087#
2088# If the default for a toolchain is to use GNU as and ld, and you don't
2089# want to do that, then you should use the --without-gnu-as and
2090# --without-gnu-ld options for the configure script. Similarly, if
2091# the default is to use the included zlib and you don't want to do that,
2092# you should use the --with-system-zlib option for the configure script.
2093
2094if test x${use_gnu_as} = x &&
2095 echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
2096 with_gnu_as=yes
2097 extra_host_args="$extra_host_args --with-gnu-as"
2098fi
2099
2100if test x${use_gnu_ld} = x &&
2101 echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
2102 with_gnu_ld=yes
2103 extra_host_args="$extra_host_args --with-gnu-ld"
2104fi
2105
2106if test x${use_included_zlib} = x &&
2107 echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
2108 :
2109else
2110 with_system_zlib=yes
2111 extra_host_args="$extra_host_args --with-system-zlib"
2112fi
2113
2114# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
2115# can detect this case.
2116
2117if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
2118 with_newlib=yes
2119 extra_host_args="$extra_host_args --with-newlib"
2120fi
2121
2122# Handle ${copy_dirs}
2123set fnord ${copy_dirs}
2124shift
2125while test $# != 0 ; do
2126 if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
2127 :
2128 else
2129 echo Copying $1 to $2
2130
2131 # Use the install script to create the directory and all required
2132 # parent directories.
2133 if test -d $2 ; then
2134 :
2135 else
2136 echo >config.temp
2137 ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
2138 fi
2139
2140 # Copy the directory, assuming we have tar.
2141 # FIXME: Should we use B in the second tar? Not all systems support it.
2142 (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
2143
2144 # It is the responsibility of the user to correctly adjust all
2145 # symlinks. If somebody can figure out how to handle them correctly
2146 # here, feel free to add the code.
2147
2148 echo $1 > $2/COPIED
2149 fi
2150 shift; shift
2151done
2152
2153# Determine a target-dependent exec_prefix that the installed
2154# gcc will search in. Keep this list sorted by triplet, with
2155# the *-*-osname triplets last.
2156md_exec_prefix=
2157case "${target}" in
2158 alpha*-*-*vms*)
2159 md_exec_prefix=/gnu/lib/gcc-lib
2160 ;;
2161 i[[34567]]86-pc-msdosdjgpp*)
2162 md_exec_prefix=/dev/env/DJDIR/bin
2163 ;;
2164 i[[34567]]86-*-sco3.2v5*)
2165 if test $with_gnu_as = yes; then
2166 md_exec_prefix=/usr/gnu/bin
2167 else
2168 md_exec_prefix=/usr/ccs/bin/elf
2169 fi
2170 ;;
2171
2172 mn10300-*-* | \
2173 powerpc-*-chorusos* | \
2174 powerpc*-*-eabi* | \
2175 powerpc*-*-sysv* | \
2176 powerpc*-*-kaos* | \
2177 s390x-ibm-tpf*)
2178 md_exec_prefix=/usr/ccs/bin
2179 ;;
2180 sparc64-*-elf*)
2181 ;;
2182 v850*-*-*)
2183 md_exec_prefix=/usr/ccs/bin
2184 ;;
2185 xtensa*-*-elf*)
2186 ;;
2187
2188 *-*-beos* | \
2189 *-*-elf* | \
2190 *-*-hpux* | \
2191 *-*-netware* | \
2192 *-*-nto-qnx* | \
2193 *-*-rtems* | \
2194 *-*-solaris2* | \
2195 *-*-sysv[[45]]* | \
2196 *-*-vxworks* | \
2197 *-wrs-windiss)
2198 md_exec_prefix=/usr/ccs/bin
2199 ;;
2200esac
2201
2202extra_arflags_for_target=
2203extra_nmflags_for_target=
2204extra_ranlibflags_for_target=
2205target_makefile_frag=/dev/null
2206case "${target}" in
2207 spu-*-*)
2208 target_makefile_frag="config/mt-spu"
2209 ;;
2210 mips*-sde-elf*)
2211 target_makefile_frag="config/mt-sde"
2212 ;;
2213 mipsisa*-*-elfoabi*)
2214 target_makefile_frag="config/mt-mips-elfoabi"
2215 ;;
2216 mips*-*-*linux* | mips*-*-gnu*)
2217 target_makefile_frag="config/mt-mips-gnu"
2218 ;;
2219 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
2220 target_makefile_frag="config/mt-gnu"
2221 ;;
2222 *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
2223 # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
2224 # commands to handle both 32-bit and 64-bit objects. These flags are
2225 # harmless if we're using GNU nm or ar.
2226 extra_arflags_for_target=" -X32_64"
2227 extra_nmflags_for_target=" -B -X32_64"
2228 ;;
2229 *-*-darwin[[3-9]]*)
2230 # ranlib before Darwin10 requires the -c flag to look at common symbols.
2231 extra_ranlibflags_for_target=" -c"
2232 ;;
2233esac
2234
2235alphaieee_frag=/dev/null
2236case $target in
2237 alpha*-*-*)
2238 # This just makes sure to use the -mieee option to build target libs.
2239 # This should probably be set individually by each library.
2240 alphaieee_frag="config/mt-alphaieee"
2241 ;;
2242esac
2243
2244# If --enable-target-optspace always use -Os instead of -O2 to build
2245# the target libraries, similarly if it is not specified, use -Os
2246# on selected platforms.
2247ospace_frag=/dev/null
2248case "${enable_target_optspace}:${target}" in
2249 yes:*)
2250 ospace_frag="config/mt-ospace"
2251 ;;
2252 :d30v-*)
2253 ospace_frag="config/mt-d30v"
2254 ;;
2255 :m32r-* | :d10v-* | :fr30-*)
2256 ospace_frag="config/mt-ospace"
2257 ;;
2258 no:* | :*)
2259 ;;
2260 *)
2261 echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
2262 ;;
2263esac
2264
2265# Default to using --with-stabs for certain targets.
2266if test x${with_stabs} = x ; then
2267 case "${target}" in
2268 mips*-*-irix[[56]]*)
2269 ;;
2270 mips*-*-* | alpha*-*-osf*)
2271 with_stabs=yes;
2272 extra_host_args="${extra_host_args} --with-stabs"
2273 ;;
2274 esac
2275fi
2276
2277# hpux11 in 64bit mode has libraries in a weird place. Arrange to find
2278# them automatically.
2279case "${host}" in
2280 hppa*64*-*-hpux11*)
2281 extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
2282 ;;
2283esac
2284
2285# Some systems (e.g., one of the i386-aix systems the gas testers are
2286# using) don't handle "\$" correctly, so don't use it here.
2287tooldir='${exec_prefix}'/${target_noncanonical}
2288build_tooldir=${tooldir}
2289
2290# Create a .gdbinit file which runs the one in srcdir
2291# and tells GDB to look there for source files.
2292
2293if test -r ${srcdir}/.gdbinit ; then
2294 case ${srcdir} in
2295 .) ;;
2296 *) cat > ./.gdbinit <<EOF
2297# ${NO_EDIT}
2298dir ${srcdir}
2299dir .
2300source ${srcdir}/.gdbinit
2301EOF
2302 ;;
2303 esac
2304fi
2305
2306# Make sure that the compiler is able to generate an executable. If it
2307# can't, we are probably in trouble. We don't care whether we can run the
2308# executable--we might be using a cross compiler--we only care whether it
2309# can be created. At this point the main configure script has set CC.
2310we_are_ok=no
2311echo "int main () { return 0; }" > conftest.c
2312${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
2313if test $? = 0 ; then
2314 if test -s conftest || test -s conftest.exe ; then
2315 we_are_ok=yes
2316 fi
2317fi
2318case $we_are_ok in
2319 no)
2320 echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
2321 echo 1>&2 "*** You must set the environment variable CC to a working compiler."
2322 rm -f conftest*
2323 exit 1
2324 ;;
2325esac
2326rm -f conftest*
2327
2328# The Solaris /usr/ucb/cc compiler does not appear to work.
2329case "${host}" in
2330 sparc-sun-solaris2*)
2331 CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
2332 if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
2333 could_use=
2334 test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
2335 if test -d /opt/cygnus/bin ; then
2336 if test "$could_use" = "" ; then
2337 could_use="/opt/cygnus/bin"
2338 else
2339 could_use="$could_use or /opt/cygnus/bin"
2340 fi
2341 fi
2342 if test "$could_use" = "" ; then
2343 echo "Warning: compilation may fail because you're using"
2344 echo "/usr/ucb/cc. You should change your PATH or CC "
2345 echo "variable and rerun configure."
2346 else
2347 echo "Warning: compilation may fail because you're using"
2348 echo "/usr/ucb/cc, when you should use the C compiler from"
2349 echo "$could_use. You should change your"
2350 echo "PATH or CC variable and rerun configure."
2351 fi
2352 fi
2353 ;;
2354esac
2355
2356# Decide which environment variable is used to find dynamic libraries.
2357case "${host}" in
2358 *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
2359 *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
2360 *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
2361 *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
2362esac
2363
2364# On systems where the dynamic library environment variable is PATH,
2365# gcc/ will put dynamic libraries into a subdirectory to avoid adding
2366# built executables to PATH.
2367if test "$RPATH_ENVVAR" = PATH; then
2368 GCC_SHLIB_SUBDIR=/shlib
2369else
2370 GCC_SHLIB_SUBDIR=
2371fi
2372
2373# Record target_configdirs and the configure arguments for target and
2374# build configuration in Makefile.
2375target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
2376build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
2377
2378# If we are building libgomp, bootstrap it.
2379if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
2380 bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
2381fi
2382
2383# Determine whether gdb needs tk/tcl or not.
2384# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
2385# and in that case we want gdb to be built without tk. Ugh!
2386# In fact I believe gdb is the *only* package directly dependent on tk,
2387# so we should be able to put the 'maybe's in unconditionally and
2388# leave out the maybe dependencies when enable_gdbtk is false. I'm not
2389# 100% sure that that's safe though.
2390
2391gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
2392case "$enable_gdbtk" in
2393 no)
2394 GDB_TK="" ;;
2395 yes)
2396 GDB_TK="${gdb_tk}" ;;
2397 *)
2398 # Only add the dependency on gdbtk when GDBtk is part of the gdb
2399 # distro. Eventually someone will fix this and move Insight, nee
2400 # gdbtk to a separate directory.
2401 if test -d ${srcdir}/gdb/gdbtk ; then
2402 GDB_TK="${gdb_tk}"
2403 else
2404 GDB_TK=""
2405 fi
2406 ;;
2407esac
2408CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
2409INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
2410
2411# Strip out unwanted targets.
2412
2413# While at that, we remove Makefiles if we were started for recursive
2414# configuration, so that the top-level Makefile reconfigures them,
2415# like we used to do when configure itself was recursive.
2416
2417# Loop over modules. We used to use the "$extrasub" feature from Autoconf
2418# but now we're fixing up the Makefile ourselves with the additional
2419# commands passed to AC_CONFIG_FILES. Use separate variables
2420# extrasub-{build,host,target} not because there is any reason to split
2421# the substitutions up that way, but only to remain below the limit of
2422# 99 commands in a script, for HP-UX sed.
2423# Do not nest @if/@endif pairs, because configure will not warn you at all.
2424
2425AC_ARG_ENABLE([bootstrap],
2426[AS_HELP_STRING([--enable-bootstrap],
2427 [enable bootstrapping @<:@yes if native build@:>@])],,
2428enable_bootstrap=default)
2429
2430# Issue errors and warnings for invalid/strange bootstrap combinations.
2431case "$configdirs" in
2432 *gcc*) have_compiler=yes ;;
2433 *) have_compiler=no ;;
2434esac
2435
2436case "$have_compiler:$host:$target:$enable_bootstrap" in
2437 *:*:*:no) ;;
2438
2439 # Default behavior. Enable bootstrap if we have a compiler
2440 # and we are in a native configuration.
2441 yes:$build:$build:default)
2442 enable_bootstrap=yes ;;
2443
2444 *:*:*:default)
2445 enable_bootstrap=no ;;
2446
2447 # We have a compiler and we are in a native configuration, bootstrap is ok
2448 yes:$build:$build:yes)
2449 ;;
2450
2451 # Other configurations, but we have a compiler. Assume the user knows
2452 # what he's doing.
2453 yes:*:*:yes)
2454 AC_MSG_WARN([trying to bootstrap a cross compiler])
2455 ;;
2456
2457 # No compiler: if they passed --enable-bootstrap explicitly, fail
2458 no:*:*:yes)
2459 AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
2460
2461 # Fail if wrong command line
2462 *)
2463 AC_MSG_ERROR([invalid option for --enable-bootstrap])
2464 ;;
2465esac
2466
2467case ",$enable_languages,:$ENABLE_BUILD_WITH_CXX:$enable_bootstrap" in
2468 *,c++,*:yes:yes) ;;
2469 *:yes:yes)
2470 AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx requires c++ in --enable-languages])
2471 ;;
2472esac
2473
2474case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
2475 yes:yes:*\ gold\ *:*,c++,*) ;;
2476 yes:yes:*\ gold\ *:*)
2477 AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
2478 ;;
2479esac
2480
2481# Adjust the toplevel makefile according to whether bootstrap was selected.
2482case $enable_bootstrap in
2483 yes)
2484 bootstrap_suffix=bootstrap
2485 BUILD_CONFIG=bootstrap-debug
2486 ;;
2487 no)
2488 bootstrap_suffix=no-bootstrap
2489 BUILD_CONFIG=
2490 ;;
2491esac
2492
2493AC_MSG_CHECKING(for default BUILD_CONFIG)
2494
2495AC_ARG_WITH([build-config],
2496 [AS_HELP_STRING([--with-build-config='NAME NAME2...'],
2497 [use config/NAME.mk build configuration])],
2498 [case $with_build_config in
2499 yes) with_build_config= ;;
2500 no) with_build_config= BUILD_CONFIG= ;;
2501 esac])
2502
2503if test "x${with_build_config}" != x; then
2504 BUILD_CONFIG=$with_build_config
2505else
2506 case $BUILD_CONFIG in
2507 bootstrap-debug)
2508 if echo "int f (void) { return 0; }" > conftest.c &&
2509 ${CC} -c conftest.c &&
2510 mv conftest.o conftest.o.g0 &&
2511 ${CC} -c -g conftest.c &&
2512 mv conftest.o conftest.o.g &&
2513 ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then
2514 :
2515 else
2516 BUILD_CONFIG=
2517 fi
2518 rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
2519 ;;
2520 esac
2521fi
2522AC_MSG_RESULT($BUILD_CONFIG)
2523AC_SUBST(BUILD_CONFIG)
2524
2525extrasub_build=
2526for module in ${build_configdirs} ; do
2527 if test -z "${no_recursion}" \
2528 && test -f ${build_subdir}/${module}/Makefile; then
2529 echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
2530 rm -f ${build_subdir}/${module}/Makefile
2531 fi
2532 extrasub_build="$extrasub_build
2533/^@if build-$module\$/d
2534/^@endif build-$module\$/d
2535/^@if build-$module-$bootstrap_suffix\$/d
2536/^@endif build-$module-$bootstrap_suffix\$/d"
2537done
2538extrasub_host=
2539for module in ${configdirs} ; do
2540 if test -z "${no_recursion}"; then
2541 for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
2542 if test -f ${file}; then
2543 echo 1>&2 "*** removing ${file} to force reconfigure"
2544 rm -f ${file}
2545 fi
2546 done
2547 fi
2548 extrasub_host="$extrasub_host
2549/^@if $module\$/d
2550/^@endif $module\$/d
2551/^@if $module-$bootstrap_suffix\$/d
2552/^@endif $module-$bootstrap_suffix\$/d"
2553done
2554extrasub_target=
2555for module in ${target_configdirs} ; do
2556 if test -z "${no_recursion}" \
2557 && test -f ${target_subdir}/${module}/Makefile; then
2558 echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
2559 rm -f ${target_subdir}/${module}/Makefile
2560 fi
2561
2562 # We only bootstrap target libraries listed in bootstrap_target_libs.
2563 case $bootstrap_target_libs in
2564 *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
2565 *) target_bootstrap_suffix=no-bootstrap ;;
2566 esac
2567
2568 extrasub_target="$extrasub_target
2569/^@if target-$module\$/d
2570/^@endif target-$module\$/d
2571/^@if target-$module-$target_bootstrap_suffix\$/d
2572/^@endif target-$module-$target_bootstrap_suffix\$/d"
2573done
2574
2575# Do the final fixup along with target modules.
2576extrasub_target="$extrasub_target
2577/^@if /,/^@endif /d"
2578
2579# Create the serialization dependencies. This uses a temporary file.
2580
2581AC_ARG_ENABLE([serial-configure],
2582[AS_HELP_STRING([[--enable-serial-[{host,target,build}-]configure]],
2583 [force sequential configuration of
2584 sub-packages for the host, target or build
2585 machine, or all sub-packages])])
2586
2587case ${enable_serial_configure} in
2588 yes)
2589 enable_serial_build_configure=yes
2590 enable_serial_host_configure=yes
2591 enable_serial_target_configure=yes
2592 ;;
2593esac
2594
2595# These force 'configure's to be done one at a time, to avoid problems
2596# with contention over a shared config.cache.
2597rm -f serdep.tmp
2598echo '# serdep.tmp' > serdep.tmp
2599olditem=
2600test "x${enable_serial_build_configure}" = xyes &&
2601for item in ${build_configdirs} ; do
2602 case ${olditem} in
2603 "") ;;
2604 *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
2605 esac
2606 olditem=${item}
2607done
2608olditem=
2609test "x${enable_serial_host_configure}" = xyes &&
2610for item in ${configdirs} ; do
2611 case ${olditem} in
2612 "") ;;
2613 *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
2614 esac
2615 olditem=${item}
2616done
2617olditem=
2618test "x${enable_serial_target_configure}" = xyes &&
2619for item in ${target_configdirs} ; do
2620 case ${olditem} in
2621 "") ;;
2622 *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
2623 esac
2624 olditem=${item}
2625done
2626serialization_dependencies=serdep.tmp
2627AC_SUBST_FILE(serialization_dependencies)
2628
2629# Base args. Strip norecursion, cache-file, srcdir, host, build,
2630# target, nonopt, and variable assignments. These are the ones we
2631# might not want to pass down to subconfigures. The exception being
2632# --cache-file=/dev/null, which is used to turn off the use of cache
2633# files altogether, and which should be passed on to subconfigures.
2634# Also strip program-prefix, program-suffix, and program-transform-name,
2635# so that we can pass down a consistent program-transform-name.
2636baseargs=
2637tbaseargs=
2638keep_next=no
2639skip_next=no
2640eval "set -- $ac_configure_args"
2641for ac_arg
2642do
2643 if test X"$skip_next" = X"yes"; then
2644 skip_next=no
2645 continue
2646 fi
2647 if test X"$keep_next" = X"yes"; then
2648 case $ac_arg in
2649 *\'*)
2650 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2651 esac
2652 baseargs="$baseargs '$ac_arg'"
2653 tbaseargs="$tbaseargs '$ac_arg'"
2654 keep_next=no
2655 continue
2656 fi
2657
2658 # Handle separated arguments. Based on the logic generated by
2659 # autoconf 2.59.
2660 case $ac_arg in
2661 *=* | --config-cache | -C | -disable-* | --disable-* \
2662 | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
2663 | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
2664 | -with-* | --with-* | -without-* | --without-* | --x)
2665 separate_arg=no
2666 ;;
2667 -*)
2668 separate_arg=yes
2669 ;;
2670 *)
2671 separate_arg=no
2672 ;;
2673 esac
2674
2675 skip_targ=no
2676 case $ac_arg in
2677changequote(,)
2678 --with-* | --without-*)
2679 libopt=`echo "$ac_arg" | sed -e 's,^--[^-_]*[-_],,' -e 's,=.*$,,'`
2680
2681 case $libopt in
2682 *[-_]include)
2683 lib=`echo "$libopt" | sed 's,[-_]include$,,'`
2684 ;;
2685 *[-_]lib)
2686 lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
2687 ;;
2688 *)
2689 lib=$libopt
2690 ;;
2691 esac
2692changequote([,])
2693
2694 case $lib in
2695 mpc | mpfr | gmp | ppl | cloog)
2696 # If we're processing --with-$lib, --with-$lib-include or
2697 # --with-$lib-lib, for one of the libs above, and target is
2698 # different from host, don't pass the current argument to any
2699 # target library's configure.
2700 if test x$is_cross_compiler = xyes; then
2701 skip_targ=yes
2702 fi
2703 ;;
2704 esac
2705 ;;
2706 esac
2707
2708 case "$ac_arg" in
2709 --cache-file=/dev/null | \
2710 -cache-file=/dev/null )
2711 # Handled here to avoid the test to skip args below.
2712 baseargs="$baseargs '$ac_arg'"
2713 tbaseargs="$tbaseargs '$ac_arg'"
2714 # Assert: $separate_arg should always be no.
2715 keep_next=$separate_arg
2716 ;;
2717 --no*)
2718 continue
2719 ;;
2720 --c* | \
2721 --sr* | \
2722 --ho* | \
2723 --bu* | \
2724 --t* | \
2725 --program-* | \
2726 -cache_file* | \
2727 -srcdir* | \
2728 -host* | \
2729 -build* | \
2730 -target* | \
2731 -program-prefix* | \
2732 -program-suffix* | \
2733 -program-transform-name* )
2734 skip_next=$separate_arg
2735 continue
2736 ;;
2737 -*)
2738 # An option. Add it.
2739 case $ac_arg in
2740 *\'*)
2741 ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
2742 esac
2743 baseargs="$baseargs '$ac_arg'"
2744 if test X"$skip_targ" = Xno; then
2745 tbaseargs="$tbaseargs '$ac_arg'"
2746 fi
2747 keep_next=$separate_arg
2748 ;;
2749 *)
2750 # Either a variable assignment, or a nonopt (triplet). Don't
2751 # pass it down; let the Makefile handle this.
2752 continue
2753 ;;
2754 esac
2755done
2756# Remove the initial space we just introduced and, as these will be
2757# expanded by make, quote '$'.
2758baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
2759
2760# Add in --program-transform-name, after --program-prefix and
2761# --program-suffix have been applied to it. Autoconf has already
2762# doubled dollar signs and backslashes in program_transform_name; we want
2763# the backslashes un-doubled, and then the entire thing wrapped in single
2764# quotes, because this will be expanded first by make and then by the shell.
2765# Also, because we want to override the logic in subdir configure scripts to
2766# choose program_transform_name, replace any s,x,x, with s,y,y,.
2767sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
2768${program_transform_name}
2769EOF_SED
2770gcc_transform_name=`cat conftestsed.out`
2771rm -f conftestsed.out
2772baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2773tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
2774if test "$silent" = yes; then
2775 baseargs="$baseargs --silent"
2776 tbaseargs="$tbaseargs --silent"
2777fi
2778baseargs="$baseargs --disable-option-checking"
2779tbaseargs="$tbaseargs --disable-option-checking"
2780
2781# Record and document user additions to sub configure arguments.
2782AC_ARG_VAR([build_configargs],
2783 [additional configure arguments for build directories])
2784AC_ARG_VAR([host_configargs],
2785 [additional configure arguments for host directories])
2786AC_ARG_VAR([target_configargs],
2787 [additional configure arguments for target directories])
2788
2789# For the build-side libraries, we just need to pretend we're native,
2790# and not use the same cache file. Multilibs are neither needed nor
2791# desired.
2792build_configargs="$build_configargs --cache-file=../config.cache ${baseargs}"
2793
2794# For host modules, accept cache file option, or specification as blank.
2795case "${cache_file}" in
2796"") # empty
2797 cache_file_option="" ;;
2798/* | [[A-Za-z]]:[[\\/]]* ) # absolute path
2799 cache_file_option="--cache-file=${cache_file}" ;;
2800*) # relative path
2801 cache_file_option="--cache-file=../${cache_file}" ;;
2802esac
2803
2804# Host dirs don't like to share a cache file either, horribly enough.
2805# This seems to be due to autoconf 2.5x stupidity.
2806host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
2807
2808target_configargs="$target_configargs ${tbaseargs}"
2809
2810# Passing a --with-cross-host argument lets the target libraries know
2811# whether they are being built with a cross-compiler or being built
2812# native. However, it would be better to use other mechanisms to make the
2813# sorts of decisions they want to make on this basis. Please consider
2814# this option to be deprecated. FIXME.
2815if test x${is_cross_compiler} = xyes ; then
2816 target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
2817fi
2818
2819# Default to --enable-multilib.
2820if test x${enable_multilib} = x ; then
2821 target_configargs="--enable-multilib ${target_configargs}"
2822fi
2823
2824# Pass --with-newlib if appropriate. Note that target_configdirs has
2825# changed from the earlier setting of with_newlib.
2826if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
2827 target_configargs="--with-newlib ${target_configargs}"
2828fi
2829
2830# Different target subdirs use different values of certain variables
2831# (notably CXX). Worse, multilibs use *lots* of different values.
2832# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
2833# it doesn't automatically accept command-line overrides of them.
2834# This means it's not safe for target subdirs to share a cache file,
2835# which is disgusting, but there you have it. Hopefully this can be
2836# fixed in future. It's still worthwhile to use a cache file for each
2837# directory. I think.
2838
2839# Pass the appropriate --build, --host, --target and --cache-file arguments.
2840# We need to pass --target, as newer autoconf's requires consistency
2841# for target_alias and gcc doesn't manage it consistently.
2842target_configargs="--cache-file=./config.cache ${target_configargs}"
2843
2844FLAGS_FOR_TARGET=
2845case " $target_configdirs " in
2846 *" newlib "*)
2847 case " $target_configargs " in
2848 *" --with-newlib "*)
2849 case "$target" in
2850 *-cygwin*)
2851 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'
2852 ;;
2853 esac
2854
2855 # If we're not building GCC, don't discard standard headers.
2856 if test -d ${srcdir}/gcc; then
2857 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
2858
2859 if test "${build}" != "${host}"; then
2860 # On Canadian crosses, CC_FOR_TARGET will have already been set
2861 # by `configure', so we won't have an opportunity to add -Bgcc/
2862 # to it. This is right: we don't want to search that directory
2863 # for binaries, but we want the header files in there, so add
2864 # them explicitly.
2865 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
2866
2867 # Someone might think of using the pre-installed headers on
2868 # Canadian crosses, in case the installed compiler is not fully
2869 # compatible with the compiler being built. In this case, it
2870 # would be better to flag an error than risking having
2871 # incompatible object files being constructed. We can't
2872 # guarantee that an error will be flagged, but let's hope the
2873 # compiler will do it, when presented with incompatible header
2874 # files.
2875 fi
2876 fi
2877
2878 case "${target}-${is_cross_compiler}" in
2879 i[[3456789]]86-*-linux*-no)
2880 # Here host == target, so we don't need to build gcc,
2881 # so we don't want to discard standard headers.
2882 FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
2883 ;;
2884 *)
2885 # If we're building newlib, use its generic headers last, but search
2886 # for any libc-related directories first (so make it the last -B
2887 # switch).
2888 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2889
2890 # If we're building libgloss, find the startup file, simulator library
2891 # and linker script.
2892 case " $target_configdirs " in
2893 *" libgloss "*)
2894 # Look for startup file, simulator library and maybe linker script.
2895 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
2896 # Look for libnosys.a in case the target needs it.
2897 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
2898 # Most targets have the linker script in the source directory.
2899 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
2900 ;;
2901 esac
2902 ;;
2903 esac
2904 ;;
2905 esac
2906 ;;
2907esac
2908
2909case "$target" in
2910 x86_64-*mingw* | *-w64-mingw*)
2911 # MinGW-w64 does not use newlib, nor does it use winsup. It may,
2912 # however, use a symlink named 'mingw' in ${prefix} .
2913 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include'
2914 ;;
2915 *-mingw*)
2916 # MinGW can't be handled as Cygwin above since it does not use newlib.
2917 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'
2918 ;;
2919esac
2920
2921# Allow the user to override the flags for
2922# our build compiler if desired.
2923if test x"${build}" = x"${host}" ; then
2924 CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
2925 CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
2926 LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
2927fi
2928
2929# On Canadian crosses, we'll be searching the right directories for
2930# the previously-installed cross compiler, so don't bother to add
2931# flags for directories within the install tree of the compiler
2932# being built; programs in there won't even run.
2933if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
2934 # Search for pre-installed headers if nothing else fits.
2935 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
2936fi
2937
2938if test "x${use_gnu_ld}" = x &&
2939 echo " ${configdirs} " | grep " ld " > /dev/null ; then
2940 # Arrange for us to find uninstalled linker scripts.
2941 FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
2942fi
2943
2944# Search for other target-specific linker scripts and such.
2945case "${target}" in
2946 mep*)
2947 FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
2948 ;;
2949esac
2950
2951# Makefile fragments.
2952for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
2953do
2954 eval fragval=\$$frag
2955 if test $fragval != /dev/null; then
2956 eval $frag=${srcdir}/$fragval
2957 fi
2958done
2959AC_SUBST_FILE(host_makefile_frag)
2960AC_SUBST_FILE(target_makefile_frag)
2961AC_SUBST_FILE(alphaieee_frag)
2962AC_SUBST_FILE(ospace_frag)
2963
2964# Miscellanea: directories, flags, etc.
2965AC_SUBST(RPATH_ENVVAR)
2966AC_SUBST(GCC_SHLIB_SUBDIR)
2967AC_SUBST(tooldir)
2968AC_SUBST(build_tooldir)
2969AC_SUBST(CONFIGURE_GDB_TK)
2970AC_SUBST(GDB_TK)
2971AC_SUBST(INSTALL_GDB_TK)
2972
2973# Build module lists & subconfigure args.
2974AC_SUBST(build_configargs)
2975AC_SUBST(build_configdirs)
2976
2977# Host module lists & subconfigure args.
2978AC_SUBST(host_configargs)
2979AC_SUBST(configdirs)
2980AC_SUBST(target_configdirs)
2981
2982# Target module lists & subconfigure args.
2983AC_SUBST(target_configargs)
2984
2985
2986# Build tools.
2987AC_SUBST(AR_FOR_BUILD)
2988AC_SUBST(AS_FOR_BUILD)
2989AC_SUBST(CC_FOR_BUILD)
2990AC_SUBST(CFLAGS_FOR_BUILD)
2991AC_SUBST(CXXFLAGS_FOR_BUILD)
2992AC_SUBST(CXX_FOR_BUILD)
2993AC_SUBST(DLLTOOL_FOR_BUILD)
2994AC_SUBST(GCJ_FOR_BUILD)
2995AC_SUBST(GFORTRAN_FOR_BUILD)
2996AC_SUBST(GOC_FOR_BUILD)
2997AC_SUBST(LDFLAGS_FOR_BUILD)
2998AC_SUBST(LD_FOR_BUILD)
2999AC_SUBST(NM_FOR_BUILD)
3000AC_SUBST(RANLIB_FOR_BUILD)
3001AC_SUBST(WINDMC_FOR_BUILD)
3002AC_SUBST(WINDRES_FOR_BUILD)
3003AC_SUBST(config_shell)
3004
3005# Generate default definitions for YACC, M4, LEX and other programs that run
3006# on the build machine. These are used if the Makefile can't locate these
3007# programs in objdir.
3008MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
3009
3010AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
3011case " $build_configdirs " in
3012 *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
3013 *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;;
3014esac
3015
3016AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
3017case " $build_configdirs " in
3018 *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
3019esac
3020
3021AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
3022case " $build_configdirs " in
3023 *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
3024esac
3025
3026AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
3027case " $build_configdirs " in
3028 *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3029 *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
3030esac
3031
3032AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
3033case " $build_configdirs " in
3034 *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
3035esac
3036
3037AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
3038case " $build_configdirs " in
3039 *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
3040 *)
3041changequote(,)
3042 # For an installed makeinfo, we require it to be from texinfo 4.7 or
3043 # higher, else we use the "missing" dummy.
3044 if ${MAKEINFO} --version \
3045 | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
3046 :
3047 else
3048 MAKEINFO="$MISSING makeinfo"
3049 fi
3050 ;;
3051changequote([,])
3052esac
3053
3054# FIXME: expect and dejagnu may become build tools?
3055
3056AC_CHECK_PROGS(EXPECT, expect, expect)
3057case " $configdirs " in
3058 *" expect "*)
3059 test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
3060 ;;
3061esac
3062
3063AC_CHECK_PROGS(RUNTEST, runtest, runtest)
3064case " $configdirs " in
3065 *" dejagnu "*)
3066 test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
3067 ;;
3068esac
3069
3070
3071# Host tools.
3072NCN_STRICT_CHECK_TOOLS(AR, ar)
3073NCN_STRICT_CHECK_TOOLS(AS, as)
3074NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
3075NCN_STRICT_CHECK_TOOLS(LD, ld)
3076NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
3077NCN_STRICT_CHECK_TOOLS(NM, nm)
3078NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, true)
3079NCN_STRICT_CHECK_TOOLS(STRIP, strip, true)
3080NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
3081NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
3082NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
3083NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
3084AC_SUBST(CC)
3085AC_SUBST(CXX)
3086AC_SUBST(CFLAGS)
3087AC_SUBST(CXXFLAGS)
3088
3089# Target tools.
3090AC_ARG_WITH([build-time-tools],
3091 [AS_HELP_STRING([--with-build-time-tools=PATH],
3092 [use given path to find target tools during the build])],
3093 [case x"$withval" in
3094 x/*) ;;
3095 *)
3096 with_build_time_tools=
3097 AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
3098 ;;
3099 esac],
3100 [with_build_time_tools=])
3101
3102NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
3103NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
3104NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
3105NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
3106NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
3107NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo)
3108
3109ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
3110ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
3111ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
3112ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
3113ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
3114ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
3115ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
3116ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib)
3117ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
3118ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
3119ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
3120
3121RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
3122
3123GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
3124GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
3125GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3126dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
3127GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
3128 [gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
3129 c++)
3130GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
3131 [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],
3132 c++)
3133GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
3134GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3135GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
3136 [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
3137GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
3138 [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
3139GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC,
3140 [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go)
3141GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
3142GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
3143GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
3144GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
3145GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
3146GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new])
3147GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
3148GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
3149
3150AC_SUBST(FLAGS_FOR_TARGET)
3151AC_SUBST(RAW_CXX_FOR_TARGET)
3152
3153# Certain tools may need extra flags.
3154AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
3155RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
3156NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
3157
3158# When building target libraries, except in a Canadian cross, we use
3159# the same toolchain as the compiler we just built.
3160COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
3161COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
3162COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
3163if test $host = $build; then
3164 case " $configdirs " in
3165 *" gcc "*)
3166 COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
3167 COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
3168 COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
3169 ;;
3170 esac
3171fi
3172
3173AC_SUBST(COMPILER_AS_FOR_TARGET)
3174AC_SUBST(COMPILER_LD_FOR_TARGET)
3175AC_SUBST(COMPILER_NM_FOR_TARGET)
3176
3177AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
3178AC_ARG_ENABLE(maintainer-mode,
3179[AS_HELP_STRING([--enable-maintainer-mode],
3180 [enable make rules and dependencies not useful
3181 (and sometimes confusing) to the casual installer])],
3182 USE_MAINTAINER_MODE=$enableval,
3183 USE_MAINTAINER_MODE=no)
3184AC_MSG_RESULT($USE_MAINTAINER_MODE)
3185AC_SUBST(MAINTAINER_MODE_TRUE)
3186AC_SUBST(MAINTAINER_MODE_FALSE)
3187if test "$USE_MAINTAINER_MODE" = yes; then
3188 MAINTAINER_MODE_TRUE=
3189 MAINTAINER_MODE_FALSE='#'
3190else
3191 MAINTAINER_MODE_TRUE='#'
3192 MAINTAINER_MODE_FALSE=
3193fi
3194MAINT=$MAINTAINER_MODE_TRUE
3195AC_SUBST(MAINT)dnl
3196
3197# ---------------------
3198# GCC bootstrap support
3199# ---------------------
3200
3201# Stage specific cflags for build.
3202stage1_cflags="-g"
3203case $build in
3204 vax-*-*)
3205 case ${GCC} in
3206 yes) stage1_cflags="-g -Wa,-J" ;;
3207 *) stage1_cflags="-g -J" ;;
3208 esac ;;
3209esac
3210
3211# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
3212if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
3213 saved_CFLAGS="$CFLAGS"
3214
3215 # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
3216 CFLAGS="$CFLAGS -fkeep-inline-functions"
3217 AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
3218 AC_TRY_COMPILE([
3219#if (__GNUC__ < 3) \
3220 || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
3221 || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
3222#error http://gcc.gnu.org/PR29382
3223#endif
3224 ],,
3225 [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
3226 [AC_MSG_RESULT([no])])
3227
3228 CFLAGS="$saved_CFLAGS"
3229fi
3230
3231AC_SUBST(stage1_cflags)
3232
3233# Enable --enable-checking in stage1 of the compiler.
3234AC_ARG_ENABLE(stage1-checking,
3235[AS_HELP_STRING([[--enable-stage1-checking[=all]]],
3236 [choose additional checking for stage1 of the compiler])],
3237[stage1_checking=--enable-checking=${enable_stage1_checking}],
3238[if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
3239 stage1_checking=--enable-checking=yes,types
3240else
3241 stage1_checking=--enable-checking=$enable_checking,types
3242fi])
3243AC_SUBST(stage1_checking)
3244
3245# Enable -Werror in bootstrap stage2 and later.
3246AC_ARG_ENABLE(werror,
3247[AS_HELP_STRING([--enable-werror],
3248 [enable -Werror in bootstrap stage2 and later])], [],
3249[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
3250 enable_werror=yes
3251else
3252 enable_werror=no
3253fi])
3254case ${enable_werror} in
3255 yes) stage2_werror_flag="--enable-werror-always" ;;
3256 *) stage2_werror_flag="" ;;
3257esac
3258AC_SUBST(stage2_werror_flag)
3259
3260# Specify what files to not compare during bootstrap.
3261
3262compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
3263case "$target" in
3264 hppa*64*-*-hpux*) ;;
3265 hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
3266esac
3267case " $configdirs " in
3268*" ppl "*) compare_exclusions="$compare_exclusions | ppl/src/ppl-config.o" ;;
3269esac
3270AC_SUBST(compare_exclusions)
3271
3272AC_CONFIG_FILES([Makefile],
3273 [sed "$extrasub_build" Makefile |
3274 sed "$extrasub_host" |
3275 sed "$extrasub_target" > mf$$
3276 mv -f mf$$ Makefile],
3277 [extrasub_build="$extrasub_build"
3278 extrasub_host="$extrasub_host"
3279 extrasub_target="$extrasub_target"])
3280AC_OUTPUT
This page took 0.040098 seconds and 4 git commands to generate.