configure.ac 102 KB
Newer Older
1
#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
Douglas Rupp committed
2
#   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
3
#   Free Software Foundation, Inc.
Jason Merrill committed
4 5 6
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
Jason Merrill committed
8 9 10 11 12 13 14 15
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
16 17
# along with this program; see the file COPYING3.  If not see
# <http://www.gnu.org/licenses/>.
Jason Merrill committed
18 19

##############################################################################
20 21
### WARNING: this file contains embedded tabs.  Do not run untabify on this file.

22 23
m4_include(config/acx.m4)
m4_include(config/override.m4)
24
m4_include(config/proginstall.m4)
25
m4_include(config/elf.m4)
26 27 28 29 30
m4_include([libtool.m4])
m4_include([ltoptions.m4])
m4_include([ltsugar.m4])
m4_include([ltversion.m4])
m4_include([lt~obsolete.m4])
31
m4_include([config/isl.m4])
32
m4_include([config/cloog.m4])
33

34
AC_INIT(move-if-change)
35
AC_PREREQ(2.64)
36
AC_DISABLE_OPTION_CHECKING
37

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
progname=$0
# if PWD already has a value, it is probably wrong.
if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi

# Export original configure arguments for use by sub-configures.
# Quote arguments with shell meta charatcers.
TOPLEVEL_CONFIGURE_ARGUMENTS=
set -- "$progname" "$@"
for ac_arg
do
  case "$ac_arg" in
  *" "*|*"	"*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
    # if the argument is of the form -foo=baz, quote the baz part only
    ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
  *) ;;
  esac
  # Add the quoted argument to the list.
  TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
done
if test "$silent" = yes; then
  TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
fi
# Remove the initial space we just introduced and, as these will be
# expanded by make, quote '$'.
TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)

66 67 68 69 70 71 72 73 74 75 76 77 78 79
# Find the build, host, and target systems.
ACX_NONCANONICAL_BUILD
ACX_NONCANONICAL_HOST
ACX_NONCANONICAL_TARGET

dnl Autoconf 2.5x and later will set a default program prefix if
dnl --target was used, even if it was the same as --host.  Disable
dnl that behavior.  This must be done before AC_CANONICAL_SYSTEM
dnl to take effect.
test "$host_noncanonical" = "$target_noncanonical" &&
  test "$program_prefix$program_suffix$program_transform_name" = \
    NONENONEs,x,x, &&
  program_transform_name=s,y,y,

80 81 82
AC_CANONICAL_SYSTEM
AC_ARG_PROGRAM

83
m4_pattern_allow([^AS_FOR_TARGET$])dnl
84
m4_pattern_allow([^AS_FOR_BUILD$])dnl
85

86 87
# Get 'install' or 'install-sh' and its variants.
AC_PROG_INSTALL
88
ACX_PROG_LN
89
AC_PROG_LN_S
90 91
AC_PROG_SED
AC_PROG_AWK
92

93 94 95 96 97 98 99 100
srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`

# We pass INSTALL explicitly to sub-makes.  Make sure that it is not
# a relative path.
if test "$INSTALL" = "${srcdir}/install-sh -c"; then
  INSTALL="${srcpwd}/install-sh -c"
fi

101 102 103 104 105 106 107 108
# Set srcdir to "." if that's what it is.
# This is important for multilib support.
pwd=`${PWDCMD-pwd}`
if test "${pwd}" = "${srcpwd}" ; then
  srcdir=.
fi

topsrcdir=$srcpwd
Jason Merrill committed
109

110
extra_host_args=
111

Jason Merrill committed
112 113
### To add a new directory to the tree, first choose whether it is a target
### or a host dependent tool.  Then put it into the appropriate list
114 115 116 117 118 119 120 121
### (library or tools, host or target), doing a dependency sort.

# Subdirs will be configured in the order listed in build_configdirs, 
# configdirs, or target_configdirs; see the serialization section below.

# Dependency sorting is only needed when *configuration* must be done in 
# a particular order.  In all cases a dependency should be specified in 
# the Makefile, whether or not it's implicitly specified here.
Jason Merrill committed
122

123 124
# Double entries in build_configdirs, configdirs, or target_configdirs may
# cause circular dependencies and break everything horribly.
Jason Merrill committed
125

126 127 128 129 130 131
# these library is used by various programs built for the build
# environment
#
build_libs="build-libiberty"

# these tools are built for the build environment
132
build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
133

Jason Merrill committed
134 135
# these libraries are used by various programs built for the host environment
#
Ian Lance Taylor committed
136
host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libbacktrace libcpp libdecnumber gmp mpfr mpc isl cloog libelf libiconv"
Jason Merrill committed
137 138 139 140

# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
# know that we are building the simulator.
141 142
# binutils, gas and ld appear in that order because it makes sense to run
# "make check" in that particular order.
143
# If --enable-gold is used, "gold" may replace "ld".
144
host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
145

146 147 148 149 150
# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
	target-zlib \
	target-libjava"

Jason Merrill committed
151 152
# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
153
# Note that libiberty is not a target library.
154
target_libraries="target-libgcc \
Ian Lance Taylor committed
155
		target-libbacktrace \
156 157
		target-libgloss \
		target-newlib \
158
		target-libgomp \
159
		target-libcilkrts \
160
		target-libatomic \
161
		target-libitm \
162
		target-libstdc++-v3 \
163
		target-libsanitizer \
164
		target-libvtv \
165
		target-libssp \
166
		target-libquadmath \
167
		target-libgfortran \
168
		target-boehm-gc \
169
		${libgcj} \
170
		target-libobjc \
171 172
		target-libada \
		target-libgo"
Jason Merrill committed
173

174 175
# these tools are built using the target libraries, and are intended to
# run only in the target environment
Jason Merrill committed
176
#
177
# note: any program that *uses* libraries that are in the "target_libraries"
178
# list belongs in this list.
Jason Merrill committed
179
#
180
target_tools="target-rda"
Jason Merrill committed
181 182 183 184 185 186 187 188 189

################################################################################

## All tools belong in one of the four categories, and are assigned above
## We assign ${configdirs} this way to remove all embedded newlines.  This
## is important because configure will choke if they ever get through.
## ${configdirs} is directories we build using the host tools.
## ${target_configdirs} is directories we build using the target tools.
configdirs=`echo ${host_libs} ${host_tools}`
190
target_configdirs=`echo ${target_libraries} ${target_tools}`
191
build_configdirs=`echo ${build_libs} ${build_tools}`
Nathanael Nerode committed
192

193
m4_divert_text([PARSE_ARGS],
194 195 196 197 198 199 200 201
[case $srcdir in
  *" "*)
m4_pushdef([AS_MESSAGE_LOG_FD], [])dnl
    AC_MSG_ERROR([path to source, $srcdir, contains spaces])
m4_popdef([AS_MESSAGE_LOG_FD])dnl
    ;;
esac
ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
202 203
])

Jason Merrill committed
204 205 206 207 208 209 210
################################################################################

srcname="gnu development package"

# This gets set non-empty for some net releases of packages.
appdirs=""

211 212 213 214 215 216 217 218
# Define is_cross_compiler to save on calls to 'test'.
is_cross_compiler=
if test x"${host}" = x"${target}" ; then
  is_cross_compiler=no
else
  is_cross_compiler=yes
fi	

219
# Find the build and target subdir names.
Nathanael Nerode committed
220
GCC_TOPLEV_SUBDIRS
221 222 223 224 225
# Be sure to cover against remnants of an in-tree build.
if test $srcdir != .  && test -d $srcdir/host-${host_noncanonical}; then
  AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
Use a pristine source tree when building in a separate tree])
fi
226

227 228 229 230
# Skipdirs are removed silently.
skipdirs=
# Noconfigdirs are removed loudly.
noconfigdirs=""
Jason Merrill committed
231

232 233 234 235
use_gnu_ld=
# Make sure we don't let GNU ld be added if we didn't want it.
if test x$with_gnu_ld = xno ; then
  use_gnu_ld=no
236
  noconfigdirs="$noconfigdirs ld gold"
Jason Merrill committed
237 238
fi

239 240 241 242 243
use_gnu_as=
# Make sure we don't let GNU as be added if we didn't want it.
if test x$with_gnu_as = xno ; then
  use_gnu_as=no
  noconfigdirs="$noconfigdirs gas"
Jason Merrill committed
244 245
fi

246 247 248 249 250 251 252
use_included_zlib=
# Make sure we don't let ZLIB be added if we didn't want it.
if test x$with_system_zlib = xyes ; then
  use_included_zlib=no
  noconfigdirs="$noconfigdirs zlib"
fi

253 254
# some tools are so dependent upon X11 that if we're not building with X, 
# it's not even worth trying to configure, much less build, that tool.
Jason Merrill committed
255

256 257
case ${with_x} in
  yes | "") ;; # the default value for this tree is that X11 is available
258
  no)
259
    skipdirs="${skipdirs} tk itcl libgui"
260 261 262
    # We won't be able to build gdbtk without X.
    enable_gdbtk=no 
    ;;
263 264
  *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
esac
Jason Merrill committed
265

266
# Some are only suitable for cross toolchains.
267 268
# Remove these if host=target.
cross_only="target-libgloss target-newlib target-opcodes"
Jason Merrill committed
269

270 271 272
case $is_cross_compiler in
  no) skipdirs="${skipdirs} ${cross_only}" ;;
esac
Jason Merrill committed
273

274 275
# If both --with-headers and --with-libs are specified, default to
# --without-newlib.
276 277
if test x"${with_headers}" != x && test x"${with_headers}" != xno \
   && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
278 279 280 281 282 283 284 285 286 287 288
  if test x"${with_newlib}" = x ; then
    with_newlib=no
  fi
fi

# Recognize --with-newlib/--without-newlib.
case ${with_newlib} in
  no) skipdirs="${skipdirs} target-newlib" ;;
  yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
esac

289 290 291
# Handle --enable-gold, --enable-ld.
# --disable-gold [--enable-ld]
#     Build only ld.  Default option.
H.J. Lu committed
292 293 294 295
# --enable-gold [--enable-ld]
#     Build both gold and ld.  Install gold as "ld.gold", install ld
#     as "ld.bfd" and "ld".
# --enable-gold=default [--enable-ld]
296 297 298 299 300
#     Build both gold and ld.  Install gold as "ld.gold" and "ld",
#     install ld as "ld.bfd".
# --enable-gold[=default] --disable-ld
#     Build only gold, which is then installed as both "ld.gold" and "ld".
# --enable-gold --enable-ld=default
H.J. Lu committed
301 302
#     Build both gold (installed as "ld.gold") and ld (installed as "ld"
#     and ld.bfd).
303 304 305 306 307
#     In other words, ld is default
# --enable-gold=default --enable-ld=default
#     Error.

default_ld=
308
AC_ARG_ENABLE(gold,
309 310
[AS_HELP_STRING([[--enable-gold[=ARG]]],
		[build gold @<:@ARG={default,yes,no}@:>@])],
311 312
ENABLE_GOLD=$enableval,
ENABLE_GOLD=no)
313 314
case "${ENABLE_GOLD}" in
  yes|default)
315 316 317 318
    # Check for ELF target.
    is_elf=no
    case "${target}" in
      *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
319
      | *-*-linux* | *-*-gnu* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
320
      | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
321
      | *-*-solaris2* | *-*-nto* | *-*-nacl*)
322 323 324 325 326 327 328 329 330 331 332
        case "${target}" in
          *-*-linux*aout* | *-*-linux*oldld*)
            ;;
          *)
            is_elf=yes
            ;;
        esac
    esac

    if test "$is_elf" = "yes"; then
      # Check for target supported by gold.
333
      case "${target}" in
334
        i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* | tilegx*-*-*)
335 336 337 338
	  configdirs="$configdirs gold"
	  if test x${ENABLE_GOLD} = xdefault; then
	    default_ld=gold
	  fi
339
	  ENABLE_GOLD=yes
340 341
          ;;
      esac
342 343 344 345 346 347 348
    fi
    ;;
  no)
    ;;
  *)
    AC_MSG_ERROR([invalid --enable-gold argument])
    ;;
349 350 351
esac

AC_ARG_ENABLE(ld,
352 353
[AS_HELP_STRING([[--enable-ld[=ARG]]],
		[build ld @<:@ARG={default,yes,no}@:>@])],
354 355 356 357 358
ENABLE_LD=$enableval,
ENABLE_LD=yes)

case "${ENABLE_LD}" in
  default)
H.J. Lu committed
359
    if test x${default_ld} != x; then
360 361 362 363 364 365 366 367 368 369 370 371 372 373 374
      AC_MSG_ERROR([either gold or ld can be the default ld])
    fi
    ;;
  yes)
    ;;
  no)
    if test x${ENABLE_GOLD} != xyes; then
      AC_MSG_WARN([neither ld nor gold are enabled])
    fi
    configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'`
    ;;
  *)
    AC_MSG_ERROR([invalid --enable-ld argument])
    ;;
esac
375

Jason Merrill committed
376 377 378
# Configure extra directories which are host specific

case "${host}" in
379
  *-cygwin*)
380
    configdirs="$configdirs libtermcap" ;;
Jason Merrill committed
381 382
esac

383 384 385 386
# A target can indicate whether a language isn't supported for some reason.
# Only spaces may be used in this macro; not newlines or tabs.
unsupported_languages=

Jason Merrill committed
387 388 389 390 391
# Remove more programs from consideration, based on the host or 
# target this usually means that a port of the program doesn't
# exist yet.

case "${host}" in
392
  i[[3456789]]86-*-msdosdjgpp*)
393
    noconfigdirs="$noconfigdirs tcl tk itcl"
394
    ;;
Jason Merrill committed
395 396
esac

397

398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418
AC_ARG_ENABLE(libquadmath,
AS_HELP_STRING([--disable-libquadmath],
  [do not build libquadmath directory]),
ENABLE_LIBQUADMATH=$enableval,
ENABLE_LIBQUADMATH=yes)
if test "${ENABLE_LIBQUADMATH}" = "no" ; then
  noconfigdirs="$noconfigdirs target-libquadmath"
fi


AC_ARG_ENABLE(libquadmath-support,
AS_HELP_STRING([--disable-libquadmath-support],
  [disable libquadmath support for Fortran]),
ENABLE_LIBQUADMATH_SUPPORT=$enableval,
ENABLE_LIBQUADMATH_SUPPORT=yes)
enable_libquadmath_support=
if test "${ENABLE_LIBQUADMATH_SUPPORT}" = "no" ; then
  enable_libquadmath_support=no
fi


419
AC_ARG_ENABLE(libada,
420
[AS_HELP_STRING([--enable-libada], [build libada directory])],
421 422 423
ENABLE_LIBADA=$enableval,
ENABLE_LIBADA=yes)
if test "${ENABLE_LIBADA}" != "yes" ; then
Nathanael Nerode committed
424
  noconfigdirs="$noconfigdirs gnattools"
425 426
fi

