X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=configure.in;h=d3a7067855adcd5660a9a4564d5454a0d9c6010e;hb=ae6555f96ea9f19d483f2def31ab167c91d4d578;hp=3f86f58aa94e619b1fdec50e1387066048bd8bd6;hpb=058a5366dcc2cddaa7ffe607e7f33b5cccc25a39;p=pf3gnuchains%2Fgcc-fork.git diff --git a/configure.in b/configure.in index 3f86f58aa94..d3a7067855a 100644 --- a/configure.in +++ b/configure.in @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ############################################################################## ### WARNING: this file contains embedded tabs. Do not run untabify on this file. @@ -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 @@ -147,6 +147,7 @@ target_libraries="target-libiberty \ target-newlib \ target-libstdc++-v3 \ target-libmudflap \ + target-libssp \ target-libgfortran \ ${libgcj} \ target-libobjc \ @@ -257,6 +258,10 @@ case "${host}" in configdirs="$configdirs libtermcap" ;; esac +# A target can indicate whether a language isn't supported for some reason. +# Only spaces may be used in this macro; not newlines or tabs. +unsupported_languages= + # Remove more programs from consideration, based on the host or # target this usually means that a port of the program doesn't # exist yet. @@ -302,6 +307,14 @@ if test "${ENABLE_LIBADA}" != "yes" ; then noconfigdirs="$noconfigdirs gnattools" fi +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. libgcj_saved=$libgcj @@ -348,9 +361,11 @@ case "${target}" in ;; powerpc-*-darwin*) noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof" + noconfigdirs="$noconfigdirs sim target-rda" ;; *-*-darwin*) - noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof" + noconfigdirs="$noconfigdirs ld gas gdb gprof" + noconfigdirs="$noconfigdirs sim target-rda" noconfigdirs="$noconfigdirs ${libgcj}" ;; *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*) @@ -398,11 +413,18 @@ case "${target}" in *-*-rtems*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; + # The tpf target doesn't support gdb yet. + *-*-tpf*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl" + ;; *-*-uclinux*) noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}" ;; *-*-vxworks*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj}" + 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. @@ -453,6 +475,10 @@ case "${target}" in arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* ) noconfigdirs="$noconfigdirs target-libffi target-qthreads" ;; + arm*-*-linux-gnueabi) + noconfigdirs="$noconfigdirs target-libffi target-qthreads" + noconfigdirs="$noconfigdirs target-libjava target-libobjc" + ;; arm*-*-symbianelf*) noconfigdirs="$noconfigdirs ${libgcj} target-libiberty" ;; @@ -474,6 +500,12 @@ case "${target}" in avr-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" ;; + bfin-*-*) + noconfigdirs="$noconfigdirs target-libgloss gdb" + if test x${is_cross_compiler} != xno ; then + target_configdirs="${target_configdirs} target-bsp target-cygmon" + fi + ;; c4x-*-* | tic4x-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" ;; @@ -481,15 +513,18 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib" ;; cris-*-* | crisv32-*-*) - libgcj_ex_libffi=`echo ${libgcj} | sed -e 's/target-libffi//'` + unsupported_languages="$unsupported_languages java" case "${target}" in *-*-aout) - noconfigdirs="$noconfigdirs ${libgcj}";; + unsupported_languages="$unsupported_languages fortran" + noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";; *-*-elf) - noconfigdirs="$noconfigdirs ${libgcj_ex_libffi}";; + unsupported_languages="$unsupported_languages fortran" + noconfigdirs="$noconfigdirs target-boehm-gc";; *-*-linux*) - noconfigdirs="$noconfigdirs ${libgcj_ex_libffi} target-newlib target-libgloss";; + noconfigdirs="$noconfigdirs target-newlib target-libgloss";; *) + unsupported_languages="$unsupported_languages fortran" noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";; esac ;; @@ -639,7 +674,8 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libstdc++-v3" ;; mmix-*-*) - noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss target-libgfortran" + noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb libgloss" + unsupported_languages="$unsupported_languages fortran java" ;; mn10200-*-*) noconfigdirs="$noconfigdirs ${libgcj}" @@ -652,7 +688,7 @@ case "${target}" in ;; powerpc-*-aix*) # copied from rs6000-*-* entry - noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}" ;; powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe) target_configdirs="$target_configdirs target-winsup" @@ -676,7 +712,7 @@ case "${target}" in noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}" ;; rs6000-*-aix*) - noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}" ;; rs6000-*-*) noconfigdirs="$noconfigdirs gprof ${libgcj}" @@ -974,10 +1010,6 @@ if test "${build}" != "${host}" ; then CXX=${CXX-${host_alias}-c++} CXXFLAGS=${CXXFLAGS-"-g -O2"} CC_FOR_BUILD=${CC_FOR_BUILD-gcc} - CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc} - CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++} - GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj} - GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}} BUILD_PREFIX=${build_alias}- BUILD_PREFIX_1=${build_alias}- @@ -991,7 +1023,6 @@ else # This is all going to change when we autoconfiscate... CC_FOR_BUILD="\$(CC)" - GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)" BUILD_PREFIX= BUILD_PREFIX_1=loser- @@ -1122,6 +1153,15 @@ if test -d ${srcdir}/gcc; then fi enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'` + # 'f95' is the old name for the 'fortran' language. We issue a warning + # and make the substitution. + case ,${enable_languages}, in + *,f95,*) + echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2 + enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'` + ;; + esac + # First scan to see if an enabled language requires some other language. # We assume that a given config-lang.in will list all the language # front ends it requires, even if some are required indirectly. @@ -1210,7 +1250,14 @@ if test -d ${srcdir}/gcc; then add_this_lang=no ;; esac - + + # Disable a language that is unsupported by the target. + case " $unsupported_languages " in + *" $language "*) + add_this_lang=no + ;; + esac + case $add_this_lang in no) # Remove language-dependent dirs. @@ -1372,6 +1419,15 @@ esac copy_dirs= +AC_ARG_WITH([build-sysroot], + [ --with-build-sysroot=sysroot + use sysroot as the system root during the build], + [if test x"$withval" != x ; then + SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval" + fi], + [SYSROOT_CFLAGS_FOR_TARGET=]) +AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET) + # Handle --with-headers=XXX. If the value is not "yes", the contents of # the named directory are copied to $(tooldir)/sys-include. if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then @@ -1555,17 +1611,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. @@ -1668,6 +1713,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. @@ -1728,18 +1775,14 @@ esac case "$enable_bootstrap" in yes) bootstrap_lean='#' - default_target=bootstrap bootstrap_suffix=bootstrap ;; lean) bootstrap_lean='' - default_target=bootstrap bootstrap_suffix=bootstrap ;; no) - default_target=all bootstrap_suffix=no-bootstrap ;; esac AC_SUBST(bootstrap_lean) -AC_SUBST(default_target) for module in ${build_configdirs} ; do if test -z "${no_recursion}" \ @@ -2006,89 +2049,6 @@ if test "x${use_gnu_ld}" = x && FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld' fi -if test "x${CC_FOR_TARGET+set}" = xset; then - : -elif test -d ${srcdir}/gcc; then - CC_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/' -elif test "$host" = "$target"; then - CC_FOR_TARGET='$(CC)' -else - CC_FOR_TARGET=`echo gcc | sed "${program_transform_name}"` -fi -CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' - -if test "x${GCJ_FOR_TARGET+set}" = xset; then - : -elif test -d ${srcdir}/gcc; then - GCJ_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/' -elif test "$host" = "$target"; then - GCJ_FOR_TARGET='gcj' -else - GCJ_FOR_TARGET=`echo gcj | sed "${program_transform_name}"` -fi -GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' - -if test "x${GFORTRAN_FOR_TARGET+set}" = xset; then - : -elif test -d ${srcdir}/gcc; then - GFORTRAN_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/' -elif test "$host" = "$target"; then - GFORTRAN_FOR_TARGET='gfortran' -else - GFORTRAN_FOR_TARGET=`echo gfortran | sed "${program_transform_name}"` -fi -case $GFORTRAN_FOR_TARGET in -*' $(FLAGS_FOR_TARGET)') ;; -*) GFORTRAN_FOR_TARGET=$GFORTRAN_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; -esac - -# Don't use libstdc++-v3's flags to configure/build itself. -libstdcxx_flags='`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' -raw_libstdcxx_flags='-L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' - -if test "x${CXX_FOR_TARGET+set}" = xset; then - if test "x${RAW_CXX_FOR_TARGET+set}" != xset; then - RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} - fi -elif test -d ${srcdir}/gcc; then - # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead - # of g++ for linking C++ or Java, because g++ has -shared-libgcc by - # default whereas gcc does not. - # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for - # all other cases. - CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ '$libstdcxx_flags - RAW_CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ '$raw_libstdcxx_flags -elif test "$host" = "$target"; then - CXX_FOR_TARGET='$(CXX)' - RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} -else - CXX_FOR_TARGET=`echo c++ | sed "${program_transform_name}"` - RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} -fi -CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' -RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' - -qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'` -qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'` - -# We want to defer the evaluation of `cmd`s and shell variables in -# CXX_FOR_TARGET when recursing in the top-level Makefile, such as for -# bootstrap. We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single -# quotes, but we still have to duplicate `$'s so that shell variables -# can be expanded by the nested make as shell variables, not as make -# macros. -qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'` -qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'` - -# Wrap CC_FOR_TARGET and friends, for certain types of builds. -CC_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}" -GCJ_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}" -GFORTRAN_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GFORTRAN_FOR_TARGET}" -CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}" -RAW_CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}" -CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}" -RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}" - # Makefile fragments. for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag; do @@ -2108,7 +2068,9 @@ 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) @@ -2126,16 +2088,84 @@ AC_SUBST(target_configdirs) 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.2 or + # higher, else we use the "missing" dummy. + if ${MAKEINFO} --version \ + | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[2-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_TOOL(AR, ar) -NCN_STRICT_CHECK_TOOL(AS, as) -NCN_STRICT_CHECK_TOOL(DLLTOOL, dlltool) -NCN_STRICT_CHECK_TOOL(LD, ld) -NCN_STRICT_CHECK_TOOL(NM, nm) -NCN_STRICT_CHECK_TOOL(RANLIB, ranlib, :) -NCN_STRICT_CHECK_TOOL(WINDRES, windres) -NCN_STRICT_CHECK_TOOL(OBJCOPY, objcopy) -NCN_STRICT_CHECK_TOOL(OBJDUMP, objdump) +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) AC_SUBST(CC) AC_SUBST(CXX) AC_SUBST(CFLAGS) @@ -2143,62 +2173,74 @@ AC_SUBST(CFLAGS_FOR_BUILD) AC_SUBST(CXXFLAGS) # Target tools. -NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_AR_FOR_TARGET, ar) -NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_AS_FOR_TARGET, as) -NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_DLLTOOL_FOR_TARGET, dlltool) -NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_LD_FOR_TARGET, ld) -NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_NM_FOR_TARGET, nm) -NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_RANLIB_FOR_TARGET, ranlib, :) -NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_WINDRES_FOR_TARGET, windres) - -AC_SUBST(GCC_FOR_TARGET) +NCN_STRICT_CHECK_TARGET_TOOLS(AR_FOR_TARGET, ar) +NCN_STRICT_CHECK_TARGET_TOOLS(AS_FOR_TARGET, as) +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) + +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(CC_FOR_TARGET) -AC_SUBST(GCJ_FOR_TARGET) -AC_SUBST(GFORTRAN_FOR_TARGET) -AC_SUBST(CXX_FOR_TARGET) AC_SUBST(RAW_CXX_FOR_TARGET) -AC_SUBST(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE) -AC_SUBST(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE) - -# 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)" - DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)" - LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)" - NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)" - RANLIB_FOR_TARGET="\$(USUAL_RANLIB_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)" - DLLTOOL_FOR_TARGET="\$(CONFIGURED_DLLTOOL_FOR_TARGET)" - LD_FOR_TARGET="\$(CONFIGURED_LD_FOR_TARGET)" - NM_FOR_TARGET="\$(CONFIGURED_NM_FOR_TARGET)" - RANLIB_FOR_TARGET="\$(CONFIGURED_RANLIB_FOR_TARGET)" - WINDRES_FOR_TARGET="\$(CONFIGURED_WINDRES_FOR_TARGET)" -fi -AC_SUBST(AR_FOR_TARGET) -AC_SUBST(AS_FOR_TARGET) -AC_SUBST(DLLTOOL_FOR_TARGET) -AC_SUBST(LD_FOR_TARGET) -AC_SUBST(NM_FOR_TARGET) -AC_SUBST(RANLIB_FOR_TARGET) -AC_SUBST(WINDRES_FOR_TARGET) # Certain tools may need extra flags. AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target} RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target} NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} +# 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