X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=configure.in;h=321215898dc10c30d5af6947775bb8b5c5183b34;hb=1ac38fe63e477e0b4df918e444a29940883f94db;hp=81c3605a91945843204b9ec2847ff57f9708f97a;hpb=fd1a012c96402c2d9b85da78cc0cfa553afd037d;p=pf3gnuchains%2Fgcc-fork.git diff --git a/configure.in b/configure.in index 81c3605a919..321215898dc 100644 --- a/configure.in +++ b/configure.in @@ -50,7 +50,7 @@ fi libstdcxx_version="target-libstdc++-v3" # Don't use libstdc++-v3's flags to configure/build itself. -libstdcxx_flags='`case $$dir in libstdc++-v3) ;; *) cat $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/libstdc++.INC 2>/dev/null || : ;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +libstdcxx_flags='`case $$dir in libstdc++-v3) ;; *) test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -304,7 +304,7 @@ if [ x${shared} = xyes ]; then arm*-*-*) host_makefile_frag="${host_makefile_frag} config/mh-armpic" ;; - hppa*-*-*) + parisc*-*-* | hppa*-*-*) host_makefile_frag="${host_makefile_frag} config/mh-papic" ;; i[3456]86-*-cygwin*) @@ -348,9 +348,6 @@ fi # per-target: case "${target}" in - *-*-chorusos) - noconfigdirs="$noconfigdirs target-newlib target-libgloss" - ;; v810*) target_makefile_frag="${target_makefile_frag} config/mt-v810" ;; @@ -588,7 +585,26 @@ 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 + *-*-chorusos) + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + ;; *-*-netware) noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-newlib target-libiberty target-libgloss ${libgcj}" ;; @@ -617,6 +633,11 @@ case "${target}" in # newlib is not 64 bit ready noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + sh-*-linux*) + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" + # linux has rx in libc + skipdirs="$skipdirs target-librx" + ;; sh*-*-pe|mips*-*-pe|*arm-wince-pe) noconfigdirs="$noconfigdirs ${libgcj}" noconfigdirs="$noconfigdirs target-examples" @@ -698,27 +719,36 @@ case "${target}" in arm-*-riscix*) noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" ;; + cris-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; d10v-*-*) noconfigdirs="$noconfigdirs target-librx ${libstdcxx_version} target-libgloss ${libgcj}" ;; d30v-*-*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" ;; fr30-*-elf*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" fi ;; h8300*-*-* | \ h8500-*-*) - noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-libgloss ${libgcj} target-libf2c" + ;; + hppa*64*-*-linux* | parisc*64*-*-linux*) + # In this case, it's because the hppa64-linux target is for + # the kernel only at this point and has no libc, and thus no + # headers, crt*.o, etc., all of which are needed by these. + noconfigdirs="$noconfigdirs target-zlib" ;; hppa*-*-*elf* | \ - hppa*-*-linux* | \ + parisc*-*-linux* | hppa*-*-linux* | \ hppa*-*-lites* | \ hppa*64*-*-*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" # Do configure ld/binutils/gas for this case. ;; hppa*-*-*) @@ -729,25 +759,28 @@ case "${target}" in "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;; *) ;; esac - noconfigdirs="$noconfigdirs ld shellutils" + # According to Alexandre Oliva , 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" ;; i[3456]86-*-coff | i[3456]86-*-elf) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-libstub target-cygmon" fi ;; *-*-linux*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" # linux has rx in libc skipdirs="$skipdirs target-librx" ;; i[3456]86-*-mingw32*) target_configdirs="$target_configdirs target-mingw" - noconfigdirs="$noconfigdirs expect target-libgloss" + noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}" # Can't build gdb for mingw32 if not native. case "${host}" in @@ -758,7 +791,7 @@ case "${target}" in ;; *-*-cygwin*) target_configdirs="$target_configdirs target-libtermcap target-winsup" - noconfigdirs="$noconfigdirs target-gperf target-libgloss" + noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}" # always build newlib. skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` @@ -793,20 +826,26 @@ case "${target}" in noconfigdirs="$noconfigdirs emacs emacs19 target-libgloss ${libgcj}" ;; 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 ${libstdcxx_version} ${libgcj}" + ;; m68k-*-elf*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi ;; m68k-*-coff*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi ;; + mmix-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; mn10200-*-*) noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then @@ -842,7 +881,7 @@ case "${target}" in noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; powerpc-*-eabi) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" fi @@ -873,7 +912,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 + # + noconfigdirs="$noconfigdirs gas gprof emacs target-libgloss ${libgcj}" ;; mips*-dec-bsd*) noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" @@ -914,10 +957,10 @@ case "${target}" in if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" fi - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" ;; sparc-*-sunos4*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss" else @@ -925,6 +968,15 @@ case "${target}" in fi ;; sparc-*-solaris*) + case "${host}" in + sparc-*-solaris2.8) + # According to Gerald Pfeifer , 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 ${libgcj}" @@ -951,10 +1003,10 @@ case "${target}" in *-*-mpw*) # Macs want a resource compiler. configdirs="$configdirs grez" - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" ;; *-*-*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" ;; esac @@ -981,18 +1033,56 @@ 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/,$//'` + +# First scan to see if an enabled language requires some other language. +# We assume that a given config-lang.in will list all the language +# front ends it requires, even if some are required indirectly. +for lang in ${srcdir}/gcc/*/config-lang.in .. +do + case $lang in + ..) + ;; + # The odd quoting in the next line works around + # an apparent bug in bash 1.12 on linux. + ${srcdir}/gcc/[*]/config-lang.in) + ;; + *) + lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` + this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang` + for other in $this_lang_requires + do + case ,${enable_languages}, in + *,$other,*) + ;; + *,all,*) + ;; + *,$lang_alias,*) + echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2 + enable_languages="$enable_languages,$other" + ;; + esac + done + ;; + esac +done + subdirs= for lang in ${srcdir}/gcc/*/config-lang.in .. do @@ -1026,7 +1116,6 @@ do esac done - # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and # $target_configdirs. # If we have the source for $noconfigdirs entries, add them to $notsupp. @@ -1161,7 +1250,7 @@ fi if [ x${shared} = xyes ]; then case "${target}" in - hppa*) + hppa* | parisc*) target_makefile_frag="${target_makefile_frag} config/mt-papic" ;; i[3456]86-*) @@ -1218,7 +1307,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 @@ -1424,7 +1513,7 @@ fi 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 @@ -1434,7 +1523,15 @@ 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}:" \ @@ -1444,6 +1541,7 @@ sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" -e "s%^CHILL_FOR_TARGET[ ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%" \ -e "s%^GCJ_FOR_TARGET[ ]*=.*$%GCJ_FOR_TARGET = ${GCJ_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%^gxx_include_dir[ ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \ Makefile > Makefile.tem