427
AC_ARG_ENABLE(libssp,
428
[AS_HELP_STRING([--enable-libssp], [build libssp directory])],
429 430 431
ENABLE_LIBSSP=$enableval,
ENABLE_LIBSSP=yes)

432 433 434 435 436 437 438 439 440
AC_ARG_ENABLE(libstdcxx,
AS_HELP_STRING([--disable-libstdcxx],
  [do not build libstdc++-v3 directory]),
ENABLE_LIBSTDCXX=$enableval,
ENABLE_LIBSTDCXX=default)
[if test "${ENABLE_LIBSTDCXX}" = "no" ; then
  noconfigdirs="$noconfigdirs libstdc++-v3"
fi]

441 442 443 444 445 446 447 448 449 450 451 452
# Save it here so that, even in case of --enable-libgcj, if the Java
# front-end isn't enabled, we still get libgcj disabled.
libgcj_saved=$libgcj
case $enable_libgcj in
yes)
  # If we reset it here, it won't get added to noconfigdirs in the
  # target-specific build rules, so it will be forcibly enabled
  # (unless the Java language itself isn't enabled).
  libgcj=
  ;;
no)
  # Make sure we get it printed in the list of not supported target libs.
453 454
  # Don't disable libffi, though, other languages use it.
  noconfigdirs="$noconfigdirs `echo ${libgcj} | sed -e 's/target-libffi//'`"
455 456 457
  # Clear libgcj_saved so that even if java is enabled libffi won't be
  # built.
  libgcj_saved=
458 459 460
  ;;
esac

461 462 463 464 465 466 467 468 469 470 471 472 473 474
AC_ARG_ENABLE(static-libjava,
[AS_HELP_STRING([[--enable-static-libjava[=ARG]]],
		[build static libjava @<:@default=no@:>@])],
ENABLE_STATIC_LIBJAVA=$enableval,
ENABLE_STATIC_LIBJAVA=no)
enable_static_libjava=
if test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then
  enable_static_libjava=yes
fi

if test x$enable_static_libjava != xyes ; then
  EXTRA_CONFIGARGS_LIBJAVA=--disable-static
fi
AC_SUBST(EXTRA_CONFIGARGS_LIBJAVA)
475

476 477
# Disable libgomp on non POSIX hosted systems.
if test x$enable_libgomp = x ; then
Diego Novillo committed
478 479
    # Enable libgomp by default on hosted POSIX systems.
    case "${target}" in
480
    *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
Diego Novillo committed
481
	;;
482
    *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
Diego Novillo committed
483
	;;
484
    *-*-solaris2* | *-*-hpux11*)
Diego Novillo committed
485
	;;
486
    *-*-darwin* | *-*-aix*)
Diego Novillo committed
487 488 489 490 491
	;;
    *)
	noconfigdirs="$noconfigdirs target-libgomp"
	;;
    esac
492
fi
Diego Novillo committed
493

494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509
# Disable libatomic on unsupported systems.
if test -d ${srcdir}/libatomic; then
    if test x$enable_libatomic = x; then
	AC_MSG_CHECKING([for libatomic support])
	if (srcdir=${srcdir}/libatomic; \
		. ${srcdir}/configure.tgt; \
		test -n "$UNSUPPORTED")
	then
	    AC_MSG_RESULT([no])
	    noconfigdirs="$noconfigdirs target-libatomic"
	else
	    AC_MSG_RESULT([yes])
	fi
    fi
fi

510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525
# Disable libcilkrts on unsupported systems.
if test -d ${srcdir}/libcilkrts; then
    if test x$enable_libcilkrts = x; then
	AC_MSG_CHECKING([for libcilkrts support])
	if (srcdir=${srcdir}/libcilkrts; \
		. ${srcdir}/configure.tgt; \
		test -n "$UNSUPPORTED")
	then
	    AC_MSG_RESULT([no])
	    noconfigdirs="$noconfigdirs target-libcilkrts"
	else
	    AC_MSG_RESULT([yes])
	fi
    fi
fi

526 527 528 529 530 531 532 533 534 535 536 537 538 539
# Disable libitm on unsupported systems.
if test -d ${srcdir}/libitm; then
    if test x$enable_libitm = x; then
	AC_MSG_CHECKING([for libitm support])
	if (srcdir=${srcdir}/libitm; \
		. ${srcdir}/configure.tgt; \
		test -n "$UNSUPPORTED")
	then
	    AC_MSG_RESULT([no])
	    noconfigdirs="$noconfigdirs target-libitm"
	else
	    AC_MSG_RESULT([yes])
	fi
    fi
540 541
fi

542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557
# Disable libsanitizer on unsupported systems.
if test -d ${srcdir}/libsanitizer; then
    if test x$enable_libsanitizer = x; then
	AC_MSG_CHECKING([for libsanitizer support])
	if (srcdir=${srcdir}/libsanitizer; \
		. ${srcdir}/configure.tgt; \
		test -n "$UNSUPPORTED")
	then
	    AC_MSG_RESULT([no])
	    noconfigdirs="$noconfigdirs target-libsanitizer"
	else
	    AC_MSG_RESULT([yes])
	fi
    fi
fi

558 559 560 561 562 563
# Disable libvtv on unsupported systems.
if test -d ${srcdir}/libvtv; then
    if test x$enable_libvtv = x; then
	AC_MSG_CHECKING([for libvtv support])
	if (srcdir=${srcdir}/libvtv; \
		. ${srcdir}/configure.tgt; \
564
		test "$VTV_SUPPORTED" != "yes")
565 566 567 568 569 570 571 572 573
	then
	    AC_MSG_RESULT([no])
	    noconfigdirs="$noconfigdirs target-libvtv"
	else
	    AC_MSG_RESULT([yes])
	fi
    fi
fi

574 575
# Disable libquadmath for some systems.
case "${target}" in
576 577 578
  avr-*-*)
    noconfigdirs="$noconfigdirs target-libquadmath"
    ;;
579 580 581 582 583 584 585
  # libquadmath is unused on AIX and libquadmath build process use of
  # LD_LIBRARY_PATH can break AIX bootstrap.
  powerpc-*-aix* | rs6000-*-aix*)
    noconfigdirs="$noconfigdirs target-libquadmath"
    ;;
esac

586 587 588
# Disable libssp for some systems.
case "${target}" in
  avr-*-*)
589
    # No hosted I/O support.
590 591 592 593 594
    noconfigdirs="$noconfigdirs target-libssp"
    ;;
  powerpc-*-aix* | rs6000-*-aix*)
    noconfigdirs="$noconfigdirs target-libssp"
    ;;
.  
DJ Delorie committed
595 596 597 598 599 600
  rl78-*-*)
    # libssp uses a misaligned load to trigger a fault, but the RL78
    # doesn't fault for those - instead, it gives a build-time error
    # for explicit misaligned loads.
    noconfigdirs="$noconfigdirs target-libssp"
    ;;
601 602 603
esac

# Disable libstdc++-v3 for some systems.
604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619
# Allow user to override this if they pass --enable-libstdc++-v3
if test "${ENABLE_LIBSTDCXX}" = "default" ; then
  case "${target}" in
    *-*-vxworks*)
      # VxWorks uses the Dinkumware C++ library.
      noconfigdirs="$noconfigdirs target-libstdc++-v3"
      ;;
    arm*-wince-pe*)
      # the C++ libraries don't build on top of CE's C libraries
      noconfigdirs="$noconfigdirs target-libstdc++-v3"
      ;;
    avr-*-*)
      noconfigdirs="$noconfigdirs target-libstdc++-v3"
      ;;
  esac
fi
620 621 622 623 624 625 626 627 628

# Disable Fortran for some systems.
case "${target}" in
  mmix-*-*)
    # See <http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00572.html>.
    unsupported_languages="$unsupported_languages fortran"
    ;;
esac

629
# Disable Java if libffi is not supported.
630
case "${target}" in
Andreas Schwab committed
631 632
  aarch64-*-*)
    ;;
633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652
  alpha*-*-*)
    ;;
  arm*-*-*)
    ;;
  cris-*-*)
    ;;
  frv-*-*)
    ;;
  hppa*-*-linux*)
    ;;
  hppa*-*-hpux*)
    ;;
  i?86-*-*)
    ;;
  ia64*-*-*)
    ;;
  m32r*-*-*)
    ;;
  m68k-*-*)
    ;;
653
  mips*-*-rtems*)
654 655 656 657 658 659 660 661 662 663 664 665 666 667
    ;;
  mips*-*-linux*)
    ;;
  powerpc*-*-linux*)
    ;;
  powerpc-*-darwin*)
    ;;
  powerpc-*-aix* | rs6000-*-aix*)
    ;;
  powerpc-*-freebsd*)
    ;;
  powerpc64-*-freebsd*)
    ;;
  powerpc*-*-rtems*)
668
    ;;
669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685
  s390-*-* | s390x-*-*)
    ;;
  sh-*-* | sh[[34]]*-*-*)
    ;;
  sh64-*-* | sh5*-*-*)
    ;;
  sparc*-*-*)
    ;;
  x86_64-*-*)
    ;;
  *-*-*)
    unsupported_languages="$unsupported_languages java"
    ;;
esac

# Disable Java, libgcj or related libraries for some systems.
case "${target}" in
686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712
  powerpc-*-darwin*)
    ;;
  i[[3456789]]86-*-darwin*)
    ;;
  x86_64-*-darwin[[912]]*)
    ;;
  *-*-darwin*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  *-*-netware*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  *-*-rtems*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  *-*-tpf*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  *-*-uclinux*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  *-*-vxworks*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  alpha*-*-*vms*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
713
  arm-wince-pe)
714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  arm*-*-symbianelf*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  bfin-*-*)
    noconfigdirs="$noconfigdirs target-boehm-gc"
    ;;
  cris-*-* | crisv32-*-*)
    unsupported_languages="$unsupported_languages java"
    case "${target}" in
      *-*-linux*)
	;;
      *) # See PR46792 regarding target-libffi.
	noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
    esac
    ;;
  hppa*64*-*-linux*)
    # In this case, it's because the hppa64-linux target is for
    # the kernel only at this point and has no libc, and thus no
    # headers, crt*.o, etc., all of which are needed by these.
735
    unsupported_languages="$unsupported_languages java"
736
    ;;
737
  hppa*64*-*-hpux*)
738 739 740 741
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  hppa*-hp-hpux11*)
    ;;
742
  hppa*-*-hpux*)
743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773
    # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
    # build on HP-UX 10.20.
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  ia64*-*-*vms*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  i[[3456789]]86-w64-mingw*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  i[[3456789]]86-*-mingw*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  x86_64-*-mingw*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  mmix-*-*)
    noconfigdirs="$noconfigdirs target-libffi target-boehm-gc"
    ;;
  powerpc-*-aix*)
    # copied from rs6000-*-* entry
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  rs6000-*-aix*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;;
  *-*-lynxos*)
    noconfigdirs="$noconfigdirs ${libgcj}"
    ;; 
esac

774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790
# Disable libgo for some systems where it is known to not work.
# For testing, you can easily override this with --enable-libgo.
if test x$enable_libgo = x; then
    case "${target}" in
    *-*-darwin*)
	# PR 46986
	noconfigdirs="$noconfigdirs target-libgo"
	;;
    *-*-cygwin* | *-*-mingw*)
	noconfigdirs="$noconfigdirs target-libgo"
	;;
    *-*-aix*)
	noconfigdirs="$noconfigdirs target-libgo"
	;;
    esac
fi

791 792
# Default libgloss CPU subdirectory.
libgloss_dir="$target_cpu"
793

Jason Merrill committed
794
case "${target}" in
795 796 797
  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
    libgloss_dir=wince
    ;;
798 799 800
  aarch64*-*-* )
    libgloss_dir=aarch64
    ;;
801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829
  arm*-*-*)
    libgloss_dir=arm
    ;;
  cris-*-* | crisv32-*-*)
    libgloss_dir=cris
    ;;
  hppa*-*-*)
    libgloss_dir=pa
    ;;
  i[[3456789]]86-*-*)
    libgloss_dir=i386
    ;;
  m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
    libgloss_dir=m68hc11
    ;;
  m68*-*-* | fido-*-*)
    libgloss_dir=m68k
    ;;
  mips*-*-*)
    libgloss_dir=mips
    ;;
  powerpc*-*-*)
    libgloss_dir=rs6000
    ;;
  sparc*-*-*)
    libgloss_dir=sparc
    ;;
esac

830
# Disable newlib and libgloss for various target OSes.
831
case "${target}" in
832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861
  alpha*-dec-osf*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  i[[3456789]]86-*-linux*)
    # This section makes it possible to build newlib natively on linux.
    # If we are using a cross compiler then don't configure newlib.
    if test x${is_cross_compiler} != xno ; then
      noconfigdirs="$noconfigdirs target-newlib"
    fi
    noconfigdirs="$noconfigdirs target-libgloss"
    # If we are not using a cross compiler, do configure newlib.
    # Note however, that newlib will only be configured in this situation
    # if the --with-newlib option has been given, because otherwise
    # 'target-newlib' will appear in skipdirs.
    ;;
  i[[3456789]]86-*-rdos*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  sh*-*-pe|mips*-*-pe|arm-wince-pe)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  sparc-*-sunos4*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-aix*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-beos*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
862
  *-*-chorusos)
863
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
864
    ;;
865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899
  *-*-dragonfly*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-freebsd*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-lynxos*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;; 
  *-*-mingw*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-netbsd*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-netware*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-tpf*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-uclinux*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
  *-*-vxworks*)
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    ;;
esac

case "${target}" in
  *-*-chorusos)
    ;;
900
  powerpc-*-darwin*)
901
    noconfigdirs="$noconfigdirs ld gas gdb gprof"
902
    noconfigdirs="$noconfigdirs sim target-rda"
903
    ;;
904 905 906 907 908
  i[[3456789]]86-*-darwin*)
    noconfigdirs="$noconfigdirs ld gprof"
    noconfigdirs="$noconfigdirs sim target-rda"
    ;;
  x86_64-*-darwin[[912]]*)
909 910 911
    noconfigdirs="$noconfigdirs ld gas gprof"
    noconfigdirs="$noconfigdirs sim target-rda"
    ;;
912 913 914 915
  *-*-darwin*)
    noconfigdirs="$noconfigdirs ld gas gdb gprof"
    noconfigdirs="$noconfigdirs sim target-rda"
    ;;
916 917
  *-*-dragonfly*)
    ;;
918
  *-*-freebsd*)
919 920 921 922 923
    if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
	&& test -f /usr/local/include/gmp.h; then
      with_gmp=/usr/local
    fi
    ;;
924 925 926 927
  *-*-kaos*)
    # Remove unsupported stuff on all kaOS configurations.
    noconfigdirs="$noconfigdirs target-libgloss"
    ;;
928 929
  *-*-netbsd*)
    ;;
930
  *-*-netware*)
Jason Merrill committed
931
    ;;
932
  *-*-rtems*)
933
    noconfigdirs="$noconfigdirs target-libgloss"
934
    ;;
