diff options
Diffstat (limited to 'contrib/binutils/configure.in')
-rw-r--r-- | contrib/binutils/configure.in | 183 |
1 files changed, 131 insertions, 52 deletions
diff --git a/contrib/binutils/configure.in b/contrib/binutils/configure.in index 1284aa6..a9219bb 100644 --- a/contrib/binutils/configure.in +++ b/contrib/binutils/configure.in @@ -14,7 +14,7 @@ ## For more information on these two systems, check out the documentation ## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi). -# Copyright (C) 1992-99, 2000 Free Software Foundation, Inc. +# Copyright (C) 1992-99, 2000, 2001 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 @@ -321,6 +321,9 @@ if [ x${shared} = xyes ]; then powerpc*-*-*) host_makefile_frag="${host_makefile_frag} config/mh-ppcpic" ;; + s390-* | s390x-*) + host_makefile_frag="${host_makefile_frag} config/mh-s390pic" + ;; *-*-*) if test -f ${srcdir}/config/mh-${host_cpu}pic; then host_makefile_frag="${host_makefile_frag} config/mh-${host_cpu}pic" @@ -431,6 +434,18 @@ if [ ! -d ${target_subdir} ] ; then fi fi +build_subdir=${build_alias} + +if [ x"${build_alias}" != x"${host}" ] ; then + if [ ! -d ${build_subdir} ] ; then + if mkdir ${build_subdir} ; then true + else + echo "'*** could not make ${PWD=`pwd`}/${build_subdir}" 1>&2 + exit 1 + fi + fi +fi + copy_dirs= # Handle --with-headers=XXX. The contents of the named directory are @@ -555,7 +570,7 @@ case "${host}" in noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" ;; *-*-cygwin*) - noconfigdirs="autoconf automake send-pr rcs guile perl texinfo apache inet" + noconfigdirs="autoconf automake send-pr rcs guile perl apache inet" ;; *-*-netbsd*) noconfigdirs="rcs" @@ -569,7 +584,34 @@ case "${host}" in esac +# Save it here so that, even in case of --enable-libgcj, if the Java +# front-end isn't enabled, we still get libgcj disabled. +libgcj_saved=$libgcj +case $enable_libgcj in +yes) + # If we reset it here, it won't get added to noconfigdirs in the + # target-specific build rules, so it will be forcibly enabled + # (unless the Java language itself isn't enabled). + libgcj= + ;; +no) + # Make sure we get it printed in the list of not supported target libs. + noconfigdirs="$noconfigdirs ${libgcj}" + ;; +esac + case "${target}" in + *-*-netbsd*) + # Skip some stuff on all NetBSD configurations. + skipdirs="$skipdirs target-newlib target-libiberty target-libgloss" + + # Skip some stuff that's unsupported on some NetBSD configurations. + case "${target}" in + *) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + esac + ;; *-*-netware) noconfigdirs="$noconfigdirs ${libstdcxx_version} target-newlib target-libiberty target-libgloss target-libffi" ;; @@ -613,18 +655,6 @@ case "${target}" in arm-*-pe*) noconfigdirs="$noconfigdirs target-libgloss" ;; - arm-*-coff*) - noconfigdirs="$noconfigdirs target-libgloss" - if [ x${is_cross_compiler} != xno ] ; then - target_configdirs="${target_configdirs} target-bsp target-cygmon" - fi - ;; - arm-*-elf*) - noconfigdirs="$noconfigdirs target-libgloss" - if [ x${is_cross_compiler} != xno ] ; then - target_configdirs="${target_configdirs} target-bsp target-cygmon" - fi - ;; arm-*-oabi*) noconfigdirs="$noconfigdirs target-libgloss target-libffi" ;; @@ -638,25 +668,25 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libgloss target-libffi" ;; strongarm-*-elf) - noconfigdirs="$noconfigdirs target-libgloss target-libffi" + noconfigdirs="$noconfigdirs target-libffi" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi ;; strongarm-*-coff) - noconfigdirs="$noconfigdirs target-libgloss target-libffi" + noconfigdirs="$noconfigdirs target-libffi" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi ;; xscale-*-elf) - noconfigdirs="$noconfigdirs target-libgloss target-libffi" + noconfigdirs="$noconfigdirs target-libffi" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi ;; xscale-*-coff) - noconfigdirs="$noconfigdirs target-libgloss target-libffi" + noconfigdirs="$noconfigdirs target-libffi" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi @@ -683,7 +713,9 @@ case "${target}" in target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" fi ;; - h8300*-*-* | \ + h8300*-*-*) + noconfigdirs="$noconfigdirs target-libgloss" + ;; h8500-*-*) noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss target-libffi" ;; @@ -701,12 +733,18 @@ case "${target}" in "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;; *) ;; esac - noconfigdirs="$noconfigdirs ld shellutils" + # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't + # build on HP-UX 10.20. + noconfigdirs="$noconfigdirs ld shellutils ${libgcj}" ;; ia64*-*-elf*) # No gdb support yet. noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb" ;; + ia64*-**-hpux*) + # No gdb or ld support yet. + noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld" + ;; i[3456]86-*-coff | i[3456]86-*-elf) if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-libstub target-cygmon" @@ -718,7 +756,7 @@ case "${target}" in ;; i[3456]86-*-mingw32*) target_configdirs="$target_configdirs target-mingw" - noconfigdirs="$noconfigdirs expect target-libgloss target-libffi" + noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}" # Can't build gdb for mingw32 if not native. case "${host}" in @@ -729,7 +767,7 @@ case "${target}" in ;; *-*-cygwin*) target_configdirs="$target_configdirs target-libtermcap target-winsup" - noconfigdirs="$noconfigdirs target-gperf target-libgloss target-libffi" + noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}" # always build newlib. skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` @@ -764,7 +802,7 @@ case "${target}" in noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss target-libffi" ;; i[3456]86-*-beos*) - noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) noconfigdirs="$noconfigdirs target-libiberty target-librx target-libg++ target-libstdc++ target-libio target-libf2c target-libchill target-zlib target-libobjc" @@ -793,12 +831,7 @@ case "${target}" in ;; powerpc-*-aix*) # copied from rs6000-*-* entry - # The configure and build of ld are currently disabled because - # GNU ld is known to be broken for AIX 4.2 and 4.3 (at least) - # The symptom is that GDBtk 4.18 fails at startup with a segfault - # if linked by GNU ld, but not if linked by the native ld. - noconfigdirs="$noconfigdirs gprof cvssrc target-libgloss target-libffi ld" - use_gnu_ld=no + use_gnu_ld=yes ;; powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe) target_configdirs="$target_configdirs target-winsup" @@ -823,12 +856,8 @@ case "${target}" in noconfigdirs="$noconfigdirs target-newlib gprof cvssrc target-libffi" ;; rs6000-*-aix*) - # The configure and build of ld are currently disabled because - # GNU ld is known to be broken for AIX 4.2 and 4.3 (at least) - # The symptom is that GDBtk 4.18 fails at startup with a segfault - # if linked by GNU ld, but not if linked by the native ld. - noconfigdirs="$noconfigdirs gprof target-libffi ld" - use_gnu_ld=no + noconfigdirs="$noconfigdirs gprof target-libffi" + use_gnu_ld=yes ;; rs6000-*-*) noconfigdirs="$noconfigdirs gprof target-libffi" @@ -844,7 +873,11 @@ case "${target}" in mips*-*-irix6*) # The GNU assembler does not support IRIX 6. # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work) - noconfigdirs="$noconfigdirs gas gprof emacs target-libgloss" + # Linking libjava exceeds command-line length limits on at least + # IRIX 6.2, but not on IRIX 6.5. + # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham + # <oldham@codesourcery.com> + noconfigdirs="$noconfigdirs gas gprof emacs target-libgloss ${libgcj}" ;; mips*-dec-bsd*) noconfigdirs="$noconfigdirs gprof target-libgloss target-libffi" @@ -880,13 +913,13 @@ case "${target}" in if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-libstub target-cygmon" fi - noconfigdirs="target-libffi" + noconfigdirs="$noconfigdirs target-libffi" ;; sparclite-*-*) if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" fi - noconfigdirs="target-libffi" + noconfigdirs="$noconfigdirs target-libffi" ;; sparc-*-sunos4*) if [ x${is_cross_compiler} != xno ] ; then @@ -895,6 +928,17 @@ case "${target}" in use_gnu_ld=no fi ;; + sparc-*-solaris*) + case "${host}" in + sparc-*-solaris2.8) + # According to Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>, libjava + # won't build correctly on Solaris 8 if there's a + # previously-installed version of GCC in the configured prefix. + # This problem does not show up on earlier versions of Solaris. + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + esac + ;; v810-*-*) noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld ${libstdcxx_version} opcodes target-libgloss target-libffi" ;; @@ -920,7 +964,7 @@ case "${target}" in *-*-mpw*) # Macs want a resource compiler. configdirs="$configdirs grez" - noconfigdirs="target-libffi" + noconfigdirs="$noconfigdirs target-libffi" ;; esac @@ -947,18 +991,24 @@ fi # Look if the user specified --enable-languages="..."; if not, use # the environment variable $LANGUAGES if defined. $LANGUAGES might # go away some day. +# NB: embedded tabs in this IF block -- do not untabify if test x"${enable_languages+set}" != xset; then if test x"${LANGUAGES+set}" = xset; then - enable_languages="`echo ${LANGUAGES} | tr ' ' ','`" + enable_languages="${LANGUAGES}" + echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 else enable_languages=all fi else - if test x"${enable_languages}" = x; then - echo configure.in: --enable-languages needs at least one argument 1>&2 + if test x"${enable_languages}" = x || + test x"${enable_languages}" = xyes; + then + echo configure.in: --enable-languages needs at least one language argument 1>&2 exit 1 fi fi +enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/,$//'` + subdirs= for lang in ${srcdir}/gcc/*/config-lang.in .. do @@ -1183,7 +1233,7 @@ rm -f conftest* case "${host}" in sparc-sun-solaris2*) CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`" - if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then + if [ "`type $CCBASE | sed 's/^[^/]*//'`" = "/usr/ucb/cc" ] ; then could_use= [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin" if [ -d /opt/cygnus/bin ] ; then @@ -1225,7 +1275,8 @@ if [ "${shared}" = "yes" ]; then esac fi -# Record target_configdirs and the configure arguments in Makefile. +# Record target_configdirs and the configure arguments for target and +# build configuration in Makefile. target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` targargs=`echo "${arguments}" | \ sed -e 's/--no[^ ]*//' \ @@ -1234,6 +1285,11 @@ targargs=`echo "${arguments}" | \ -e 's/--bu[a-z-]*=[^ ]*//' \ -e 's/--ta[a-z-]*=[^ ]*//'` +# For the build-side libraries, we just need to pretend we're native, +# and not use the same cache file. Multilibs are neither needed nor +# desired. +buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${targargs}" + # Passing a --with-cross-host argument lets the target libraries know # whether they are being built with a cross-compiler or being built # native. However, it would be better to use other mechanisms to make the @@ -1254,6 +1310,9 @@ if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " newlib " targargs="--with-newlib ${targargs}" fi +# Pass the appropriate --host, --build, and --cache-file arguments. +targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}" + # provide a proper gxx_include_dir. # Note, if you change the default, make sure to fix both here and in # the gcc, libio, and libstdc++ subdirectories. @@ -1315,10 +1374,20 @@ case " $skipdirs " in fi fi - # If we're building newlib, use its generic headers last, but search - # for any libc-related directories first (so make it the last -B - # switch). - FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include' + case "${target}-${is_cross_compiler}" in + i[3456]86-pc-linux*-no) + # Here host == target, so we don't need to build gcc, + # so we don't want to discard standard headers. + FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'` + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/' + ;; + *) + # If we're building newlib, use its generic headers last, but search + # for any libc-related directories first (so make it the last -B + # switch). + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include' + ;; + esac ;; esac @@ -1371,7 +1440,7 @@ esac if test "x${CXX_FOR_TARGET+set}" = xset; then : elif test -d ${topsrcdir}/gcc; then - CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags + CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3) echo xgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags elif test "$host" = "$target"; then CXX_FOR_TARGET='$(CXX)' else @@ -1381,16 +1450,26 @@ case $CXX_FOR_TARGET in *' $(FLAGS_FOR_TARGET)') ;; *) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; esac -qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,&,\\\&,g'` +qCXX_FOR_TARGET=`echo "$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'` -targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}" sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \ - -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \ + -e "s%^TARGET_CONFIGARGS[ ]*=.*$%TARGET_CONFIGARGS = ${targargs}%" \ -e "s%^FLAGS_FOR_TARGET[ ]*=.*$%FLAGS_FOR_TARGET = ${FLAGS_FOR_TARGET}%" \ -e "s%^CC_FOR_TARGET[ ]*=.*$%CC_FOR_TARGET = ${CC_FOR_TARGET}%" \ -e "s%^CHILL_FOR_TARGET[ ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%" \ -e "s%^CXX_FOR_TARGET[ ]*=.*$%CXX_FOR_TARGET = ${qCXX_FOR_TARGET}%" \ + -e "s%^CXX_FOR_TARGET_FOR_RECURSIVE_MAKE[ ]*=.*$%CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = ${qqCXX_FOR_TARGET}%" \ -e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \ + -e "s%^BUILD_SUBDIR[ ]*=.*$%BUILD_SUBDIR = ${build_subdir}%" \ + -e "s%^BUILD_CONFIGARGS[ ]*=.*$%BUILD_CONFIGARGS = ${buildargs}%" \ -e "s%^gxx_include_dir[ ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \ Makefile > Makefile.tem rm -f Makefile |