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