935 936
    # The tpf target doesn't support gdb yet.
  *-*-tpf*)
937
    noconfigdirs="$noconfigdirs gdb tcl tk libgui itcl"
938
    ;;
939
  *-*-uclinux*)
940
    noconfigdirs="$noconfigdirs target-rda"
941
    ;;
Jason Merrill committed
942 943
  *-*-vxworks*)
    ;;
Richard Henderson committed
944
  alpha*-dec-osf*)
945
    # ld works, but does not support shared libraries.
Jason Merrill committed
946
    # gas doesn't generate exception information.
947
    noconfigdirs="$noconfigdirs gas ld"
Jason Merrill committed
948 949
    ;;
  alpha*-*-*vms*)
950
    noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
Jason Merrill committed
951 952 953
    ;;
  alpha*-*-*)
    # newlib is not 64 bit ready
954
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
Jason Merrill committed
955
    ;;
956
  sh*-*-pe|mips*-*-pe|*arm-wince-pe)
957
    noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
958
    ;;
959
  arc-*-*|arceb-*-*)
960
    noconfigdirs="$noconfigdirs target-libgloss"
Jason Merrill committed
961
    ;;
Jason Merrill committed
962
  arm-*-pe*)
963
    noconfigdirs="$noconfigdirs target-libgloss"
Jason Merrill committed
964
    ;;
965
  arm-*-riscix*)
966
    noconfigdirs="$noconfigdirs ld target-libgloss"
967
    ;;
968 969 970 971 972 973 974
  avr-*-rtems*)
    ;;
  avr-*-*)
    if test x${with_avrlibc} != xno; then
      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
    fi
    ;;
975
  c4x-*-* | tic4x-*-*)
976
    noconfigdirs="$noconfigdirs target-libgloss"
977
    ;;
978 979
  tic54x-*-*)
    noconfigdirs="$noconfigdirs target-libgloss gdb"
980
    ;;
Jason Merrill committed
981
  d10v-*-*)
982
    noconfigdirs="$noconfigdirs target-libgloss"
Jason Merrill committed
983 984
    ;;
  d30v-*-*)
985
    noconfigdirs="$noconfigdirs gdb"
Jason Merrill committed
986
    ;;
Nick Clifton committed
987
  fr30-*-elf*)
988
    noconfigdirs="$noconfigdirs gdb"
Nick Clifton committed
989
    ;;
990 991 992
  moxie-*-*)
    noconfigdirs="$noconfigdirs gprof"
    ;;
993
  h8300*-*-*)
994
    noconfigdirs="$noconfigdirs target-libgloss"
995
    ;;
Jason Merrill committed
996
  h8500-*-*)
997
    noconfigdirs="$noconfigdirs target-libgloss"
Jason Merrill committed
998
    ;;
999 1000
  hppa1.1-*-osf* | hppa1.1-*-bsd* )
    ;;
1001
  hppa*64*-*-linux*)
1002
    ;;
1003
  hppa*-*-linux*)
1004
    ;;
Jason Merrill committed
1005
  hppa*-*-*elf* | \
1006
  hppa*-*-lites* | \
1007
  hppa*-*-openbsd* | \
1008
  hppa*64*-*-*)
Jason Merrill committed
1009
    ;;
1010
  hppa*-hp-hpux11*)
1011
    noconfigdirs="$noconfigdirs ld"
1012
    ;;
1013 1014
  hppa*-*-pro*)
    ;;
Jason Merrill committed
1015
  hppa*-*-*)
1016
    noconfigdirs="$noconfigdirs ld"
Jason Merrill committed
1017
    ;;
1018
  i960-*-*)
1019
    noconfigdirs="$noconfigdirs gdb"
1020
    ;;
Jason Merrill committed
1021 1022
  ia64*-*-elf*)
    # No gdb support yet.
1023
    noconfigdirs="$noconfigdirs readline libgui itcl gdb"
Jason Merrill committed
1024
    ;;
1025
  ia64*-**-hpux*)
1026
    # No ld support yet.
1027
    noconfigdirs="$noconfigdirs libgui itcl ld"
1028
    ;;
1029
  ia64*-*-*vms*)
1030 1031
    # No ld support yet.
    noconfigdirs="$noconfigdirs libgui itcl ld"
1032
    ;;
1033 1034 1035
  i[[3456789]]86-w64-mingw*)
    ;;
  i[[3456789]]86-*-mingw*)
1036
    target_configdirs="$target_configdirs target-winsup"
1037
    ;;
Jason Merrill committed
1038 1039
  *-*-cygwin*)
    target_configdirs="$target_configdirs target-libtermcap target-winsup"
1040
    noconfigdirs="$noconfigdirs target-libgloss"
1041
    # always build newlib if winsup directory is present.
1042
    if test -d "$srcdir/winsup/cygwin"; then
1043
      skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
1044
    elif test -d "$srcdir/newlib"; then
1045
      echo "Warning: winsup/cygwin is missing so newlib can't be built."
1046
    fi
1047
    ;;
1048
  i[[3456789]]86-*-pe)
1049
    noconfigdirs="$noconfigdirs target-libgloss"
Jason Merrill committed
1050
    ;;
1051
  i[[3456789]]86-*-sco3.2v5*)
Jason Merrill committed
1052 1053
    # The linker does not yet know about weak symbols in COFF,
    # and is not configured to handle mixed ELF and COFF.
1054
    noconfigdirs="$noconfigdirs ld target-libgloss"
Jason Merrill committed
1055
    ;;
1056
  i[[3456789]]86-*-sco*)
1057
    noconfigdirs="$noconfigdirs gprof target-libgloss"
Jason Merrill committed
1058
    ;;
1059
  i[[3456789]]86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
1060
    noconfigdirs="$noconfigdirs target-libgloss"
Jason Merrill committed
1061
    ;;
1062
  i[[3456789]]86-*-sysv4*)
1063
    noconfigdirs="$noconfigdirs target-libgloss"
Jason Merrill committed
1064
    ;;
1065
  i[[3456789]]86-*-beos*)
1066
    noconfigdirs="$noconfigdirs gdb"
1067
    ;;
Paolo Bonzini committed
1068
  i[[3456789]]86-*-rdos*)
1069
    noconfigdirs="$noconfigdirs gdb"
1070
    ;;
1071
  mmix-*-*)
1072
    noconfigdirs="$noconfigdirs gdb"
1073
    ;;
1074
  mt-*-*)
1075 1076
    noconfigdirs="$noconfigdirs sim"
    ;;
Jason Merrill committed
1077 1078
  powerpc-*-aix*)
    # copied from rs6000-*-* entry
1079
    noconfigdirs="$noconfigdirs gprof"
Jason Merrill committed
1080
    ;;
1081
  powerpc*-*-winnt* | powerpc*-*-pe*)
Jason Merrill committed
1082
    target_configdirs="$target_configdirs target-winsup"
1083
    noconfigdirs="$noconfigdirs gdb tcl tk target-libgloss itcl"
Jason Merrill committed
1084 1085 1086 1087 1088
    # always build newlib.
    skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
    ;;
    # This is temporary until we can link against shared libraries
  powerpcle-*-solaris*)
1089
    noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
Jason Merrill committed
1090
    ;;
1091
  powerpc-*-beos*)
1092
    noconfigdirs="$noconfigdirs gdb"
Jason Merrill committed
1093
    ;;
Jason Merrill committed
1094
  rs6000-*-lynxos*)
1095
    noconfigdirs="$noconfigdirs gprof"
Jason Merrill committed
1096 1097
    ;;
  rs6000-*-aix*)
1098
    noconfigdirs="$noconfigdirs gprof"
Jason Merrill committed
1099 1100
    ;;
  rs6000-*-*)
1101
    noconfigdirs="$noconfigdirs gprof"
Jason Merrill committed
1102 1103
    ;;
  m68k-apollo-*)
1104
    noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
Jason Merrill committed
1105
    ;;
1106
  microblaze*)
1107
    noconfigdirs="$noconfigdirs gprof"
1108
    ;;
1109
  mips*-sde-elf* | mips*-mti-elf*)
1110 1111 1112 1113
    if test x$with_newlib = xyes; then
      noconfigdirs="$noconfigdirs gprof"
    fi
    ;;
Jason Merrill committed
1114
  mips*-*-irix5*)
1115
    noconfigdirs="$noconfigdirs gprof target-libgloss"
Jason Merrill committed
1116 1117
    ;;
  mips*-*-irix6*)
1118
    noconfigdirs="$noconfigdirs gprof target-libgloss"
Jason Merrill committed
1119 1120
    ;;
  mips*-*-bsd*)
1121
    noconfigdirs="$noconfigdirs ld gas gprof target-libgloss"
Jason Merrill committed
1122
    ;;
1123 1124
  mips*-*-linux*)
    ;;
1125 1126 1127 1128
  mips*-*-ultrix* | mips*-*-osf* | mips*-*-ecoff* | mips*-*-pe* \
  | mips*-*-irix* | mips*-*-lnews* | mips*-*-riscos*)
    noconfigdirs="$noconfigdirs ld gas gprof"
    ;;
Jason Merrill committed
1129
  mips*-*-*)
1130
    noconfigdirs="$noconfigdirs gprof"
Jason Merrill committed
1131
    ;;
1132
  sh-*-* | sh64-*-*)
1133 1134
    case "${target}" in
      sh*-*-elf)
1135
         ;;
1136
      *)
1137
         noconfigdirs="$noconfigdirs target-libgloss" ;;
1138
    esac
Jason Merrill committed
1139 1140
    ;;
  sparc-*-sunos4*)
1141
    if test x${is_cross_compiler} = xno ; then
Jason Merrill committed
1142 1143 1144
           use_gnu_ld=no
    fi
    ;;
1145
  tic6x-*-*)
1146
    noconfigdirs="$noconfigdirs sim"
1147
    ;;
1148 1149 1150
  tilepro-*-* | tilegx-*-*)
    noconfigdirs="$noconfigdirs sim"
    ;;
Jason Merrill committed
1151
  v810-*-*)
1152
    noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
Jason Merrill committed
1153 1154
    ;;
  vax-*-*)
1155
    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
Jason Merrill committed
1156 1157 1158 1159 1160 1161 1162 1163
    ;;
esac

# If we aren't building newlib, then don't build libgloss, since libgloss
# depends upon some newlib header files.
case "${noconfigdirs}" in
  *target-libgloss*) ;;
  *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
1164
esac
Jason Merrill committed
1165

1166
# Work in distributions that contain no compiler tools, like Autoconf.
1167
host_makefile_frag=/dev/null
1168 1169
if test -d ${srcdir}/config ; then
case "${host}" in
1170
  i[[3456789]]86-*-msdosdjgpp*)
1171 1172 1173
    host_makefile_frag="config/mh-djgpp"
    ;;
  *-cygwin*)
1174
    ACX_CHECK_CYGWIN_CAT_WORKS
1175 1176
    host_makefile_frag="config/mh-cygwin"
    ;;
1177
  *-mingw*)
1178
    host_makefile_frag="config/mh-mingw"
1179
    ;;
1180 1181
  hppa*-hp-hpux10*)
    host_makefile_frag="config/mh-pa-hpux10"
1182
    ;;
1183
  hppa*-hp-hpux*)
1184 1185 1186 1187 1188
    host_makefile_frag="config/mh-pa"
    ;;
  hppa*-*)	
    host_makefile_frag="config/mh-pa"
    ;;
1189 1190
  *-*-darwin*)
    host_makefile_frag="config/mh-darwin"
1191
    ;;
1192 1193 1194 1195 1196 1197
  powerpc-*-aix*)
    host_makefile_frag="config/mh-ppc-aix"
    ;;
  rs6000-*-aix*)
    host_makefile_frag="config/mh-ppc-aix"
    ;;
1198 1199 1200
esac
fi

Paolo Bonzini committed
1201
if test "${build}" != "${host}" ; then
1202 1203
  AR_FOR_BUILD=${AR_FOR_BUILD-ar}
  AS_FOR_BUILD=${AS_FOR_BUILD-as}
Paolo Bonzini committed
1204
  CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
1205 1206 1207
  CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
  GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
  GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
1208
  GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
1209 1210 1211 1212 1213 1214
  DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
  LD_FOR_BUILD=${LD_FOR_BUILD-ld}
  NM_FOR_BUILD=${NM_FOR_BUILD-nm}
  RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
  WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
  WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
Paolo Bonzini committed
1215
else
1216 1217
  AR_FOR_BUILD="\$(AR)"
  AS_FOR_BUILD="\$(AS)"
Paolo Bonzini committed
1218
  CC_FOR_BUILD="\$(CC)"
1219 1220 1221
  CXX_FOR_BUILD="\$(CXX)"
  GCJ_FOR_BUILD="\$(GCJ)"
  GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
1222
  GOC_FOR_BUILD="\$(GOC)"
1223 1224 1225 1226 1227 1228
  DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
  LD_FOR_BUILD="\$(LD)"
  NM_FOR_BUILD="\$(NM)"
  RANLIB_FOR_BUILD="\$(RANLIB)"
  WINDRES_FOR_BUILD="\$(WINDRES)"
  WINDMC_FOR_BUILD="\$(WINDMC)"
1229
fi
Paolo Bonzini committed
1230

1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250
AC_PROG_CC
AC_PROG_CXX

# We must set the default linker to the linker used by gcc for the correct
# operation of libtool.  If LD is not defined and we are using gcc, try to
# set the LD default to the ld used by gcc.
if test -z "$LD"; then
  if test "$GCC" = yes; then
    case $build in
    *-*-mingw*)
      gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
    *)
      gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
    esac
    case $gcc_prog_ld in
    # Accept absolute paths.
    [[\\/]* | [A-Za-z]:[\\/]*)]
      LD="$gcc_prog_ld" ;;
    esac
  fi
Paolo Bonzini committed
1251 1252
fi

1253 1254 1255 1256 1257 1258 1259 1260
# Check whether -static-libstdc++ -static-libgcc is supported.
have_static_libs=no
if test "$GCC" = yes; then
  saved_LDFLAGS="$LDFLAGS"

  LDFLAGS="$LDFLAGS -static-libstdc++ -static-libgcc"
  AC_MSG_CHECKING([whether g++ accepts -static-libstdc++ -static-libgcc])
  AC_LANG_PUSH(C++)
1261 1262 1263 1264 1265
  AC_LINK_IFELSE([
#if (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
#error -static-libstdc++ not implemented
#endif
int main() {}],
1266 1267 1268 1269 1270 1271 1272
    [AC_MSG_RESULT([yes]); have_static_libs=yes],
    [AC_MSG_RESULT([no])])
  AC_LANG_POP(C++)

  LDFLAGS="$saved_LDFLAGS"
fi

Paolo Bonzini committed
1273
ACX_PROG_GNAT
1274
ACX_PROG_CMP_IGNORE_INITIAL
Paolo Bonzini committed
1275

