X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=configure.in;h=bf37b8058b3ecc04773caed156986c67ae11d2e7;hp=bbb7910de412e64ab28cce29a1b828878e9cd4e2;hb=67e58aa289c7b891e84722f66f07d617dfd02791;hpb=6783d878387d2474d8a694d0b0eb8f7257e15963 diff --git a/configure.in b/configure.in index bbb7910de41..bf37b8058b3 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # 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 @@ -123,7 +123,7 @@ build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fix # these libraries are used by various programs built for the host environment # -host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp" +host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -151,7 +151,8 @@ target_libraries="target-libiberty \ target-libgfortran \ ${libgcj} \ target-libobjc \ - target-libada" + target-libada \ + target-libgomp" # these tools are built using the target libraries, and are intended to # run only in the target environment @@ -225,7 +226,7 @@ esac # Some tools are only suitable for building in a "native" situation. # Remove these if host!=target. -native_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" +native_only="autoconf automake libtool fileutils find gawk gettext gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff target-groff guile perl time ash bash bzip2 prms gnuserv target-gperf" # Similarly, some are only suitable for cross toolchains. # Remove these if host=target. @@ -303,7 +304,6 @@ AC_ARG_ENABLE(libada, ENABLE_LIBADA=$enableval, ENABLE_LIBADA=yes) if test "${ENABLE_LIBADA}" != "yes" ; then - noconfigdirs="$noconfigdirs target-libada" noconfigdirs="$noconfigdirs gnattools" fi @@ -311,9 +311,6 @@ AC_ARG_ENABLE(libssp, [ --enable-libssp Builds libssp directory], ENABLE_LIBSSP=$enableval, ENABLE_LIBSSP=yes) -if test "${ENABLE_LIBSSP}" != "yes" ; then - noconfigdirs="$noconfigdirs target-libssp" -fi # Save it here so that, even in case of --enable-libgcj, if the Java # front-end isn't enabled, we still get libgcj disabled. @@ -332,16 +329,10 @@ no) esac -# Allow --disable-libmudflap to exclude target-libmudflap -case $enable_libmudflap in -yes) - ;; -no) - noconfigdirs="$noconfigdirs target-libmudflap" - ;; -"") +# Disable libmudflap on some systems. +if test x$enable_libmudflap = x ; then case "${target}" in - *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) + *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu) # Enable libmudflap by default in GNU and friends. ;; *-*-freebsd*) @@ -352,7 +343,25 @@ no) noconfigdirs="$noconfigdirs target-libmudflap" ;; esac -esac +fi + +# Disable libgomp on non POSIX hosted systems. +if test x$enable_libgomp = x ; then + # Enable libgomp by default on hosted POSIX systems. + case "${target}" in + *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu) + ;; + *-*-netbsd* | *-*-freebsd* | *-*-openbsd*) + ;; + *-*-solaris2* | *-*-sysv4* | *-*-irix* | *-*-osf* | *-*-hpux*) + ;; + *-*-darwin* | *-*-aix*) + ;; + *) + noconfigdirs="$noconfigdirs target-libgomp" + ;; + esac +fi case "${target}" in @@ -423,9 +432,6 @@ case "${target}" in *-*-vxworks*) noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty target-libstdc++-v3 ${libgcj}" ;; - m32c-*-*) - noconfigdirs="$noconfigdirs target-libstdc++-v3" - ;; alpha*-dec-osf*) # ld works, but does not support shared libraries. # newlib is not 64 bit ready. I'm not sure about fileutils. @@ -502,7 +508,7 @@ case "${target}" in ;; bfin-*-*) noconfigdirs="$noconfigdirs target-libgloss gdb" - if [ x${is_cross_compiler} != xno ] ; then + if test x${is_cross_compiler} != xno ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi ;; @@ -565,6 +571,9 @@ case "${target}" in hppa*64*-*-*) noconfigdirs="$noconfigdirs ${libgcj}" ;; + hppa*-hp-hpux11*) + noconfigdirs="$noconfigdirs ld shellutils" + ;; hppa*-*-*) # According to Alexandre Oliva , libjava won't # build on HP-UX 10.20. @@ -656,6 +665,9 @@ case "${target}" in i[[3456789]]86-*-beos*) noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; + i[[3456789]]86-*-rdos*) + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" + ;; m32r-*-*) noconfigdirs="$noconfigdirs ${libgcj}" ;; @@ -683,7 +695,7 @@ case "${target}" in mn10300-*-*) noconfigdirs="$noconfigdirs ${libgcj}" ;; - ms1-*-*) + mt-*-*) noconfigdirs="$noconfigdirs sim" ;; powerpc-*-aix*) @@ -967,6 +979,12 @@ case "${host}" in powerpc-*-darwin*) host_makefile_frag="config/mh-ppc-darwin" ;; + powerpc-*-aix*) + host_makefile_frag="config/mh-ppc-aix" + ;; + rs6000-*-aix*) + host_makefile_frag="config/mh-ppc-aix" + ;; *-*-lynxos*) # /bin/cc is less than useful for our purposes. Always use GCC tentative_cc="/bin/gcc" @@ -1010,8 +1028,6 @@ if test "${build}" != "${host}" ; then CXX=${CXX-${host_alias}-c++} CXXFLAGS=${CXXFLAGS-"-g -O2"} CC_FOR_BUILD=${CC_FOR_BUILD-gcc} - BUILD_PREFIX=${build_alias}- - BUILD_PREFIX_1=${build_alias}- else # Set reasonable default values for some tools even if not Canadian. @@ -1023,9 +1039,6 @@ else # This is all going to change when we autoconfiscate... CC_FOR_BUILD="\$(CC)" - BUILD_PREFIX= - BUILD_PREFIX_1=loser- - AC_PROG_CC # We must set the default linker to the linker used by gcc for the correct @@ -1055,6 +1068,26 @@ fi ACX_PROG_GNAT ACX_PROG_CMP_IGNORE_INITIAL +# Check for html and install-html +AC_ARG_WITH(datarootdir, +[ --with-datarootdir Use datarootdir as the data root directory.], +[datarootdir="\${prefix}/${withval}"], +[datarootdir="\${prefix}/share"]) + +AC_ARG_WITH(docdir, +[ --with-docdir Install documentation in this directory.], +[docdir="\${prefix}/${withval}"], +[docdir="\${datarootdir}/doc"]) + +AC_ARG_WITH(htmldir, +[ --with-htmldir Install html in this directory.], +[htmldir="\${prefix}/${withval}"], +[htmldir="\${docdir}"]) + +AC_SUBST(datarootdir) +AC_SUBST(docdir) +AC_SUBST(htmldir) + # Check for GMP and MPFR gmplibs= gmpinc= @@ -1119,8 +1152,8 @@ if test x"$have_gmp" = xyes; then #include ], [mpfr_t n; mpfr_init(n);], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no]) LIBS="$saved_LIBS" - CFLAGS="$saved_CFLAGS" fi +CFLAGS="$saved_CFLAGS" # Flags needed for both GMP and/or MPFR AC_SUBST(gmplibs) @@ -1292,6 +1325,14 @@ Recognised languages are: ${potential_languages}]) ac_configure_args=`echo " $ac_configure_args" | sed -e 's/ --enable-languages=[[^ ]]*//' -e 's/$/ --enable-languages='"$enable_languages"/ ` fi +# Handle --disable- 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` + if eval test x\${enable_${dirname}} "=" xno ; then + noconfigdirs="$noconfigdirs $dir" + fi +done + # Remove the entries in $skipdirs and $noconfigdirs from $configdirs, # $build_configdirs and $target_configdirs. # If we have the source for $noconfigdirs entries, add them to $notsupp. @@ -1465,6 +1506,39 @@ if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then fi fi +# Set with_gnu_as and with_gnu_ld as appropriate. +# +# 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 +# --without-gnu-ld options for the configure script. + +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 && + echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then + with_gnu_ld=yes + extra_host_args="$extra_host_args --with-gnu-ld" +fi + +# 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 + # Handle ${copy_dirs} set fnord ${copy_dirs} shift @@ -1496,6 +1570,55 @@ while test $# != 0 ; do shift; shift done +# 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 + alpha*-*-*vms*) + md_exec_prefix=/gnu/lib/gcc-lib + ;; + i[34567]86-pc-msdosdjgpp*) + md_exec_prefix=/dev/env/DJDIR/bin + ;; + i[34567]86-*-sco3.2v5*) + if test $with_gnu_as = yes; then + md_exec_prefix=/usr/gnu/bin + else + md_exec_prefix=/usr/ccs/bin/elf + fi + ;; + + mn10300-*-* | \ + powerpc-*-chorusos* | \ + powerpc*-*-eabi* | \ + powerpc*-*-sysv* | \ + powerpc*-*-kaos* | \ + s390x-ibm-tpf*) + md_exec_prefix=/usr/ccs/bin + ;; + sparc64-*-elf*) + ;; + v850*-*-*) + md_exec_prefix=/usr/ccs/bin + ;; + xtensa-*-elf*) + ;; + + *-*-beos* | \ + *-*-elf* | \ + *-*-hpux* | \ + *-*-netware* | \ + *-*-nto-qnx* | \ + *-*-rtems* | \ + *-*-solaris2* | \ + *-*-sysv[45]* | \ + *-*-vxworks* | \ + *-wrs-windiss) + md_exec_prefix=/usr/ccs/bin + ;; +esac + extra_arflags_for_target= extra_nmflags_for_target= extra_ranlibflags_for_target= @@ -1553,39 +1676,6 @@ case "${enable_target_optspace}:${target}" in ;; esac -# Set with_gnu_as and with_gnu_ld as appropriate. -# -# 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 -# --without-gnu-ld options for the configure script. - -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 && - echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then - with_gnu_ld=yes - extra_host_args="$extra_host_args --with-gnu-ld" -fi - -# 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 - # Default to using --with-stabs for certain targets. if test x${with_stabs} = x ; then case "${target}" in @@ -1611,17 +1701,6 @@ esac tooldir='${exec_prefix}'/${target_alias} build_tooldir=${tooldir} -# 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([CONFIGURED_BISON], [bison], [$MISSING bison]) -AC_CHECK_PROGS([CONFIGURED_YACC], ['bison -y' byacc yacc], [$MISSING bison -y]) -AC_CHECK_PROGS([CONFIGURED_M4], [gm4 gnum4 m4], [$MISSING m4]) -AC_CHECK_PROGS([CONFIGURED_FLEX], [flex], [$MISSING flex]) -AC_CHECK_PROGS([CONFIGURED_LEX], [flex lex], [$MISSING flex]) -AC_CHECK_PROGS([CONFIGURED_MAKEINFO], makeinfo, [$MISSING makeinfo]) - # Create a .gdbinit file which runs the one in srcdir # and tells GDB to look there for source files. @@ -1724,6 +1803,8 @@ case "$enable_gdbtk" in fi ;; esac +CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g` +INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g` # Strip out unwanted targets. @@ -1739,7 +1820,7 @@ esac # not to nest @if/@endif pairs, because configure will not warn you at all. AC_ARG_ENABLE([bootstrap], -[ --enable-bootstrap[=lean] Enable bootstrapping [no]],, +[ --enable-bootstrap Enable bootstrapping [yes if native build]],, enable_bootstrap=default) # Issue errors and warnings for invalid/strange bootstrap combinations. @@ -1751,27 +1832,26 @@ esac case "$have_compiler:$host:$target:$enable_bootstrap" in *:*:*:no) ;; - # Default behavior. (We'll) enable bootstrap if we have a compiler + # Default behavior. Enable bootstrap if we have a compiler # and we are in a native configuration. yes:$build:$build:default) - # This will become 'yes' - enable_bootstrap=no ;; + 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 | yes:$build:$build:lean) + yes:$build:$build:yes) ;; # Other configurations, but we have a compiler. Assume the user knows # what he's doing. - yes:*:*:yes | yes:*:*:lean) + yes:*:*:yes) AC_MSG_WARN([trying to bootstrap a cross compiler]) ;; # No compiler: if they passed --enable-bootstrap explicitly, fail - no:*:*:yes | no:*:*:lean) + no:*:*:yes) AC_MSG_ERROR([cannot bootstrap without a compiler]) ;; # Fail if wrong command line @@ -1783,15 +1863,10 @@ esac # Adjust the toplevel makefile according to whether bootstrap was selected. case "$enable_bootstrap" in yes) - bootstrap_lean='#' - bootstrap_suffix=bootstrap ;; - lean) - bootstrap_lean='' bootstrap_suffix=bootstrap ;; no) bootstrap_suffix=no-bootstrap ;; esac -AC_SUBST(bootstrap_lean) for module in ${build_configdirs} ; do if test -z "${no_recursion}" \ @@ -1806,10 +1881,13 @@ for module in ${build_configdirs} ; do /^@endif build-$module-$bootstrap_suffix\$/d" done for module in ${configdirs} ; do - if test -z "${no_recursion}" \ - && test -f ${module}/Makefile; then - echo 1>&2 "*** removing ${module}/Makefile to force reconfigure" - rm -f ${module}/Makefile + if test -z "${no_recursion}"; then + for file in stage*-${module}/Makefile ${module}/Makefile; do + if test -f ${file}; then + echo 1>&2 "*** removing ${file} to force reconfigure" + rm -f ${file} + fi + done fi extrasub="$extrasub /^@if $module\$/d @@ -2058,6 +2136,20 @@ if test "x${use_gnu_ld}" = x && FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld' fi +# Search for other target-specific linker scripts and such. +case "${target}" in + m32c-*-* ) + if test -d ${srcdir}/libgloss/m32c; then + # This is for crt0.o + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/m32c' + # This is for r8c.ld + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/m32c' + # This is for libnosys.a + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys' + fi + ;; +esac + # Makefile fragments. for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag; do @@ -2073,11 +2165,11 @@ AC_SUBST_FILE(ospace_frag) # Miscellanea: directories, flags, etc. AC_SUBST(RPATH_ENVVAR) -AC_SUBST(BUILD_PREFIX) -AC_SUBST(BUILD_PREFIX_1) AC_SUBST(tooldir) AC_SUBST(build_tooldir) +AC_SUBST(CONFIGURE_GDB_TK) AC_SUBST(GDB_TK) +AC_SUBST(INSTALL_GDB_TK) # Build module lists & subconfigure args. AC_SUBST(build_configargs) @@ -2089,19 +2181,87 @@ AC_SUBST(configdirs) # Target module lists & subconfigure args. AC_SUBST(target_configargs) -AC_SUBST(target_configdirs) + # Build tools. AC_SUBST(CC_FOR_BUILD) AC_SUBST(config_shell) +# 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' ;; + *" byacc "*) YACC='$$r/$(BUILD_SUBDIR)/byacc/byacc' ;; +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(,) + # For an installed makeinfo, we require it to be from texinfo 4.4 or + # higher, else we use the "missing" dummy. + if ${MAKEINFO} --version \ + | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then + : + 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 "*) + test $host = $build && RUNTEST='$$r/$(HOST_SUBDIR)/dejagnu/runtest' + ;; +esac + + # Host tools. NCN_STRICT_CHECK_TOOLS(AR, ar) NCN_STRICT_CHECK_TOOLS(AS, as) NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool) NCN_STRICT_CHECK_TOOLS(LD, ld) +NCN_STRICT_CHECK_TOOLS(LIPO, lipo) NCN_STRICT_CHECK_TOOLS(NM, nm) NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :) +NCN_STRICT_CHECK_TOOLS(STRIP, strip, :) NCN_STRICT_CHECK_TOOLS(WINDRES, windres) NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy) NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump) @@ -2111,101 +2271,62 @@ AC_SUBST(CFLAGS) AC_SUBST(CFLAGS_FOR_BUILD) AC_SUBST(CXXFLAGS) -# Target tools. Do the tests using the names they may have passed in -# the environment, then move it to CONFIGURED_*_FOR_TARGET. -NCN_STRICT_CHECK_TARGET_TOOLS(AR_FOR_TARGET, ar) -NCN_STRICT_CHECK_TARGET_TOOLS(AS_FOR_TARGET, as) +# Target tools. +AC_ARG_WITH([build-time-tools], + [ --with-build-time-tools=path + use given path to find target tools during the build], + [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=]) + 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(DLLTOOL_FOR_TARGET, dlltool) 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) -NCN_STRICT_CHECK_TARGET_TOOLS(LD_FOR_TARGET, ld) -NCN_STRICT_CHECK_TARGET_TOOLS(LIPO_FOR_TARGET, lipo) -NCN_STRICT_CHECK_TARGET_TOOLS(NM_FOR_TARGET, nm) -NCN_STRICT_CHECK_TARGET_TOOLS(OBJDUMP_FOR_TARGET, objdump) -NCN_STRICT_CHECK_TARGET_TOOLS(RANLIB_FOR_TARGET, ranlib, :) -NCN_STRICT_CHECK_TARGET_TOOLS(STRIP_FOR_TARGET, strip) -NCN_STRICT_CHECK_TARGET_TOOLS(WINDRES_FOR_TARGET, windres) - -CONFIGURED_AR_FOR_TARGET="$AR_FOR_TARGET" -CONFIGURED_AS_FOR_TARGET="$AS_FOR_TARGET" -CONFIGURED_CC_FOR_TARGET="$CC_FOR_TARGET" -CONFIGURED_CXX_FOR_TARGET="$CXX_FOR_TARGET" -CONFIGURED_DLLTOOL_FOR_TARGET="$DLLTOOL_FOR_TARGET" -CONFIGURED_GCC_FOR_TARGET="$GCC_FOR_TARGET" -CONFIGURED_GCJ_FOR_TARGET="$GCJ_FOR_TARGET" -CONFIGURED_GFORTRAN_FOR_TARGET="$GFORTRAN_FOR_TARGET" -CONFIGURED_LD_FOR_TARGET="$LD_FOR_TARGET" -CONFIGURED_LIPO_FOR_TARGET="$LIPO_FOR_TARGET" -CONFIGURED_NM_FOR_TARGET="$NM_FOR_TARGET" -CONFIGURED_OBJDUMP_FOR_TARGET="$OBJDUMP_FOR_TARGET" -CONFIGURED_RANLIB_FOR_TARGET="$RANLIB_FOR_TARGET" -CONFIGURED_STRIP_FOR_TARGET="$STRIP_FOR_TARGET" -CONFIGURED_WINDRES_FOR_TARGET="$WINDRES_FOR_TARGET" - -AC_SUBST(CONFIGURED_AR_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_AS_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_CC_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_CXX_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_DLLTOOL_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_GCC_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_GCJ_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_GFORTRAN_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_LD_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_LIPO_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_NM_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_OBJDUMP_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_RANLIB_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_STRIP_FOR_TARGET)dnl -AC_SUBST(CONFIGURED_WINDRES_FOR_TARGET)dnl -AC_SUBST(FLAGS_FOR_TARGET) -# Fix up target tools. -if test "x${build}" = "x${host}" ; then - # In this case, the newly built tools can and should be used, - # so we override the results of the autoconf tests. - # This should really only happen when the tools are actually being built, - # but that's a further refinement. The new build scheme, where - # tools are built into a structure paralleling where they're installed, - # should also eliminate all of this cleanly. - AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)" - AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)" - CC_FOR_TARGET="\$(USUAL_CC_FOR_TARGET)" - CXX_FOR_TARGET="\$(USUAL_CXX_FOR_TARGET)" - RAW_CXX_FOR_TARGET="\$(USUAL_RAW_CXX_FOR_TARGET)" - DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)" - GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)" - GCJ_FOR_TARGET="\$(USUAL_GCJ_FOR_TARGET)" - GFORTRAN_FOR_TARGET="\$(USUAL_GFORTRAN_FOR_TARGET)" - LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)" - LIPO_FOR_TARGET="\$(USUAL_LIPO_FOR_TARGET)" - NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)" - OBJDUMP_FOR_TARGET="\$(USUAL_OBJDUMP_FOR_TARGET)" - RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)" - STRIP_FOR_TARGET="\$(USUAL_STRIP_FOR_TARGET)" - WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)" -else - # Just use the ones we found. - AR_FOR_TARGET="\$(CONFIGURED_AR_FOR_TARGET)" - AS_FOR_TARGET="\$(CONFIGURED_AS_FOR_TARGET)" - CC_FOR_TARGET="\$(CONFIGURED_CC_FOR_TARGET)" - CXX_FOR_TARGET="\$(CONFIGURED_CXX_FOR_TARGET)" - RAW_CXX_FOR_TARGET="\$(CONFIGURED_CXX_FOR_TARGET)" - DLLTOOL_FOR_TARGET="\$(CONFIGURED_DLLTOOL_FOR_TARGET)" - GCC_FOR_TARGET="\$(CONFIGURED_GCC_FOR_TARGET)" - GCJ_FOR_TARGET="\$(CONFIGURED_GCJ_FOR_TARGET)" - GFORTRAN_FOR_TARGET="\$(CONFIGURED_GFORTRAN_FOR_TARGET)" - LD_FOR_TARGET="\$(CONFIGURED_LD_FOR_TARGET)" - LIPO_FOR_TARGET="\$(CONFIGURED_LIPO_FOR_TARGET)" - NM_FOR_TARGET="\$(CONFIGURED_NM_FOR_TARGET)" - OBJDUMP_FOR_TARGET="\$(CONFIGURED_OBJDUMP_FOR_TARGET)" - RANLIB_FOR_TARGET="\$(CONFIGURED_RANLIB_FOR_TARGET)" - STRIP_FOR_TARGET="\$(CONFIGURED_STRIP_FOR_TARGET)" - WINDRES_FOR_TARGET="\$(CONFIGURED_WINDRES_FOR_TARGET)" -fi +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) +ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :) +ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip) +ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres) + +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/]) +GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX, + [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], + c++) +GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX, + [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], + 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) +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]) +GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip]) +GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres]) +AC_SUBST(FLAGS_FOR_TARGET) AC_SUBST(RAW_CXX_FOR_TARGET) # Certain tools may need extra flags. @@ -2213,6 +2334,25 @@ 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} +# 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) + AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful @@ -2254,36 +2394,6 @@ case $build in esac AC_SUBST(stage1_cflags) -# It makes debugging easier if we create as symlinks the stage directories -# gcc for stageN-gcc and stagePREV-gcc for stage(N-1). In case this is not -# possible, however, we can resort to mv. -AC_CACHE_CHECK([if symbolic links between directories work], -[gcc_cv_prog_ln_s_dir], -[if test "${LN_S}" = "ln -s" \ - && mkdir confdir.s1 \ - && ln -s confdir.s1 confdir.s2 \ - && echo timestamp1 > confdir.s1/conftest.1 \ - && cmp confdir.s1/conftest.1 confdir.s2/conftest.1 \ - && echo timestamp2 > confdir.s2/conftest.2 \ - && cmp confdir.s1/conftest.2 confdir.s1/conftest.2 \ - && rm -f confdir.s2; then - gcc_cv_prog_ln_s_dir=yes -else - gcc_cv_prog_ln_s_dir=no -fi -rm -rf confdir.s1 confdir.s2]) - -case ${gcc_cv_prog_ln_s_dir} in - yes) - CREATE_LINK_TO_DIR='ln -s $$1 $$2' - UNDO_LINK_TO_DIR='rm -f $$1' ;; - *) - CREATE_LINK_TO_DIR='mv $$1 $$2' - UNDO_LINK_TO_DIR='mv $$1 $$2' ;; -esac -AC_SUBST(CREATE_LINK_TO_DIR) -AC_SUBST(UNDO_LINK_TO_DIR) - # Enable -Werror in bootstrap stage2 and later. # Change the default to "no" on release branches. AC_ARG_ENABLE(werror,