1276 1277 1278 1279 1280 1281
AC_ARG_ENABLE([bootstrap],
[AS_HELP_STRING([--enable-bootstrap],
		[enable bootstrapping @<:@yes if native build@:>@])],,
enable_bootstrap=default)

# Issue errors and warnings for invalid/strange bootstrap combinations.
1282 1283 1284 1285 1286
if test -r $srcdir/gcc/configure; then
  have_compiler=yes
else
  have_compiler=no
fi
1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318

case "$have_compiler:$host:$target:$enable_bootstrap" in
  *:*:*:no) ;;

  # Default behavior.  Enable bootstrap if we have a compiler
  # and we are in a native configuration.
  yes:$build:$build:default)
    enable_bootstrap=yes ;;

  *:*:*:default)
    enable_bootstrap=no ;;

  # We have a compiler and we are in a native configuration, bootstrap is ok
  yes:$build:$build:yes)
    ;;

  # Other configurations, but we have a compiler.  Assume the user knows
  # what he's doing.
  yes:*:*:yes)
    AC_MSG_WARN([trying to bootstrap a cross compiler])
    ;;

  # No compiler: if they passed --enable-bootstrap explicitly, fail
  no:*:*:yes)
    AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;

  # Fail if wrong command line
  *)
    AC_MSG_ERROR([invalid option for --enable-bootstrap])
    ;;
esac

1319 1320 1321
# Used for setting $lt_cv_objdir
_LT_CHECK_OBJDIR

1322
# Check for GMP, MPFR and MPC
1323
gmplibs="-lmpc -lmpfr -lgmp"
1324
gmpinc=
Paolo Bonzini committed
1325
have_gmp=no
1326 1327 1328

# Specify a location for mpc
# check for this first so it ends up on the link line before mpfr.
1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339
AC_ARG_WITH(mpc,
[AS_HELP_STRING([--with-mpc=PATH],
		[specify prefix directory for installed MPC package.
		 Equivalent to --with-mpc-include=PATH/include
		 plus --with-mpc-lib=PATH/lib])])
AC_ARG_WITH(mpc-include,
[AS_HELP_STRING([--with-mpc-include=PATH],
		[specify directory for installed MPC include files])])
AC_ARG_WITH(mpc-lib,
[AS_HELP_STRING([--with-mpc-lib=PATH],
		[specify directory for the installed MPC library])])
1340 1341

if test "x$with_mpc" != x; then
1342 1343
  gmplibs="-L$with_mpc/lib $gmplibs"
  gmpinc="-I$with_mpc/include $gmpinc"
1344 1345
fi
if test "x$with_mpc_include" != x; then
1346
  gmpinc="-I$with_mpc_include $gmpinc"
1347 1348
fi
if test "x$with_mpc_lib" != x; then
1349
  gmplibs="-L$with_mpc_lib $gmplibs"
1350 1351
fi
if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
1352
  gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs"
1353
  gmpinc='-I$$s/mpc/src '"$gmpinc"
1354 1355 1356 1357
  # Do not test the mpc version.  Assume that it is sufficient, since
  # it is in the source tree, and the library has not been built yet
  # but it would be included on the link line in the version check below
  # hence making the test fail.
1358
  have_gmp=yes
1359
fi
Paolo Bonzini committed
1360

1361 1362
# Specify a location for mpfr
# check for this first so it ends up on the link line before gmp.
1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378
AC_ARG_WITH(mpfr-dir,
[AS_HELP_STRING([--with-mpfr-dir=PATH], [this option has been REMOVED])],
[AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH])])

AC_ARG_WITH(mpfr,
[AS_HELP_STRING([--with-mpfr=PATH],
		[specify prefix directory for installed MPFR package.
		 Equivalent to --with-mpfr-include=PATH/include
		 plus --with-mpfr-lib=PATH/lib])])
AC_ARG_WITH(mpfr-include,
[AS_HELP_STRING([--with-mpfr-include=PATH],
		[specify directory for installed MPFR include files])])
AC_ARG_WITH(mpfr-lib,
[AS_HELP_STRING([--with-mpfr-lib=PATH],
		[specify directory for the installed MPFR library])])
1379 1380 1381

if test "x$with_mpfr" != x; then
  gmplibs="-L$with_mpfr/lib $gmplibs"
1382
  gmpinc="-I$with_mpfr/include $gmpinc"
1383
fi
1384
if test "x$with_mpfr_include" != x; then
1385
  gmpinc="-I$with_mpfr_include $gmpinc"
1386 1387 1388 1389
fi
if test "x$with_mpfr_lib" != x; then
  gmplibs="-L$with_mpfr_lib $gmplibs"
fi
Paolo Bonzini committed
1390
if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
1391 1392 1393 1394 1395 1396 1397 1398 1399 1400
  # MPFR v3.1.0 moved the sources into a src sub-directory.
  if test -d ${srcdir}/mpfr/src; then
    gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs"
    gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc"
    extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir"
  else
    gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
    gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
    extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
  fi
Paolo Bonzini committed
1401 1402 1403 1404 1405 1406
  # Do not test the mpfr version.  Assume that it is sufficient, since
  # it is in the source tree, and the library has not been built yet
  # but it would be included on the link line in the version check below
  # hence making the test fail.
  have_gmp=yes
fi
1407

1408
# Specify a location for gmp
1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424
AC_ARG_WITH(gmp-dir,
[AS_HELP_STRING([--with-gmp-dir=PATH], [this option has been REMOVED])],
[AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH])])

AC_ARG_WITH(gmp,
[AS_HELP_STRING([--with-gmp=PATH],
		[specify prefix directory for the installed GMP package.
		 Equivalent to --with-gmp-include=PATH/include
		 plus --with-gmp-lib=PATH/lib])])
AC_ARG_WITH(gmp-include,
[AS_HELP_STRING([--with-gmp-include=PATH],
		[specify directory for installed GMP include files])])
AC_ARG_WITH(gmp-lib,
[AS_HELP_STRING([--with-gmp-lib=PATH],
		[specify directory for the installed GMP library])])
1425 1426


1427 1428 1429
if test "x$with_gmp" != x; then
  gmplibs="-L$with_gmp/lib $gmplibs"
  gmpinc="-I$with_gmp/include $gmpinc"
1430
fi
1431 1432 1433 1434 1435 1436
if test "x$with_gmp_include" != x; then
  gmpinc="-I$with_gmp_include $gmpinc"
fi
if test "x$with_gmp_lib" != x; then
  gmplibs="-L$with_gmp_lib $gmplibs"
fi
Paolo Bonzini committed
1437
if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
1438
  gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
Paolo Bonzini committed
1439
  gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
1440
  extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1441
  extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
1442
  extra_isl_gmp_configure_flags='--with-gmp-builddir=$$r/$(HOST_SUBDIR)/gmp'
Paolo Bonzini committed
1443 1444 1445 1446 1447 1448
  # Do not test the gmp version.  Assume that it is sufficient, since
  # it is in the source tree, and the library has not been built yet
  # but it would be included on the link line in the version check below
  # hence making the test fail.
  have_gmp=yes
fi
1449

1450
if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
Paolo Bonzini committed
1451 1452 1453
  have_gmp=yes
  saved_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS $gmpinc"
1454 1455
  # Check for the recommended and required versions of GMP.
  AC_MSG_CHECKING([for the correct version of gmp.h])
Paolo Bonzini committed
1456
  AC_TRY_COMPILE([#include "gmp.h"],[
1457 1458
  #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
  #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
1459
  #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,3)
1460
  choke me
Paolo Bonzini committed
1461
  #endif
1462
  ], [AC_TRY_COMPILE([#include <gmp.h>],[
1463 1464 1465 1466 1467
  #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
  #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
  #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
  choke me
  #endif
1468
  ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1469
   [AC_MSG_RESULT([no]); have_gmp=no])
Paolo Bonzini committed
1470

1471
  # If we have GMP, check the MPFR version.
Paolo Bonzini committed
1472
  if test x"$have_gmp" = xyes; then
1473 1474
    # Check for the recommended and required versions of MPFR.
    AC_MSG_CHECKING([for the correct version of mpfr.h])
1475
    AC_TRY_COMPILE([#include <gmp.h>
Paolo Bonzini committed
1476
    #include <mpfr.h>],[
1477
    #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,0)
Paolo Bonzini committed
1478 1479
    choke me
    #endif
1480
    ], [AC_TRY_COMPILE([#include <gmp.h>
1481
    #include <mpfr.h>],[
1482
    #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2)
1483 1484
    choke me
    #endif
1485
    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1486 1487 1488 1489
     [AC_MSG_RESULT([no]); have_gmp=no])
  fi

  # Check for the MPC header version.
1490
  if test x"$have_gmp" = xyes ; then
1491
    # Check for the recommended and required versions of MPC.
1492 1493
    AC_MSG_CHECKING([for the correct version of mpc.h])
    AC_TRY_COMPILE([#include <mpc.h>],[
1494
    #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
1495 1496
    choke me
    #endif
1497
    ], [AC_TRY_COMPILE([#include <mpc.h>],[
1498 1499 1500
    #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
    choke me
    #endif
1501
    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
1502
     [AC_MSG_RESULT([no]); have_gmp=no])
1503 1504 1505 1506 1507 1508
  fi

  # Now check the MPFR library.
  if test x"$have_gmp" = xyes; then
    saved_LIBS="$LIBS"
    LIBS="$LIBS $gmplibs"
1509 1510
    AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries])
    AC_TRY_LINK([#include <mpc.h>],[
Matt Kraai committed
1511 1512
    mpfr_t n;
    mpfr_t x;
1513
    mpc_t c;
Paolo Bonzini committed
1514
    int t;
Matt Kraai committed
1515 1516
    mpfr_init (n);
    mpfr_init (x);
Paolo Bonzini committed
1517 1518 1519
    mpfr_atan2 (n, n, x, GMP_RNDN);
    mpfr_erfc (n, x, GMP_RNDN);
    mpfr_subnormalize (x, t, GMP_RNDN);
1520 1521 1522 1523 1524 1525 1526 1527
    mpfr_clear(n);
    mpfr_clear(x);
    mpc_init2 (c, 53);
    mpc_set_ui_ui (c, 1, 1, MPC_RNDNN);
    mpc_cosh (c, c, MPC_RNDNN);
    mpc_pow (c, c, c, MPC_RNDNN);
    mpc_acosh (c, c, MPC_RNDNN);
    mpc_clear (c);
1528 1529
    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
    LIBS="$saved_LIBS"
Paolo Bonzini committed
1530
  fi
1531

Paolo Bonzini committed
1532
  CFLAGS="$saved_CFLAGS"
1533

1534 1535
# The library versions listed in the error message below should match
# the HARD-minimums enforced above.
Paolo Bonzini committed
1536
  if test x$have_gmp != xyes; then
1537
    AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
1538 1539 1540 1541 1542 1543 1544 1545
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations.  Source code for these libraries can be found at
their respective hosting sites as well as at
ftp://gcc.gnu.org/pub/gcc/infrastructure/.  See also
http://gcc.gnu.org/install/prerequisites.html for additional info.  If
you obtained GMP, MPFR and/or MPC from a vendor distribution package,
make sure that you have installed both the libraries and the header
files.  They may be located in separate packages.])
Paolo Bonzini committed
1546
  fi
1547 1548
fi

1549
# Flags needed for both GMP, MPFR and/or MPC.
1550 1551
AC_SUBST(gmplibs)
AC_SUBST(gmpinc)
1552
AC_SUBST(extra_mpfr_configure_flags)
1553 1554
AC_SUBST(extra_mpc_gmp_configure_flags)
AC_SUBST(extra_mpc_mpfr_configure_flags)
1555
AC_SUBST(extra_isl_gmp_configure_flags)
1556

1557
# Allow host libstdc++ to be specified for static linking with PPL.
1558 1559 1560 1561
AC_ARG_WITH(host-libstdcxx,
[AS_HELP_STRING([--with-host-libstdcxx=L],
		[use linker arguments L to link with libstdc++
		 when linking with PPL])])
1562 1563 1564 1565 1566 1567

case $with_host_libstdcxx in
  no|yes)
    AC_MSG_ERROR([-with-host-libstdcxx needs an argument])
    ;;
esac
1568

1569 1570
# Libraries to use for stage1 or when not bootstrapping.
AC_ARG_WITH(stage1-libs,
1571
[AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])],
1572 1573 1574 1575 1576 1577 1578 1579
[if test "$withval" = "no" -o "$withval" = "yes"; then
   stage1_libs=
 else
   stage1_libs=$withval
 fi],
[stage1_libs=$with_host_libstdcxx])
AC_SUBST(stage1_libs)

1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596
# Linker flags to use for stage1 or when not bootstrapping.
AC_ARG_WITH(stage1-ldflags,
[AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
[if test "$withval" = "no" -o "$withval" = "yes"; then
   stage1_ldflags=
 else
   stage1_ldflags=$withval
 fi],
[stage1_ldflags=
 # In stage 1, default to linking libstdc++ and libgcc statically with GCC
 # if supported.  But if the user explicitly specified the libraries to use,
 # trust that they are doing what they want.
 if test "$stage1_libs" = "" -a "$have_static_libs" = yes; then
   stage1_ldflags="-static-libstdc++ -static-libgcc"
 fi])
AC_SUBST(stage1_ldflags)

1597 1598 1599
# Libraries to use for stage2 and later builds.  This defaults to the
# argument passed to --with-host-libstdcxx.
AC_ARG_WITH(boot-libs,
1600
[AS_HELP_STRING([--with-boot-libs=LIBS], [libraries for stage2 and later])],
1601 1602 1603
[if test "$withval" = "no" -o "$withval" = "yes"; then
   poststage1_libs=
 else
1604
   poststage1_libs=$withval
1605 1606 1607 1608
 fi],
[poststage1_libs=$with_host_libstdcxx])
AC_SUBST(poststage1_libs)

1609 1610
# Linker flags to use for stage2 and later builds.
AC_ARG_WITH(boot-ldflags,
1611 1612
[AS_HELP_STRING([--with-boot-ldflags=FLAGS],
		[linker flags for stage2 and later])],
1613 1614 1615 1616 1617 1618
[if test "$withval" = "no" -o "$withval" = "yes"; then
   poststage1_ldflags=
 else
   poststage1_ldflags=$withval
 fi],
[poststage1_ldflags=
1619 1620 1621 1622
 # In stages 2 and 3, default to linking libstdc++ and libgcc
 # statically.  But if the user explicitly specified the libraries to
 # use, trust that they are doing what they want.
 if test "$poststage1_libs" = ""; then
1623 1624 1625 1626
   poststage1_ldflags="-static-libstdc++ -static-libgcc"
 fi])
AC_SUBST(poststage1_ldflags)

1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651
# GCC GRAPHITE dependences, ISL and CLOOG which in turn requires ISL.
# Basic setup is inlined here, actual checks are in config/cloog.m4 and
# config/isl.m4

AC_ARG_WITH(cloog,
  [AS_HELP_STRING(
    [--with-cloog=PATH],
    [Specify prefix directory for the installed CLooG-ISL package.
     Equivalent to --with-cloog-include=PATH/include
     plus --with-cloog-lib=PATH/lib])])
AC_ARG_WITH(isl,
  [AS_HELP_STRING(
   [--with-isl=PATH],
   [Specify prefix directory for the installed ISL package.
    Equivalent to --with-isl-include=PATH/include
    plus --with-isl-lib=PATH/lib])])

# Treat either --without-cloog or --without-isl as a request to disable
# GRAPHITE support and skip all following checks.
if test "x$with_isl" != "xno" &&
   test "x$with_cloog" != "xno"; then
  # Check for ISL
  dnl Provide configure switches and initialize islinc & isllibs
  dnl with user input.
  ISL_INIT_FLAGS
1652
  dnl The versions of ISL that work for Graphite
1653
  ISL_CHECK_VERSION(0,10)
1654 1655
  if test "${gcc_cv_isl}" = no ; then
    ISL_CHECK_VERSION(0,11)
1656 1657 1658
    if test "${gcc_cv_isl}" = no ; then
      ISL_CHECK_VERSION(0,12)
    fi
1659
  fi
1660 1661 1662
  dnl Only execute fail-action, if ISL has been requested.
  ISL_IF_FAILED([
    AC_MSG_ERROR([Unable to find a usable ISL.  See config.log for details.])])
1663

1664 1665 1666 1667 1668
  if test "x$gcc_cv_isl" != "xno"; then
    # Check for CLOOG
    dnl Provide configure switches and initialize clooginc & clooglibs
    dnl with user input.
    CLOOG_INIT_FLAGS
1669
    dnl The versions of CLooG that work for Graphite.
1670
    CLOOG_CHECK_VERSION(0,17,0)
1671 1672 1673
    if test "${gcc_cv_cloog}" = no ; then
      CLOOG_CHECK_VERSION(0,18,0)
    fi
1674 1675 1676 1677 1678

    dnl Only execute fail-action, if CLooG has been requested.
    CLOOG_IF_FAILED([
      AC_MSG_ERROR([Unable to find a usable CLooG.  See config.log for details.])])
  fi
1679 1680
fi

1681 1682
# If either the ISL or the CLooG check failed, disable builds of in-tree
# variants of both
1683 1684 1685 1686
if test "x$with_isl" = xno ||
   test "x$with_cloog" = xno ||
   test "x$gcc_cv_cloog" = xno ||
   test "x$gcc_cv_isl" = xno; then
1687
  noconfigdirs="$noconfigdirs cloog isl"
1688 1689 1690
  islinc=
  clooginc=
  clooglibs=
1691 1692
fi

1693 1694 1695 1696 1697
AC_SUBST(islinc)
AC_SUBST(clooglibs)
AC_SUBST(clooginc)


1698 1699
# Check for LTO support.
AC_ARG_ENABLE(lto,
1700
[AS_HELP_STRING([--enable-lto], [enable link time optimization support])],
1701 1702 1703
enable_lto=$enableval,
enable_lto=yes; default_enable_lto=yes)

1704 1705 1706
ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
  build_lto_plugin=yes
],[if test x"$default_enable_lto" = x"yes" ; then
1707
    case $target in
1708
      *-apple-darwin9* | *-cygwin* | *-mingw*) ;;
1709
      # On other non-ELF platforms, LTO has yet to be validated.
1710 1711
      *) enable_lto=no ;;
    esac
1712
  else
1713 1714
  # Apart from ELF platforms, only Windows and Darwin support LTO so far.
  # It would also be nice to check the binutils support, but we don't
1715 1716 1717 1718
  # have gcc_GAS_CHECK_FEATURE available here.  For now, we'll just
  # warn during gcc/ subconfigure; unless you're bootstrapping with
  # -flto it won't be needed until after installation anyway.
    case $target in
1719
      *-cygwin* | *-mingw* | *-apple-darwin*) ;;
1720 1721 1722 1723 1724 1725
      *) if test x"$enable_lto" = x"yes"; then
	AC_MSG_ERROR([LTO support is not enabled for this target.])
        fi
      ;;
    esac
  fi
1726
  # Among non-ELF, only Windows platforms support the lto-plugin so far.
1727
  # Build it unless LTO was explicitly disabled.
1728
  case $target in
1729
    *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;;
1730 1731
    *) ;;
  esac
1732
])
1733

1734

1735
# By default, C and C++ are the only stage 1 languages.
1736
stage1_languages=,c,
1737

1738
# Target libraries that we bootstrap.
1739
bootstrap_target_libs=,target-libgcc,
1740

Paolo Bonzini committed
1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763
# Figure out what language subdirectories are present.
# Look if the user specified --enable-languages="..."; if not, use
# the environment variable $LANGUAGES if defined. $LANGUAGES might
# go away some day.
# NB:  embedded tabs in this IF block -- do not untabify
if test -d ${srcdir}/gcc; then
  if test x"${enable_languages+set}" != xset; then
    if test x"${LANGUAGES+set}" = xset; then
      enable_languages="${LANGUAGES}"
        echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
    else
      enable_languages=all
    fi
  else
    if test x"${enable_languages}" = x ||
       test x"${enable_languages}" = xyes;
       then
      echo configure.in: --enable-languages needs at least one language argument 1>&2
      exit 1
    fi
  fi
  enable_languages=`echo "${enable_languages}" | sed -e 's/[[ 	,]][[ 	,]]*/,/g' -e 's/,$//'`

1764 1765 1766 1767 1768 1769 1770 1771 1772
  # 'f95' is the old name for the 'fortran' language. We issue a warning
  # and make the substitution.
  case ,${enable_languages}, in
    *,f95,*)
      echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
      enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
      ;;
  esac

1773 1774 1775 1776
  # If bootstrapping, C++ must be enabled.
  case ",$enable_languages,:$enable_bootstrap" in
    *,c++,*:*) ;;
    *:yes)
1777 1778 1779
      if test -f ${srcdir}/gcc/cp/config-lang.in; then
        enable_languages="${enable_languages},c++"
      else
1780
        AC_MSG_ERROR([bootstrapping requires c++ sources])
1781 1782 1783 1784
      fi
      ;;
  esac

Paolo Bonzini committed
1785 1786 1787 1788 1789 1790 1791 1792 1793 1794
  # First scan to see if an enabled language requires some other language.
  # We assume that a given config-lang.in will list all the language
  # front ends it requires, even if some are required indirectly.
  for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
    case ${lang_frag} in
      ..) ;;
      # The odd quoting in the next line works around
      # an apparent bug in bash 1.12 on linux.
      ${srcdir}/gcc/[[*]]/config-lang.in) ;;
      *)
1795 1796
        # From the config-lang.in, get $language, $lang_requires, and
        # $lang_requires_boot_languages.
Paolo Bonzini committed
1797 1798
        language=
        lang_requires=
1799
        lang_requires_boot_languages=
Paolo Bonzini committed
1800
        . ${lang_frag}
1801
        for other in ${lang_requires} ${lang_requires_boot_languages}; do
Paolo Bonzini committed
1802 1803 1804 1805 1806 1807 1808 1809 1810
          case ,${enable_languages}, in
	    *,$other,*) ;;
	    *,all,*) ;;
	    *,$language,*)
	      echo " \`$other' language required by \`$language'; enabling" 1>&2
	      enable_languages="${enable_languages},${other}"
	      ;;
	  esac
        done
1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826
	for other in ${lang_requires_boot_languages} ; do
	  if test "$other" != "c"; then
	    case ,${enable_stage1_languages}, in
	      *,$other,*) ;;
	      *,all,*) ;;
	      *)
		case ,${enable_languages}, in
		  *,$language,*)
		    echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
		    enable_stage1_languages="$enable_stage1_languages,${other}"
		    ;;
		esac
		;;
	    esac
          fi
        done
Paolo Bonzini committed
1827 1828 1829 1830
        ;;
    esac
  done

1831
  new_enable_languages=,c,
1832 1833 1834 1835

  # If LTO is enabled, add the LTO front end.
  extra_host_libiberty_configure_flags=
  if test "$enable_lto" = "yes" ; then
1836 1837 1838 1839
    case ,${enable_languages}, in
      *,lto,*) ;;
      *) enable_languages="${enable_languages},lto" ;;
    esac
1840
    if test "${build_lto_plugin}" = "yes" ; then
1841 1842 1843 1844 1845 1846
      configdirs="$configdirs lto-plugin"
      extra_host_libiberty_configure_flags=--enable-shared
    fi
  fi
  AC_SUBST(extra_host_libiberty_configure_flags)

Paolo Bonzini committed
1847
  missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
1848
  potential_languages=,c,
Paolo Bonzini committed
1849

1850 1851 1852
  enabled_target_libs=
  disabled_target_libs=

Paolo Bonzini committed
1853 1854 1855 1856 1857 1858 1859 1860
  for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
    case ${lang_frag} in
      ..) ;;
      # The odd quoting in the next line works around
      # an apparent bug in bash 1.12 on linux.
      ${srcdir}/gcc/[[*]]/config-lang.in) ;;
      *)
        # From the config-lang.in, get $language, $target_libs, 
1861
        # $lang_dirs, $boot_language, and $build_by_default
Paolo Bonzini committed
1862 1863 1864
        language=
        target_libs=
        lang_dirs=
1865
        subdir_requires=
1866 1867
        boot_language=no
        build_by_default=yes
Paolo Bonzini committed
1868
        . ${lang_frag}
1869 1870 1871 1872 1873
        if test x${language} = x; then
          echo "${lang_frag} doesn't set \$language." 1>&2
          exit 1
        fi

1874
	if test "$language" = "c++"; then
1875
	  boot_language=yes
1876 1877
	fi

1878
        add_this_lang=no
1879 1880
        case ,${enable_languages}, in
          *,${language},*)
1881 1882 1883 1884 1885
            # Language was explicitly selected; include it
	    # unless it is C, which is enabled by default.
	    if test "$language" != "c"; then
	      add_this_lang=yes
	    fi
Paolo Bonzini committed
1886
            ;;
1887 1888
          *,all,*)
            # 'all' was selected, select it if it is a default language
1889 1890 1891
	    if test "$language" != "c"; then
	      add_this_lang=${build_by_default}
	    fi
Paolo Bonzini committed
1892 1893
            ;;
        esac
1894

1895
        # Disable languages that need other directories if these aren't available.
1896
	for i in $subdir_requires; do
1897
	  test -f "$srcdir/gcc/$i/config-lang.in" && continue
1898 1899 1900 1901 1902 1903 1904
	  case ,${enable_languages}, in
            *,${language},*)
              # Specifically requested language; tell them.
              AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
              ;;
            *)
              # Silently disable.
1905
              add_this_lang=unsupported
1906 1907 1908 1909
              ;;
          esac
	done

1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921
        # Disable Ada if no preexisting GNAT is available.
        case ,${enable_languages},:${language}:${have_gnat} in
          *,${language},*:ada:no)
            # Specifically requested language; tell them.
            AC_MSG_ERROR([GNAT is required to build $language])
            ;;
          *:ada:no)
            # Silently disable.
            add_this_lang=unsupported
            ;;
        esac

1922 1923 1924
	# Disable a language that is unsupported by the target.
	case " $unsupported_languages " in
	  *" $language "*)
1925
	    add_this_lang=unsupported
1926 1927 1928
	    ;;
	esac

1929
	case $add_this_lang in
1930
	  unsupported)
Paolo Bonzini committed
1931
            # Remove language-dependent dirs.
1932 1933
	    disabled_target_libs="$disabled_target_libs $target_libs"
	    noconfigdirs="$noconfigdirs $lang_dirs"
1934
	    ;;
1935 1936
	  no)
            # Remove language-dependent dirs; still show language as supported.
1937 1938
	    disabled_target_libs="$disabled_target_libs $target_libs"
	    noconfigdirs="$noconfigdirs $lang_dirs"
1939 1940 1941 1942 1943
            potential_languages="${potential_languages}${language},"
	    ;;
          yes)
	    new_enable_languages="${new_enable_languages}${language},"
            potential_languages="${potential_languages}${language},"
1944
	    missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
1945
	    enabled_target_libs="$enabled_target_libs $target_libs"
1946 1947
	    case "${boot_language}:,$enable_stage1_languages," in
	      yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
1948
		# Add to (comma-separated) list of stage 1 languages.
1949 1950 1951 1952
		case ",$stage1_languages," in
		  *,$language,* | ,yes, | ,all,) ;;
		  *) stage1_languages="${stage1_languages}${language}," ;;
		esac
1953 1954
		# We need to bootstrap any supporting libraries.
		bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
1955 1956 1957
		;;
	    esac
	    ;;
Paolo Bonzini committed
1958 1959 1960 1961 1962
        esac
        ;;
    esac
  done

1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973
  # Add target libraries which are only needed for disabled languages
  # to noconfigdirs.
  if test -n "$disabled_target_libs"; then
    for dir in $disabled_target_libs; do
      case " $enabled_target_libs " in
      *" ${dir} "*) ;;
      *) noconfigdirs="$noconfigdirs $dir" ;;
      esac
    done
  fi

1974
  AC_ARG_ENABLE(stage1-languages,
1975 1976 1977
  [AS_HELP_STRING([[--enable-stage1-languages[=all]]],
		  [choose additional languages to build during
		  stage1.  Mostly useful for compiler development])],
1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008
  [case ,${enable_stage1_languages}, in
    ,no,|,,)
      # Set it to something that will have no effect in the loop below
      enable_stage1_languages=c ;;
    ,yes,)
      enable_stage1_languages=`echo $new_enable_languages | \
	sed -e "s/^,//" -e "s/,$//" ` ;;
    *,all,*)
      enable_stage1_languages=`echo ,$enable_stage1_languages, | \
	sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
  esac

  # Add "good" languages from enable_stage1_languages to stage1_languages,
  # while "bad" languages go in missing_languages.  Leave no duplicates.
  for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
    case $potential_languages in
      *,$i,*)
        case $stage1_languages in
          *,$i,*) ;;
          *) stage1_languages="$stage1_languages$i," ;;
        esac ;;
      *)
        case $missing_languages in
          *,$i,*) ;;
          *) missing_languages="$missing_languages$i," ;;
        esac ;;
     esac
  done])

  # Remove leading/trailing commas that were added for simplicity
  potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
2009
  missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
2010 2011 2012
  stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
  new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`

Paolo Bonzini committed
2013 2014
  if test "x$missing_languages" != x; then
    AC_MSG_ERROR([
2015
The following requested languages could not be built: ${missing_languages}
2016
Supported languages are: ${potential_languages}])
Paolo Bonzini committed
2017 2018 2019
  fi
  if test "x$new_enable_languages" != "x$enable_languages"; then
    echo The following languages will be built: ${new_enable_languages}
2020
    enable_languages="$new_enable_languages"
Paolo Bonzini committed
2021
  fi
2022 2023

  AC_SUBST(stage1_languages)
2024
  ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
Paolo Bonzini committed
2025 2026
fi

2027 2028 2029
# Handle --disable-<component> generically.
for dir in $configdirs $build_configdirs $target_configdirs ; do
  dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
2030 2031
  varname=`echo $dirname | sed -e s/+/_/g`
  if eval test x\${enable_${varname}} "=" xno ; then
2032 2033 2034 2035
    noconfigdirs="$noconfigdirs $dir"
  fi
done

2036 2037
# Check for Boehm's garbage collector
AC_ARG_ENABLE(objc-gc,
2038 2039 2040
[AS_HELP_STRING([--enable-objc-gc],
		[enable use of Boehm's garbage collector with the
		 GNU Objective-C runtime])],
2041 2042 2043 2044 2045 2046 2047
[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
  *,objc,*:*:yes:*target-boehm-gc*)
    AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
    ;;
esac])

# Make sure we only build Boehm's garbage collector if required.
2048 2049
case ,${enable_languages},:${enable_objc_gc} in
  *,objc,*:yes)
2050 2051 2052
    # Keep target-boehm-gc if requested for Objective-C.
    ;;
  *)
2053 2054 2055 2056
    # Otherwise remove target-boehm-gc depending on target-libjava.
    if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
      noconfigdirs="$noconfigdirs target-boehm-gc"
    fi
2057 2058
    ;;
esac
2059

2060
# Disable libitm, libsanitizer, libvtv if we're not building C++
2061
case ,${enable_languages}, in
2062
  *,c++,*) ;;
2063
  *)
2064
    noconfigdirs="$noconfigdirs target-libcilkrts target-libitm target-libsanitizer target-libvtv"
2065 2066
    ;;
esac
2067

2068 2069
# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
# $build_configdirs and $target_configdirs.
Paolo Bonzini committed
2070 2071 2072 2073
# If we have the source for $noconfigdirs entries, add them to $notsupp.

notsupp=""
for dir in . $skipdirs $noconfigdirs ; do
2074
  dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
Paolo Bonzini committed
2075 2076 2077 2078 2079 2080 2081 2082 2083 2084
  if test $dir != .  && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
    configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
    if test -r $srcdir/$dirname/configure ; then
      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
	true
      else
	notsupp="$notsupp $dir"
      fi
    fi
  fi
2085 2086 2087 2088 2089 2090 2091 2092 2093 2094
  if test $dir != .  && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
    build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
    if test -r $srcdir/$dirname/configure ; then
      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
	true
      else
	notsupp="$notsupp $dir"
      fi
    fi
  fi
Paolo Bonzini committed
2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109
  if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
    target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
    if test -r $srcdir/$dirname/configure ; then
      if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
	true
      else
	notsupp="$notsupp $dir"
      fi
    fi
  fi
done

# Quietly strip out all directories which aren't configurable in this tree.
# This relies on all configurable subdirectories being autoconfiscated, which
# is now the case.
2110 2111 2112 2113 2114 2115 2116 2117 2118
build_configdirs_all="$build_configdirs"
build_configdirs=
for i in ${build_configdirs_all} ; do
  j=`echo $i | sed -e s/build-//g` 
  if test -f ${srcdir}/$j/configure ; then
    build_configdirs="${build_configdirs} $i"
  fi
done

Paolo Bonzini committed
2119 2120 2121 2122 2123 2124 2125
configdirs_all="$configdirs"
configdirs=
for i in ${configdirs_all} ; do
  if test -f ${srcdir}/$i/configure ; then
    configdirs="${configdirs} $i"
  fi
done
2126

Paolo Bonzini committed
2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152
target_configdirs_all="$target_configdirs"
target_configdirs=
for i in ${target_configdirs_all} ; do
  j=`echo $i | sed -e s/target-//g` 
  if test -f ${srcdir}/$j/configure ; then
    target_configdirs="${target_configdirs} $i"
  fi
done

# Produce a warning message for the subdirs we can't configure.
# This isn't especially interesting in the Cygnus tree, but in the individual
# FSF releases, it's important to let people know when their machine isn't
# supported by the one or two programs in a package.

if test -n "${notsupp}" && test -z "${norecursion}" ; then
  # If $appdirs is non-empty, at least one of those directories must still
  # be configured, or we error out.  (E.g., if the gas release supports a
  # specified target in some subdirs but not the gas subdir, we shouldn't
  # pretend that all is well.)
  if test -n "$appdirs" ; then
    for dir in $appdirs ; do
      if test -r $dir/Makefile.in ; then
	if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
	  appdirs=""
	  break
	fi
2153
	if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
Paolo Bonzini committed
2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175
	  appdirs=""
	  break
	fi
      fi
    done
    if test -n "$appdirs" ; then
      echo "*** This configuration is not supported by this package." 1>&2
      exit 1
    fi
  fi
  # Okay, some application will build, or we don't care to check.  Still
  # notify of subdirs not getting built.
  echo "*** This configuration is not supported in the following subdirectories:" 1>&2
  echo "    ${notsupp}" 1>&2
  echo "    (Any other directories should still work fine.)" 1>&2
fi

case "$host" in
  *msdosdjgpp*)
    enable_gdbtk=no ;;
esac

2176 2177 2178
# To find our prefix, in gcc_cv_tool_prefix.
ACX_TOOL_DIRS

Paolo Bonzini committed
2179 2180
copy_dirs=

2181
AC_ARG_WITH([build-sysroot], 
2182 2183
  [AS_HELP_STRING([--with-build-sysroot=SYSROOT],
		  [use sysroot as the system root during the build])],
2184 2185 2186 2187 2188 2189
  [if test x"$withval" != x ; then
     SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
   fi],
  [SYSROOT_CFLAGS_FOR_TARGET=])
AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)

2190
AC_ARG_WITH([debug-prefix-map],
2191 2192
  [AS_HELP_STRING([--with-debug-prefix-map='A=B C=D ...'],
		  [map A to B, C to D ... in debug information])],
2193 2194 2195 2196 2197 2198 2199 2200 2201
  [if test x"$withval" != x; then
     DEBUG_PREFIX_CFLAGS_FOR_TARGET=
     for debug_map in $withval; do
       DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
     done
   fi],
  [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)

2202 2203 2204 2205 2206 2207 2208 2209 2210 2211
# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
# might be empty or "-g".  We don't require a C++ compiler, so CXXFLAGS
# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
# We want to ensure that TARGET libraries (which we know are built with
# gcc) are built with "-O2 -g", so include those options when setting
# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
if test "x$CFLAGS_FOR_TARGET" = x; then
  CFLAGS_FOR_TARGET=$CFLAGS
  case " $CFLAGS " in
    *" -O2 "*) ;;
2212
    *) CFLAGS_FOR_TARGET="-O2 $CFLAGS_FOR_TARGET" ;;
2213 2214 2215
  esac
  case " $CFLAGS " in
    *" -g "* | *" -g3 "*) ;;
2216
    *) CFLAGS_FOR_TARGET="-g $CFLAGS_FOR_TARGET" ;;
2217 2218 2219 2220 2221 2222 2223 2224
  esac
fi
AC_SUBST(CFLAGS_FOR_TARGET)

if test "x$CXXFLAGS_FOR_TARGET" = x; then
  CXXFLAGS_FOR_TARGET=$CXXFLAGS
  case " $CXXFLAGS " in
    *" -O2 "*) ;;
2225
    *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS_FOR_TARGET" ;;
2226 2227 2228
  esac
  case " $CXXFLAGS " in
    *" -g "* | *" -g3 "*) ;;
2229
    *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS_FOR_TARGET" ;;
2230 2231 2232 2233
  esac
fi
AC_SUBST(CXXFLAGS_FOR_TARGET)

2234 2235
AC_SUBST(LDFLAGS_FOR_TARGET)

Paolo Bonzini committed
2236 2237 2238 2239 2240 2241 2242 2243
# Handle --with-headers=XXX.  If the value is not "yes", the contents of
# the named directory are copied to $(tooldir)/sys-include.
if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
  if test x${is_cross_compiler} = xno ; then
    echo 1>&2 '***' --with-headers is only supported when cross compiling
    exit 1
  fi
  if test x"${with_headers}" != xyes ; then
2244
    x=${gcc_cv_tool_prefix}
2245
    copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
Paolo Bonzini committed
2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259
  fi
fi

# Handle --with-libs=XXX.  If the value is not "yes", the contents of
# the name directories are copied to $(tooldir)/lib.  Multiple directories
# are permitted.
if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
  if test x${is_cross_compiler} = xno ; then
    echo 1>&2 '***' --with-libs is only supported when cross compiling
    exit 1
  fi
  if test x"${with_libs}" != xyes ; then
    # Copy the libraries in reverse order, so that files in the first named
    # library override files in subsequent libraries.
2260
    x=${gcc_cv_tool_prefix}
Paolo Bonzini committed
2261
    for l in ${with_libs}; do
2262
      copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
Paolo Bonzini committed
2263 2264 2265 2266
    done
  fi
fi

2267
# Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
2268 2269 2270 2271 2272 2273 2274 2275 2276 2277
#
# This is done by determining whether or not the appropriate directory
# is available, and by checking whether or not specific configurations
# have requested that this magic not happen.
# 
# The command line options always override the explicit settings in 
# configure.in, and the settings in configure.in override this magic.
#
# If the default for a toolchain is to use GNU as and ld, and you don't 
# want to do that, then you should use the --without-gnu-as and
2278 2279 2280
# --without-gnu-ld options for the configure script.  Similarly, if
# the default is to use the included zlib and you don't want to do that,
# you should use the --with-system-zlib option for the configure script.
2281 2282 2283 2284 2285 2286 2287 2288

if test x${use_gnu_as} = x &&
   echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
  with_gnu_as=yes
  extra_host_args="$extra_host_args --with-gnu-as"
fi

if test x${use_gnu_ld} = x &&
2289
   echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
2290 2291 2292 2293
  with_gnu_ld=yes
  extra_host_args="$extra_host_args --with-gnu-ld"
fi

2294 2295 2296 2297 2298 2299 2300 2301
if test x${use_included_zlib} = x &&
   echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
  :
else
  with_system_zlib=yes
  extra_host_args="$extra_host_args --with-system-zlib"
fi

2302 2303 2304 2305 2306 2307 2308 2309
# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
# can detect this case.

if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
  with_newlib=yes
  extra_host_args="$extra_host_args --with-newlib"
fi

Paolo Bonzini committed
2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340
# Handle ${copy_dirs}
set fnord ${copy_dirs}
shift
while test $# != 0 ; do
  if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
    :
  else
    echo Copying $1 to $2

    # Use the install script to create the directory and all required
    # parent directories.
    if test -d $2 ; then
      :
    else
      echo >config.temp
      ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
    fi

    # Copy the directory, assuming we have tar.
    # FIXME: Should we use B in the second tar?  Not all systems support it.
    (cd $1; tar -cf - .) | (cd $2; tar -xpf -)

    # It is the responsibility of the user to correctly adjust all
    # symlinks.  If somebody can figure out how to handle them correctly
    # here, feel free to add the code.

    echo $1 > $2/COPIED
  fi
  shift; shift
done

2341 2342 2343 2344 2345
# Determine a target-dependent exec_prefix that the installed
# gcc will search in.  Keep this list sorted by triplet, with
# the *-*-osname triplets last.
md_exec_prefix=
case "${target}" in
2346
  i[[34567]]86-pc-msdosdjgpp*)
2347 2348 2349 2350
    md_exec_prefix=/dev/env/DJDIR/bin
    ;;
  *-*-hpux* | \
  *-*-nto-qnx* | \
2351
  *-*-solaris2*)
2352 2353 2354 2355
    md_exec_prefix=/usr/ccs/bin
    ;;
esac

2356 2357
extra_arflags_for_target=
extra_nmflags_for_target=
2358
extra_ranlibflags_for_target=
2359
target_makefile_frag=/dev/null
2360
case "${target}" in
2361 2362 2363
  spu-*-*)
    target_makefile_frag="config/mt-spu"
    ;;
2364
  mips*-sde-elf* | mips*-mti-elf*)
Richard Sandiford committed
2365 2366
    target_makefile_frag="config/mt-sde"
    ;;
2367 2368 2369
  mipsisa*-*-elfoabi*)
    target_makefile_frag="config/mt-mips-elfoabi"
    ;;
2370 2371 2372
  mips*-*-*linux* | mips*-*-gnu*)
    target_makefile_frag="config/mt-mips-gnu"
    ;;
2373
  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
2374
    target_makefile_frag="config/mt-gnu"
2375
    ;;
2376
  *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
2377 2378 2379 2380 2381
    # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm 
    # commands to handle both 32-bit and 64-bit objects.  These flags are
    # harmless if we're using GNU nm or ar.
    extra_arflags_for_target=" -X32_64"
    extra_nmflags_for_target=" -B -X32_64"
2382
    ;;
2383 2384
esac

2385
alphaieee_frag=/dev/null
2386 2387 2388 2389 2390
case $target in
  alpha*-*-*)
    # This just makes sure to use the -mieee option to build target libs.
    # This should probably be set individually by each library.
    alphaieee_frag="config/mt-alphaieee"
2391 2392
    ;;
esac
2393

2394 2395 2396
# If --enable-target-optspace always use -Os instead of -O2 to build
# the target libraries, similarly if it is not specified, use -Os
# on selected platforms.
2397
ospace_frag=/dev/null
2398 2399
case "${enable_target_optspace}:${target}" in
  yes:*)
2400
    ospace_frag="config/mt-ospace"
2401 2402
    ;;
  :d30v-*)
2403
    ospace_frag="config/mt-d30v"
2404 2405
    ;;
  :m32r-* | :d10v-* | :fr30-*)
2406
    ospace_frag="config/mt-ospace"
2407 2408 2409 2410 2411 2412 2413
    ;;
  no:* | :*)
    ;;
  *)
    echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
    ;;
esac
Jason Merrill committed
2414

2415 2416
# Some systems (e.g., one of the i386-aix systems the gas testers are
# using) don't handle "\$" correctly, so don't use it here.
2417
tooldir='${exec_prefix}'/${target_noncanonical}
2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435
build_tooldir=${tooldir}

# Create a .gdbinit file which runs the one in srcdir
# and tells GDB to look there for source files.

if test -r ${srcdir}/.gdbinit ; then
  case ${srcdir} in
    .) ;;
    *) cat > ./.gdbinit <<EOF
# ${NO_EDIT}
dir ${srcdir}
dir .
source ${srcdir}/.gdbinit
EOF
    ;;
  esac
fi

Jason Merrill committed
2436 2437 2438 2439
# Make sure that the compiler is able to generate an executable.  If it
# can't, we are probably in trouble.  We don't care whether we can run the
# executable--we might be using a cross compiler--we only care whether it
# can be created.  At this point the main configure script has set CC.
2440
we_are_ok=no
Jason Merrill committed
2441 2442
echo "int main () { return 0; }" > conftest.c
${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455
if test $? = 0 ; then
  if test -s conftest || test -s conftest.exe ; then
    we_are_ok=yes
  fi
fi 
case $we_are_ok in
  no)
    echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
    echo 1>&2 "*** You must set the environment variable CC to a working compiler."
    rm -f conftest*
    exit 1
    ;;
esac
Jason Merrill committed
2456 2457
rm -f conftest*

2458
# Decide which environment variable is used to find dynamic libraries.
2459 2460
case "${host}" in
  *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
2461
  *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
2462
  *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
2463 2464 2465
  *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
esac

2466 2467 2468 2469 2470 2471 2472 2473 2474
# On systems where the dynamic library environment variable is PATH,
# gcc/ will put dynamic libraries into a subdirectory to avoid adding
# built executables to PATH.
if test "$RPATH_ENVVAR" = PATH; then
  GCC_SHLIB_SUBDIR=/shlib
else
  GCC_SHLIB_SUBDIR=
fi

2475 2476 2477
# Record target_configdirs and the configure arguments for target and
# build configuration in Makefile.
target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
2478
build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
2479

2480 2481 2482 2483 2484
# If we are building libgomp, bootstrap it.
if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
  bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
fi

2485 2486 2487 2488 2489
# If we are building libsanitizer, bootstrap it.
if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1 ; then
  bootstrap_target_libs=${bootstrap_target_libs}target-libsanitizer,
fi

2490 2491 2492 2493 2494
# If we are building libvtv, bootstrap it.
if echo " ${target_configdirs} " | grep " libvtv " > /dev/null 2>&1 ; then
  bootstrap_target_libs=${bootstrap_target_libs}target-libvtv,
fi

2495 2496 2497 2498 2499 2500 2501
# Determine whether gdb needs tk/tcl or not.
# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
# and in that case we want gdb to be built without tk.  Ugh!
# In fact I believe gdb is the *only* package directly dependent on tk,
# so we should be able to put the 'maybe's in unconditionally and
# leave out the maybe dependencies when enable_gdbtk is false.  I'm not
# 100% sure that that's safe though.
2502

2503
gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
2504 2505 2506
case "$enable_gdbtk" in
  no)
    GDB_TK="" ;;
2507 2508
  yes)
    GDB_TK="${gdb_tk}" ;;
2509
  *)
2510 2511 2512 2513 2514 2515 2516 2517 2518
    # Only add the dependency on gdbtk when GDBtk is part of the gdb
    # distro.  Eventually someone will fix this and move Insight, nee
    # gdbtk to a separate directory.
    if test -d ${srcdir}/gdb/gdbtk ; then
      GDB_TK="${gdb_tk}"
    else
      GDB_TK=""
    fi
    ;;
2519
esac
2520 2521
CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
2522

2523
# Strip out unwanted targets.
Nathanael Nerode committed
2524 2525 2526 2527 2528

# While at that, we remove Makefiles if we were started for recursive
# configuration, so that the top-level Makefile reconfigures them,
# like we used to do when configure itself was recursive.

2529 2530 2531 2532 2533 2534 2535
# Loop over modules.  We used to use the "$extrasub" feature from Autoconf
# but now we're fixing up the Makefile ourselves with the additional
# commands passed to AC_CONFIG_FILES.  Use separate variables
# extrasub-{build,host,target} not because there is any reason to split
# the substitutions up that way, but only to remain below the limit of
# 99 commands in a script, for HP-UX sed.
# Do not nest @if/@endif pairs, because configure will not warn you at all.
Nathanael Nerode committed
2536

2537 2538 2539 2540 2541 2542 2543
case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
  yes:yes:*\ gold\ *:*,c++,*) ;;
  yes:yes:*\ gold\ *:*)
    AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
    ;;
esac

2544
# Adjust the toplevel makefile according to whether bootstrap was selected.
2545
case $enable_bootstrap in
2546
  yes)
2547 2548 2549
    bootstrap_suffix=bootstrap
    BUILD_CONFIG=bootstrap-debug
    ;;
2550
  no)
2551 2552 2553
    bootstrap_suffix=no-bootstrap
    BUILD_CONFIG=
    ;;
2554 2555
esac

2556
AC_MSG_CHECKING(for default BUILD_CONFIG)
2557 2558

AC_ARG_WITH([build-config],
2559 2560
  [AS_HELP_STRING([--with-build-config='NAME NAME2...'],
		  [use config/NAME.mk build configuration])],
2561 2562 2563 2564 2565
  [case $with_build_config in
   yes) with_build_config= ;;
   no) with_build_config= BUILD_CONFIG= ;;
   esac])

2566 2567 2568 2569 2570 2571 2572 2573 2574 2575
if test "x${with_build_config}" != x; then
  BUILD_CONFIG=$with_build_config
else
  case $BUILD_CONFIG in
  bootstrap-debug)
    if echo "int f (void) { return 0; }" > conftest.c &&
       ${CC} -c conftest.c &&
       mv conftest.o conftest.o.g0 &&
       ${CC} -c -g conftest.c &&
       mv conftest.o conftest.o.g &&
2576
       ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then
2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587
      :
    else
      BUILD_CONFIG=
    fi
    rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
    ;;
  esac
fi
AC_MSG_RESULT($BUILD_CONFIG)
AC_SUBST(BUILD_CONFIG)

2588
extrasub_build=
2589
for module in ${build_configdirs} ; do
Nathanael Nerode committed
2590 2591 2592 2593 2594
  if test -z "${no_recursion}" \
     && test -f ${build_subdir}/${module}/Makefile; then
    echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
    rm -f ${build_subdir}/${module}/Makefile
  fi
2595
  extrasub_build="$extrasub_build
2596
/^@if build-$module\$/d
2597 2598 2599
/^@endif build-$module\$/d
/^@if build-$module-$bootstrap_suffix\$/d
/^@endif build-$module-$bootstrap_suffix\$/d"
Nathanael Nerode committed
2600
done
2601
extrasub_host=
Nathanael Nerode committed
2602
for module in ${configdirs} ; do
2603
  if test -z "${no_recursion}"; then
2604
    for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
2605 2606 2607 2608 2609
      if test -f ${file}; then
	echo 1>&2 "*** removing ${file} to force reconfigure"
	rm -f ${file}
      fi
    done
Nathanael Nerode committed
2610
  fi
2611
  extrasub_host="$extrasub_host
2612
/^@if $module\$/d
2613 2614 2615
/^@endif $module\$/d
/^@if $module-$bootstrap_suffix\$/d
/^@endif $module-$bootstrap_suffix\$/d"
Nathanael Nerode committed
2616
done
2617
extrasub_target=
Nathanael Nerode committed
2618 2619 2620 2621 2622 2623
for module in ${target_configdirs} ; do
  if test -z "${no_recursion}" \
     && test -f ${target_subdir}/${module}/Makefile; then
    echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
    rm -f ${target_subdir}/${module}/Makefile
  fi
2624 2625 2626 2627 2628 2629 2630

  # We only bootstrap target libraries listed in bootstrap_target_libs.
  case $bootstrap_target_libs in
    *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
    *) target_bootstrap_suffix=no-bootstrap ;;
  esac

2631
  extrasub_target="$extrasub_target
2632
/^@if target-$module\$/d
2633
/^@endif target-$module\$/d
2634 2635
/^@if target-$module-$target_bootstrap_suffix\$/d
/^@endif target-$module-$target_bootstrap_suffix\$/d"
2636
done
2637

2638 2639
# Do the final fixup along with target modules.
extrasub_target="$extrasub_target
2640
/^@if /,/^@endif /d"
2641 2642 2643

# Create the serialization dependencies.  This uses a temporary file.

2644
AC_ARG_ENABLE([serial-configure],
2645 2646 2647 2648
[AS_HELP_STRING([[--enable-serial-[{host,target,build}-]configure]],
		[force sequential configuration of
		 sub-packages for the host, target or build
		 machine, or all sub-packages])])
2649 2650 2651 2652 2653 2654 2655 2656

case ${enable_serial_configure} in
  yes)
    enable_serial_build_configure=yes
    enable_serial_host_configure=yes
    enable_serial_target_configure=yes
    ;;
esac
2657

2658 2659 2660
# These force 'configure's to be done one at a time, to avoid problems
# with contention over a shared config.cache.
rm -f serdep.tmp
2661
echo '# serdep.tmp' > serdep.tmp
2662
olditem=
2663
test "x${enable_serial_build_configure}" = xyes &&
2664 2665 2666
for item in ${build_configdirs} ; do
  case ${olditem} in
    "") ;;
2667
    *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
2668 2669 2670 2671
  esac
  olditem=${item}
done
olditem=
2672
test "x${enable_serial_host_configure}" = xyes &&
2673 2674 2675
for item in ${configdirs} ; do
  case ${olditem} in
    "") ;;
2676
    *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
2677 2678 2679 2680
  esac
  olditem=${item}
done
olditem=
2681
test "x${enable_serial_target_configure}" = xyes &&
2682 2683 2684
for item in ${target_configdirs} ; do
  case ${olditem} in
    "") ;;
2685
    *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
2686 2687 2688
  esac
  olditem=${item}
done
2689 2690
serialization_dependencies=serdep.tmp
AC_SUBST_FILE(serialization_dependencies)
2691

2692
# Base args.  Strip norecursion, cache-file, srcdir, host, build,
2693
# target, nonopt, and variable assignments.  These are the ones we
2694 2695 2696 2697 2698
# might not want to pass down to subconfigures.  The exception being
# --cache-file=/dev/null, which is used to turn off the use of cache
# files altogether, and which should be passed on to subconfigures.
# Also strip program-prefix, program-suffix, and program-transform-name,
# so that we can pass down a consistent program-transform-name.
2699
baseargs=
2700
tbaseargs=
2701 2702 2703
keep_next=no
skip_next=no
eval "set -- $ac_configure_args"
2704 2705
for ac_arg
do
2706 2707 2708 2709 2710 2711 2712 2713 2714 2715
  if test X"$skip_next" = X"yes"; then
    skip_next=no
    continue
  fi
  if test X"$keep_next" = X"yes"; then
    case $ac_arg in
      *\'*)
	ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
    esac
    baseargs="$baseargs '$ac_arg'"
2716
    tbaseargs="$tbaseargs '$ac_arg'"
2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737
    keep_next=no
    continue
  fi

  # Handle separated arguments.  Based on the logic generated by
  # autoconf 2.59.
  case $ac_arg in
    *=* | --config-cache | -C | -disable-* | --disable-* \
      | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
      | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
      | -with-* | --with-* | -without-* | --without-* | --x)
      separate_arg=no
      ;;
    -*)
      separate_arg=yes
      ;;
    *)
      separate_arg=no
      ;;
  esac

2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757
  skip_targ=no
  case $ac_arg in
changequote(,)
  --with-* | --without-*)
    libopt=`echo "$ac_arg" | sed -e 's,^--[^-_]*[-_],,' -e 's,=.*$,,'`

    case $libopt in
    *[-_]include)
      lib=`echo "$libopt" | sed 's,[-_]include$,,'`
      ;;
    *[-_]lib)
      lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
      ;;
    *)
      lib=$libopt
      ;;
    esac
changequote([,])

    case $lib in
2758
    mpc | mpfr | gmp | cloog)
2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770
      # If we're processing --with-$lib, --with-$lib-include or
      # --with-$lib-lib, for one of the libs above, and target is
      # different from host, don't pass the current argument to any
      # target library's configure.
      if test x$is_cross_compiler = xyes; then
        skip_targ=yes
      fi
      ;;
    esac
    ;;
  esac

2771
  case "$ac_arg" in
2772 2773 2774 2775
    --cache-file=/dev/null | \
    -cache-file=/dev/null )
      # Handled here to avoid the test to skip args below.
      baseargs="$baseargs '$ac_arg'"
2776
      tbaseargs="$tbaseargs '$ac_arg'"
2777 2778 2779
      # Assert: $separate_arg should always be no.
      keep_next=$separate_arg
      ;;
2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806
    --no*)
      continue
      ;;
    --c* | \
    --sr* | \
    --ho* | \
    --bu* | \
    --t* | \
    --program-* | \
    -cache_file* | \
    -srcdir* | \
    -host* | \
    -build* | \
    -target* | \
    -program-prefix* | \
    -program-suffix* | \
    -program-transform-name* )
      skip_next=$separate_arg
      continue
      ;;
    -*)
      # An option.  Add it.
      case $ac_arg in
	*\'*)
	  ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
      esac
      baseargs="$baseargs '$ac_arg'"
2807 2808 2809
      if test X"$skip_targ" = Xno; then
        tbaseargs="$tbaseargs '$ac_arg'"
      fi
2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821
      keep_next=$separate_arg
      ;;
    *)
      # Either a variable assignment, or a nonopt (triplet).  Don't
      # pass it down; let the Makefile handle this.
      continue
      ;;
  esac
done
# Remove the initial space we just introduced and, as these will be
# expanded by make, quote '$'.
baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
Jason Merrill committed
2822

2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835
# Add in --program-transform-name, after --program-prefix and
# --program-suffix have been applied to it.  Autoconf has already
# doubled dollar signs and backslashes in program_transform_name; we want
# the backslashes un-doubled, and then the entire thing wrapped in single
# quotes, because this will be expanded first by make and then by the shell. 
# Also, because we want to override the logic in subdir configure scripts to
# choose program_transform_name, replace any s,x,x, with s,y,y,.
sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
${program_transform_name}
EOF_SED
gcc_transform_name=`cat conftestsed.out`
rm -f conftestsed.out
baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
2836
tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
2837 2838
if test "$silent" = yes; then
  baseargs="$baseargs --silent"
2839
  tbaseargs="$tbaseargs --silent"
2840
fi
2841
baseargs="$baseargs --disable-option-checking"
2842
tbaseargs="$tbaseargs --disable-option-checking"
2843

2844 2845 2846 2847 2848 2849 2850 2851
# Record and document user additions to sub configure arguments.
AC_ARG_VAR([build_configargs],
	   [additional configure arguments for build directories])
AC_ARG_VAR([host_configargs],
	   [additional configure arguments for host directories])
AC_ARG_VAR([target_configargs],
	   [additional configure arguments for target directories])

Zack Weinberg committed
2852 2853 2854
# For the build-side libraries, we just need to pretend we're native,
# and not use the same cache file.  Multilibs are neither needed nor
# desired.
2855
build_configargs="$build_configargs --cache-file=../config.cache ${baseargs}"
2856

2857 2858 2859 2860
# For host modules, accept cache file option, or specification as blank.
case "${cache_file}" in
"") # empty
  cache_file_option="" ;;
2861
/* | [[A-Za-z]]:[[\\/]]* ) # absolute path
2862 2863 2864 2865 2866
  cache_file_option="--cache-file=${cache_file}" ;;
*) # relative path
  cache_file_option="--cache-file=../${cache_file}" ;;
esac

2867 2868
# Host dirs don't like to share a cache file either, horribly enough.
# This seems to be due to autoconf 2.5x stupidity.
2869
host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
2870

2871
target_configargs="$target_configargs ${tbaseargs}"
Zack Weinberg committed
2872

Jason Merrill committed
2873 2874 2875 2876 2877
# Passing a --with-cross-host argument lets the target libraries know
# whether they are being built with a cross-compiler or being built
# native.  However, it would be better to use other mechanisms to make the
# sorts of decisions they want to make on this basis.  Please consider
# this option to be deprecated.  FIXME.
2878
if test x${is_cross_compiler} = xyes ; then
2879
  target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
Jason Merrill committed
2880 2881
fi

2882 2883
# Default to --enable-multilib.
if test x${enable_multilib} = x ; then
2884
  target_configargs="--enable-multilib ${target_configargs}"
2885
fi
Jason Merrill committed
2886

2887 2888
# Pass --with-newlib if appropriate.  Note that target_configdirs has
# changed from the earlier setting of with_newlib.
2889
if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
2890
  target_configargs="--with-newlib ${target_configargs}"
2891 2892
fi

2893 2894 2895 2896 2897 2898 2899 2900 2901
# Different target subdirs use different values of certain variables
# (notably CXX).  Worse, multilibs use *lots* of different values.
# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
# it doesn't automatically accept command-line overrides of them.
# This means it's not safe for target subdirs to share a cache file,
# which is disgusting, but there you have it.  Hopefully this can be
# fixed in future.  It's still worthwhile to use a cache file for each
# directory.  I think.

2902 2903 2904
# Pass the appropriate --build, --host, --target and --cache-file arguments.
# We need to pass --target, as newer autoconf's requires consistency
# for target_alias and gcc doesn't manage it consistently.
Paolo Bonzini committed
2905
target_configargs="--cache-file=./config.cache ${target_configargs}"
Zack Weinberg committed
2906

2907
FLAGS_FOR_TARGET=
2908
case " $target_configdirs " in
2909
 *" newlib "*)
2910
  case " $target_configargs " in
2911
  *" --with-newlib "*)
2912
   case "$target" in
2913
    *-cygwin*)
2914
      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -isystem $$s/winsup/cygwin/include'
2915
      ;;
2916 2917
   esac

2918
   # If we're not building GCC, don't discard standard headers.
2919
   if test -d ${srcdir}/gcc; then
2920
     FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
2921 2922 2923 2924 2925 2926 2927

     if test "${build}" != "${host}"; then
       # On Canadian crosses, CC_FOR_TARGET will have already been set
       # by `configure', so we won't have an opportunity to add -Bgcc/
       # to it.  This is right: we don't want to search that directory
       # for binaries, but we want the header files in there, so add
       # them explicitly.
2928
       FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
2929 2930 2931 2932 2933 2934 2935 2936 2937 2938

       # Someone might think of using the pre-installed headers on
       # Canadian crosses, in case the installed compiler is not fully
       # compatible with the compiler being built.  In this case, it
       # would be better to flag an error than risking having
       # incompatible object files being constructed.  We can't
       # guarantee that an error will be flagged, but let's hope the
       # compiler will do it, when presented with incompatible header
       # files.
     fi
2939 2940
   fi

2941
   case "${target}-${is_cross_compiler}" in
2942
   i[[3456789]]86-*-linux*-no)
2943 2944 2945 2946 2947 2948 2949 2950 2951
      # Here host == target, so we don't need to build gcc,
      # so we don't want to discard standard headers.
      FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
      ;;
   *)
      # If we're building newlib, use its generic headers last, but search
      # for any libc-related directories first (so make it the last -B
      # switch).
      FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964

      # If we're building libgloss, find the startup file, simulator library
      # and linker script.
      case " $target_configdirs " in
	*" libgloss "*)
	# Look for startup file, simulator library and maybe linker script.
	FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
	# Look for libnosys.a in case the target needs it.
	FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
	# Most targets have the linker script in the source directory.
	FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
	;;
      esac
2965 2966
      ;;
   esac
2967
   ;;
2968 2969
  esac
  ;;
2970
esac
2971

2972
case "$target" in
2973 2974 2975 2976 2977 2978 2979 2980 2981
  x86_64-*mingw* | *-w64-mingw*)
  # MinGW-w64 does not use newlib, nor does it use winsup. It may,
  # however, use a symlink named 'mingw' in ${prefix} .
    FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include'
    ;;
  *-mingw*)
  # MinGW can't be handled as Cygwin above since it does not use newlib.
    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'
    ;;
2982
esac
2983

2984 2985
# Allow the user to override the flags for
# our build compiler if desired.
2986 2987 2988 2989 2990
if test x"${build}" = x"${host}" ; then
  CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
  CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
  LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
fi
2991

2992 2993 2994 2995
# On Canadian crosses, we'll be searching the right directories for
# the previously-installed cross compiler, so don't bother to add
# flags for directories within the install tree of the compiler
# being built; programs in there won't even run.
2996
if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
2997
  # Search for pre-installed headers if nothing else fits.
2998
  FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
2999
fi
3000

3001
if test "x${use_gnu_ld}" = x &&
3002
   echo " ${configdirs} " | grep " ld " > /dev/null ; then
3003
  # Arrange for us to find uninstalled linker scripts.
3004
  FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
3005 3006
fi

3007 3008
# Search for other target-specific linker scripts and such.
case "${target}" in
3009 3010 3011
  mep*)
    FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
    ;;
3012 3013
esac

3014
# Makefile fragments.
3015 3016 3017 3018 3019 3020 3021
for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
do
  eval fragval=\$$frag
  if test $fragval != /dev/null; then
    eval $frag=${srcdir}/$fragval
  fi
done
3022 3023 3024 3025 3026 3027 3028
AC_SUBST_FILE(host_makefile_frag)
AC_SUBST_FILE(target_makefile_frag)
AC_SUBST_FILE(alphaieee_frag)
AC_SUBST_FILE(ospace_frag)

# Miscellanea: directories, flags, etc.
AC_SUBST(RPATH_ENVVAR)
3029
AC_SUBST(GCC_SHLIB_SUBDIR)
3030 3031
AC_SUBST(tooldir)
AC_SUBST(build_tooldir)
3032
AC_SUBST(CONFIGURE_GDB_TK)
3033
AC_SUBST(GDB_TK)
3034
AC_SUBST(INSTALL_GDB_TK)
3035 3036 3037

# Build module lists & subconfigure args.
AC_SUBST(build_configargs)
3038
AC_SUBST(build_configdirs)
3039 3040 3041 3042

# Host module lists & subconfigure args.
AC_SUBST(host_configargs)
AC_SUBST(configdirs)
3043
AC_SUBST(target_configdirs)
3044 3045 3046

# Target module lists & subconfigure args.
AC_SUBST(target_configargs)
3047

3048 3049

# Build tools.
3050 3051
AC_SUBST(AR_FOR_BUILD)
AC_SUBST(AS_FOR_BUILD)
3052
AC_SUBST(CC_FOR_BUILD)
3053 3054 3055 3056 3057 3058
AC_SUBST(CFLAGS_FOR_BUILD)
AC_SUBST(CXXFLAGS_FOR_BUILD)
AC_SUBST(CXX_FOR_BUILD)
AC_SUBST(DLLTOOL_FOR_BUILD)
AC_SUBST(GCJ_FOR_BUILD)
AC_SUBST(GFORTRAN_FOR_BUILD)
3059
AC_SUBST(GOC_FOR_BUILD)
3060 3061 3062 3063 3064 3065
AC_SUBST(LDFLAGS_FOR_BUILD)
AC_SUBST(LD_FOR_BUILD)
AC_SUBST(NM_FOR_BUILD)
AC_SUBST(RANLIB_FOR_BUILD)
AC_SUBST(WINDMC_FOR_BUILD)
AC_SUBST(WINDRES_FOR_BUILD)
3066

3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102
# Generate default definitions for YACC, M4, LEX and other programs that run
# on the build machine.  These are used if the Makefile can't locate these
# programs in objdir.
MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing

AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
case " $build_configdirs " in
  *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
esac

AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
case " $build_configdirs " in
  *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
esac

AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
case " $build_configdirs " in
  *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
esac

AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
case " $build_configdirs " in
  *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
  *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
esac

AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
case " $build_configdirs " in
  *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
esac

AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
case " $build_configdirs " in
  *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
  *)
changequote(,)
3103
    # For an installed makeinfo, we require it to be from texinfo 4.7 or
3104 3105
    # higher, else we use the "missing" dummy.
    if ${MAKEINFO} --version \
3106
       | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126
      :
    else
      MAKEINFO="$MISSING makeinfo"
    fi
    ;;
changequote([,])
esac

# FIXME: expect and dejagnu may become build tools?

AC_CHECK_PROGS(EXPECT, expect, expect)
case " $configdirs " in
  *" expect "*)
    test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
    ;;
esac

AC_CHECK_PROGS(RUNTEST, runtest, runtest)
case " $configdirs " in
  *" dejagnu "*)
3127
    test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
3128 3129 3130 3131
    ;;
esac


3132
# Host tools.
3133 3134 3135 3136
NCN_STRICT_CHECK_TOOLS(AR, ar)
NCN_STRICT_CHECK_TOOLS(AS, as)
NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
NCN_STRICT_CHECK_TOOLS(LD, ld)
3137
NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
3138
NCN_STRICT_CHECK_TOOLS(NM, nm)
3139 3140
NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, true)
NCN_STRICT_CHECK_TOOLS(STRIP, strip, true)
3141
NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
3142
NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
3143 3144
NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
3145
NCN_STRICT_CHECK_TOOLS(READELF, readelf)
3146 3147 3148 3149 3150
AC_SUBST(CC)
AC_SUBST(CXX)
AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)

3151
# Target tools.
3152
AC_ARG_WITH([build-time-tools], 
3153 3154
  [AS_HELP_STRING([--with-build-time-tools=PATH],
		  [use given path to find target tools during the build])],
3155 3156 3157 3158 3159 3160 3161 3162 3163
  [case x"$withval" in
     x/*) ;;
     *)
       with_build_time_tools=
       AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
       ;;
   esac],
  [with_build_time_tools=])

3164 3165 3166 3167 3168
NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
3169
NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo)
3170 3171 3172 3173 3174 3175 3176 3177

ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
3178
ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib)
3179
ACX_CHECK_INSTALLED_TARGET_TOOL(READELF_FOR_TARGET, readelf)
3180 3181
ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
3182
ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
3183

3184 3185 3186 3187 3188
RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"

GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
3189
dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
3190
GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
3191
		[gcc/xg++ -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 -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
3192 3193
		c++)
GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
3194
		[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 -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/libsupc++/.libs],
3195 3196 3197 3198 3199 3200 3201
		c++)
GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
		[gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
		[gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
3202 3203
GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC,
		[gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go)
3204 3205 3206 3207 3208
GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
3209
GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF, [binutils/readelf])
3210
GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new])
3211
GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
3212
GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
3213

3214
AC_SUBST(FLAGS_FOR_TARGET)
3215
AC_SUBST(RAW_CXX_FOR_TARGET)
3216

3217 3218 3219 3220
# Certain tools may need extra flags.
AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
Jason Merrill committed
3221

3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240
# When building target libraries, except in a Canadian cross, we use
# the same toolchain as the compiler we just built.
COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
if test $host = $build; then
  case " $configdirs " in
    *" gcc "*)
      COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
      COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
      COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
      ;;
  esac
fi

AC_SUBST(COMPILER_AS_FOR_TARGET)
AC_SUBST(COMPILER_LD_FOR_TARGET)
AC_SUBST(COMPILER_NM_FOR_TARGET)

3241 3242
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
AC_ARG_ENABLE(maintainer-mode,
3243 3244 3245
[AS_HELP_STRING([--enable-maintainer-mode],
		[enable make rules and dependencies not useful
		 (and sometimes confusing) to the casual installer])],
3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260
      USE_MAINTAINER_MODE=$enableval,
      USE_MAINTAINER_MODE=no)
AC_MSG_RESULT($USE_MAINTAINER_MODE)
AC_SUBST(MAINTAINER_MODE_TRUE)
AC_SUBST(MAINTAINER_MODE_FALSE)
if test "$USE_MAINTAINER_MODE" = yes; then
  MAINTAINER_MODE_TRUE=
  MAINTAINER_MODE_FALSE='#'
else
  MAINTAINER_MODE_TRUE='#'
  MAINTAINER_MODE_FALSE=
fi	
MAINT=$MAINTAINER_MODE_TRUE
AC_SUBST(MAINT)dnl

3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273
# ---------------------
# GCC bootstrap support
# ---------------------

# Stage specific cflags for build.
stage1_cflags="-g"
case $build in
  vax-*-*)
    case ${GCC} in
      yes) stage1_cflags="-g -Wa,-J" ;;
      *) stage1_cflags="-g -J" ;;
    esac ;;
esac
3274

3275 3276
AC_SUBST(stage1_cflags)

3277 3278
# Enable --enable-checking in stage1 of the compiler.
AC_ARG_ENABLE(stage1-checking,
3279 3280
[AS_HELP_STRING([[--enable-stage1-checking[=all]]],
		[choose additional checking for stage1 of the compiler])],
3281
[stage1_checking=--enable-checking=${enable_stage1_checking}],
3282
[if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
3283
  stage1_checking=--enable-checking=yes,types
3284
else
3285
  stage1_checking=--enable-checking=$enable_checking,types
3286 3287 3288
fi])
AC_SUBST(stage1_checking)

3289 3290
# Enable -Werror in bootstrap stage2 and later.
AC_ARG_ENABLE(werror,
3291 3292
[AS_HELP_STRING([--enable-werror],
		[enable -Werror in bootstrap stage2 and later])], [],
3293
[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
3294 3295 3296 3297
  enable_werror=yes
else
  enable_werror=no
fi])
3298 3299 3300
case ${enable_werror} in
  yes) stage2_werror_flag="--enable-werror-always" ;;
  *) stage2_werror_flag="" ;;
3301
esac
3302
AC_SUBST(stage2_werror_flag)
3303

3304 3305 3306 3307 3308 3309 3310
# Enable --enable-host-shared.
AC_ARG_ENABLE(host-shared,
[AS_HELP_STRING([--enable-host-shared],
		[build host code as shared libraries])],
[host_shared=$enableval], [host_shared=no])
AC_SUBST(host_shared)

3311 3312 3313 3314 3315 3316
# Specify what files to not compare during bootstrap.

compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
case "$target" in
  hppa*64*-*-hpux*) ;;
  hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
3317
  powerpc*-ibm-aix*) compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/* | *libgomp*\$(objext)" ;;
3318 3319 3320
esac
AC_SUBST(compare_exclusions)

3321 3322 3323 3324 3325 3326 3327 3328 3329
AC_CONFIG_FILES([Makefile],
  [sed "$extrasub_build" Makefile |
   sed "$extrasub_host" |
   sed "$extrasub_target" > mf$$
   mv -f mf$$ Makefile],
  [extrasub_build="$extrasub_build"
   extrasub_host="$extrasub_host"
   extrasub_target="$extrasub_target"])
AC_OUTPUT