OSDN Git Service

2006-02-20 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / configure.ac
index 4669488..7b9a94f 100644 (file)
@@ -301,6 +301,7 @@ AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)])
 # We want to use -pedantic, but we don't want warnings about
 # * 'long long'
 # * variadic macros
+# * overlong strings
 # So, we only use -pedantic if we can disable those warnings.
 
 AC_CACHE_CHECK(
@@ -325,10 +326,22 @@ AC_CACHE_CHECK(
   CFLAGS="$save_CFLAGS"
   ])
 
+AC_CACHE_CHECK(
+  [whether ${CC} accepts -Wno-overlength-strings],
+  [ac_cv_prog_cc_w_no_overlength_strings],
+  [save_CFLAGS="$CFLAGS"
+  CFLAGS="-Wno-overlength-strings"
+  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
+                    [ac_cv_prog_cc_w_no_overlength_strings=yes],
+                    [ac_cv_prog_cc_w_no_overlength_strings=no])
+  CFLAGS="$save_CFLAGS"
+  ])
+
 strict1_warn=
 if test $ac_cv_prog_cc_w_no_long_long = yes \
-   && test $ac_cv_prog_cc_w_no_variadic_macros = yes ; then
-  strict1_warn="-pedantic -Wno-long-long -Wno-variadic-macros"
+   && test $ac_cv_prog_cc_w_no_variadic_macros = yes \
+   && test $ac_cv_prog_cc_w_no_overlength_strings = yes ; then
+  strict1_warn="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
 fi
 
 # Add -Wold-style-definition if it's accepted
@@ -372,6 +385,23 @@ fi
 
 AC_SUBST(strict1_warn)
 
+# Get C++ compatibility warning flag, if supported.
+AC_CACHE_CHECK(
+  [whether ${CC} accepts -Wc++-compat],
+  [ac_cv_prog_cc_w_cxx_compat],
+  [save_CFLAGS="$CFLAGS"
+  CFLAGS="-Wc++-compat"
+  AC_COMPILE_IFELSE([AC_LANG_SOURCE([[]])],
+                    [ac_cv_prog_cc_w_cxx_compat=yes],
+                    [ac_cv_prog_cc_w_cxx_compat=no])
+  CFLAGS="$save_CFLAGS"
+  ])
+if test x${ac_cv_prog_cc_w_cxx_compat} = xyes; then
+  cxx_compat_warn="-Wc++-compat"
+fi
+AC_SUBST(cxx_compat_warn)
+
+
 # If the native compiler is GCC, we can enable warnings even in stage1.  
 # That's useful for people building cross-compilers, or just running a
 # quick `make'.
@@ -639,6 +669,29 @@ AC_ARG_ENABLE(__cxa_atexit,
 [  --enable-__cxa_atexit   enable __cxa_atexit for C++],
 [], [])
 
+# Enable C extension for decimal float if target supports it.
+AC_ARG_ENABLE(decimal-float,
+[  --enable-decimal-float  enable decimal float extension to C],
+[
+  if test x$enablevar = xyes ; then
+    case $target in
+    powerpc*-*-linux* | i?86*-*-linux*)
+      enable_decimal_float=yes
+      ;;
+    *)
+      AC_MSG_WARN(decimal float is not supported for this target, ignored)
+      enable_decimal_float=no
+      ;;
+    esac
+  fi
+], [enable_decimal_float=no])
+
+AC_SUBST(enable_decimal_float)
+
+dfp=`if test $enable_decimal_float = yes; then echo 1; else echo 0; fi`
+AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp,
+[Define to 1 to enable decimal float extension to C.])
+
 # Enable threads
 # Pass with no value to take the default
 # Pass with a value to specify a thread package
@@ -647,6 +700,17 @@ AC_ARG_ENABLE(threads,
   --enable-threads=LIB    use LIB thread package for target GCC],,
 [enable_threads=''])
 
+AC_ARG_ENABLE(tls,
+[  --enable-tls            enable or disable generation of tls code
+                          overriding the assembler check for tls support],
+[
+  case $enable_tls in
+    yes | no) ;;
+    *) AC_MSG_ERROR(['$enable_tls' is an invalid value for --enable-tls.
+Valid choices are 'yes' and 'no'.]) ;;
+  esac
+], [enable_tls=''])
+
 AC_ARG_ENABLE(objc-gc,
 [  --enable-objc-gc      enable the use of Boehm's garbage collector with
                          the GNU Objective-C runtime],
@@ -753,30 +817,6 @@ AC_ARG_ENABLE(languages,
 esac],
 [enable_languages=c])
 
-subdirs=
-for lang in ${srcdir}/*/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.
-changequote(,)dnl
-       ${srcdir}/[*]/config-lang.in) ;;
-       *)
-         lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
-         if test "x$lang_alias" = x
-         then
-               echo "$lang doesn't set \$language." 1>&2
-               exit 1
-         fi
-         case ",$enable_languages," in
-         *,$lang_alias,*)
-           subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;;
-         esac
-         ;;
-changequote([,])dnl
-       esac
-done
-
 
 # -------------------------
 # Checks for other programs
@@ -822,7 +862,7 @@ MISSING="${CONFIG_SHELL-/bin/sh} $srcdir/../missing"
 # that we can use it.
 gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
   [GNU texinfo.* \([0-9][0-9.]*\)],
-  [4.[2-9]*])
+  [4.[4-9]*])
 if test $gcc_cv_prog_makeinfo_modern = no; then
   MAKEINFO="$MISSING makeinfo"
   AC_MSG_WARN([
@@ -1770,22 +1810,38 @@ esac
 # If build != host, and we aren't building gas in-tree, we identify a
 # build->target assembler and hope that it will have the same features
 # as the host->target assembler we'll be using.
-in_tree_gas=no
-gcc_cv_as=
 gcc_cv_gas_major_version=
 gcc_cv_gas_minor_version=
 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
+
+m4_pattern_allow([AS_FOR_TARGET])dnl
+AS_VAR_SET_IF(gcc_cv_as,, [
 if test -x "$DEFAULT_ASSEMBLER"; then
        gcc_cv_as="$DEFAULT_ASSEMBLER"
 elif test -f $gcc_cv_as_gas_srcdir/configure.in \
      && test -f ../gas/Makefile \
      && test x$build = x$host; then
+       gcc_cv_as=../gas/as-new$build_exeext
+elif test -x as$build_exeext; then
+       # Build using assembler in the current directory.
+       gcc_cv_as=./as$build_exeext
+elif test -x $AS_FOR_TARGET; then
+        gcc_cv_as="$AS_FOR_TARGET"
+else
+        AC_PATH_PROG(gcc_cv_as, $AS_FOR_TARGET)
+fi])
+
+ORIGINAL_AS_FOR_TARGET=$gcc_cv_as
+AC_SUBST(ORIGINAL_AS_FOR_TARGET)
+
+AC_MSG_CHECKING(what assembler to use)
+if test "$gcc_cv_as" = ../gas/as-new$build_exeext; then
   # Single tree build which includes gas.  We want to prefer it
   # over whatever linker top-level may have detected, since
   # we'll use what we're building after installation anyway.
+  AC_MSG_RESULT(newly built gas)
   in_tree_gas=yes
   _gcc_COMPUTE_GAS_VERSION
-  gcc_cv_as=../gas/as-new$build_exeext
   in_tree_gas_is_elf=no
   if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
      || (grep 'obj_format = multi' ../gas/Makefile \
@@ -1793,23 +1849,11 @@ elif test -f $gcc_cv_as_gas_srcdir/configure.in \
   then
     in_tree_gas_is_elf=yes
   fi
-m4_pattern_allow([AS_FOR_TARGET])dnl
-elif test -x as$build_exeext; then
-       # Build using assembler in the current directory.
-       gcc_cv_as=./as$build_exeext
+else
+  AC_MSG_RESULT($gcc_cv_as)
+  in_tree_gas=no
 fi
 
-gcc_AC_CHECK_TOOL(gcc_cv_as, as, ORIGINAL_AS_FOR_TARGET, AS_FOR_TARGET, AS)
-AC_MSG_CHECKING(what assembler to use)
-case $in_tree_gas in
-  yes)
-    AC_MSG_RESULT("newly built gas")
-    ;;
-  no)
-    AC_MSG_RESULT($gcc_cv_as)
-    ;;
-esac
-
 # Identify the linker which will work hand-in-glove with the newly
 # built GCC, so that we can examine its features.  This is the linker
 # which will be driven by the driver program.
@@ -1817,20 +1861,36 @@ esac
 # If build != host, and we aren't building gas in-tree, we identify a
 # build->target linker and hope that it will have the same features
 # as the host->target linker we'll be using.
-in_tree_ld=no
-gcc_cv_ld=
 gcc_cv_gld_major_version=
 gcc_cv_gld_minor_version=
 gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
 gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
+
+AS_VAR_SET_IF(gcc_cv_ld,, [
 if test -x "$DEFAULT_LINKER"; then
        gcc_cv_ld="$DEFAULT_LINKER"
 elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
      && test -f ../ld/Makefile \
      && test x$build = x$host; then
+       gcc_cv_ld=../ld/ld-new$build_exeext
+elif test -x collect-ld$build_exeext; then
+       # Build using linker in the current directory.
+       gcc_cv_ld=./collect-ld$build_exeext
+elif test -x $LD_FOR_TARGET; then
+        gcc_cv_ld="$LD_FOR_TARGET"
+else
+        AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET)
+fi])
+
+ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
+AC_SUBST(ORIGINAL_LD_FOR_TARGET)
+
+AC_MSG_CHECKING(what linker to use)
+if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext; then
        # Single tree build which includes ld.  We want to prefer it
        # over whatever linker top-level may have detected, since
        # we'll use what we're building after installation anyway.
+       AC_MSG_RESULT(newly built ld)
        in_tree_ld=yes
        in_tree_ld_is_elf=no
        if (grep 'EMUL = .*elf' ../ld/Makefile \
@@ -1842,71 +1902,68 @@ elif test -f $gcc_cv_ld_gld_srcdir/configure.in \
        do
 changequote(,)dnl
                gcc_cv_gld_version=`sed -n -e 's/^[     ]*\(VERSION=[0-9]*\.[0-9]*.*\)/\1/p' < $f`
-changequote([,])dnl
                if test x$gcc_cv_gld_version != x; then
                        break
                fi
        done
-changequote(,)dnl
        gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
        gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
 changequote([,])dnl
-       gcc_cv_ld=../ld/ld-new$build_exeext
-elif test -x collect-ld$build_exeext; then
-       # Build using linker in the current directory.
-       gcc_cv_ld=./collect-ld$build_exeext
+else
+       AC_MSG_RESULT($gcc_cv_ld)
+       in_tree_ld=no
 fi
 
-gcc_AC_CHECK_TOOL(gcc_cv_ld, ld, ORIGINAL_LD_FOR_TARGET, LD_FOR_TARGET, LD)
-AC_MSG_CHECKING(what linker to use)
-case $in_tree_ld in
-  yes)
-    AC_MSG_RESULT("newly built ld")
-    ;;
-  no)
-    AC_MSG_RESULT($gcc_cv_ld)
-    ;;
-esac
-
 # Figure out what nm we will be using.
 gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
-in_tree_nm=no
-gcc_cv_nm=
+AS_VAR_SET_IF(gcc_cv_nm,, [
 if test -f $gcc_cv_binutils_srcdir/configure.in \
      && test -f ../binutils/Makefile; then
-       # Single tree build which includes binutils.
-       in_tree_nm=yes
        gcc_cv_nm=../binutils/nm-new$build_exeext
 elif test -x nm$build_exeext; then
        gcc_cv_nm=./nm$build_exeext
-fi
+elif test -x $NM_FOR_TARGET; then
+        gcc_cv_nm="$NM_FOR_TARGET"
+else
+        AC_PATH_PROG(gcc_cv_nm, $NM_FOR_TARGET)
+fi])
 
-gcc_AC_CHECK_TOOL(gcc_cv_nm, nm, ORIGINAL_NM_FOR_TARGET, NM_FOR_TARGET, NM)
 AC_MSG_CHECKING(what nm to use)
-case $in_tree_nm in
-  yes) AC_MSG_RESULT("newly built nm") ;;
-  no)  AC_MSG_RESULT($gcc_cv_nm) ;;
-esac
+if test "$gcc_cv_nm" = ../binutils/nm-new$build_exeext; then
+       # Single tree build which includes binutils.
+       AC_MSG_RESULT(newly built nm)
+       in_tree_nm=yes
+else
+       AC_MSG_RESULT($gcc_cv_nm)
+       in_tree_nm=no
+fi
+
+ORIGINAL_NM_FOR_TARGET=$gcc_cv_nm
+AC_SUBST(ORIGINAL_NM_FOR_TARGET)
 
 # Figure out what objdump we will be using.
-in_tree_objdump=no
-gcc_cv_objdump=
+AS_VAR_SET_IF(gcc_cv_objdump,, [
 if test -f $gcc_cv_binutils_srcdir/configure.in \
      && test -f ../binutils/Makefile; then
        # Single tree build which includes binutils.
-       in_tree_objdump=yes
        gcc_cv_objdump=../binutils/objdump$build_exeext
 elif test -x objdump$build_exeext; then
        gcc_cv_objdump=./objdump$build_exeext
-fi
+elif test -x $OBJDUMP_FOR_TARGET; then
+        gcc_cv_objdump="$OBJDUMP_FOR_TARGET"
+else
+        AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET)
+fi])
 
-gcc_AC_CHECK_TOOL(gcc_cv_objdump, objdump, ORIGINAL_OBJDUMP_FOR_TARGET,
-                 OBJDUMP_FOR_TARGET, OBJDUMP)
 AC_MSG_CHECKING(what objdump to use)
-case $in_tree_objdump in
-  yes) AC_MSG_RESULT("newly built objdump") ;;
-  no)  AC_MSG_RESULT($gcc_cv_objdump) ;;
-esac
+if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then
+       # Single tree build which includes binutils.
+       AC_MSG_RESULT(newly built objdump)
+elif test x$gcc_cv_objdump = x; then
+       AC_MSG_RESULT(not found)
+else
+       AC_MSG_RESULT($gcc_cv_objdump)
+fi
 
 # Figure out what assembler alignment features are present.
 gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align,
@@ -2164,10 +2221,13 @@ if test $in_tree_ld != yes && test x"$ld_vers" != x; then
       comdat_group=no
     fi
   fi
-  if test $comdat_group = no; then
-    gcc_cv_as_comdat_group=no
-    gcc_cv_as_comdat_group_percent=no
-  fi
+else
+  # assume linkers other than GNU ld don't support COMDAT group
+  comdat_group=no
+fi
+if test $comdat_group = no; then
+  gcc_cv_as_comdat_group=no
+  gcc_cv_as_comdat_group_percent=no
 fi
 AC_DEFINE_UNQUOTED(HAVE_COMDAT_GROUP,
   [`if test $gcc_cv_as_comdat_group = yes || test $gcc_cv_as_comdat_group_percent = yes; then echo 1; else echo 0; fi`],
@@ -2437,6 +2497,15 @@ foo:     .long   25
        ;;
   sparc*-*-*)
     case "$target" in
+      sparc*-sun-solaris2.[56789]*)
+       # TLS was introduced in the Solaris 9 4/04 release but
+       # we do not enable it by default on Solaris 9 either.
+       if test "x$enable_tls" = xyes ; then
+         on_solaris=yes
+       else
+         enable_tls=no;
+       fi
+       ;;
       sparc*-sun-solaris2.*)
        on_solaris=yes
        ;;
@@ -2499,13 +2568,21 @@ foo:    .long   25
        ;;
 changequote([,])dnl
 esac
-if test -z "$tls_first_major"; then
+set_have_as_tls=no
+if test "x$enable_tls" = xno ; then
+  : # TLS explicitly disabled.
+elif test "x$enable_tls" = xyes ; then
+  set_have_as_tls=yes # TLS explicitly enabled.
+elif test -z "$tls_first_major"; then
   : # If we don't have a check, assume no support.
 else
   gcc_GAS_CHECK_FEATURE(thread-local storage support, gcc_cv_as_tls,
   [$tls_first_major,$tls_first_minor,0], [$tls_as_opt], [$conftest_s],,
-  [AC_DEFINE(HAVE_AS_TLS, 1,
-           [Define if your assembler supports thread-local storage.])])
+  [set_have_as_tls=yes])
+fi
+if test $set_have_as_tls = yes ; then
+  AC_DEFINE(HAVE_AS_TLS, 1,
+           [Define if your assembler supports thread-local storage.])
 fi
 
 # Target-specific assembler checks.
@@ -2766,7 +2843,7 @@ foo:      nop
       *-*-aix*) conftest_s='   .machine "pwr5x"
        .csect .text[[PR]]
        frin 1,1';;
-      *) conftest_s='  .machine power5x
+      *) conftest_s='  .machine power5
        .text
        frin 1,1';;
     esac
@@ -3157,22 +3234,10 @@ AC_SUBST(MAINT)dnl
 # Make empty files to contain the specs and options for each language.
 # Then add #include lines to for a compiler that has specs and/or options.
 
+subdirs=
 lang_opt_files=
 lang_specs_files=
 lang_tree_files=
-for subdir in . $subdirs
-do
-       if test -f $srcdir/$subdir/lang.opt; then
-           lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
-       fi
-       if test -f $srcdir/$subdir/lang-specs.h; then
-           lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
-       fi
-       if test -f $srcdir/$subdir/$subdir-tree.def; then
-           lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
-       fi
-done
-
 # These (without "all_") are set in each config-lang.in.
 # `language' must be a single word so is spelled singularly.
 all_languages=
@@ -3190,6 +3255,10 @@ all_gtfiles="$target_gtfiles"
 all_gtfiles_files_langs=
 all_gtfiles_files_files=
 
+# These are the languages that are set in --enable-languages,
+# and are available in the GCC tree.
+all_selected_languages=
+
 # Add the language fragments.
 # Languages are added via two mechanisms.  Some information must be
 # recorded in makefile variables, these are defined in config-lang.in.
@@ -3199,73 +3268,108 @@ all_gtfiles_files_files=
 
 language_hooks="Make-hooks"
 
-for s in $subdirs
+for lang in ${srcdir}/*/config-lang.in
 do
-               language=
-               boot_language=
-               compilers=
-               stagestuff=
-               outputs=
-               gtfiles=
-               . ${srcdir}/$s/config-lang.in
-               if test "x$language" = x
-               then
-                       echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
-                       exit 1
-               fi
-               all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$s/Make-lang.in"
-               if test -f ${srcdir}/$s/Makefile.in
-               then all_lang_makefiles="$s/Makefile"
-               fi
-               all_languages="$all_languages $language"
-               if test "x$boot_language" = xyes
-               then
-                       all_boot_languages="$all_boot_languages $language"
-               fi
-               all_compilers="$all_compilers $compilers"
-               all_stagestuff="$all_stagestuff $stagestuff"
-               all_outputs="$all_outputs $outputs"
-               all_gtfiles="$all_gtfiles $gtfiles"
-                for f in $gtfiles
-                do
-                         all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
-                         all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
-                done
+    case $lang in
+    # The odd quoting in the next line works around
+    # an apparent bug in bash 1.12 on linux.
+changequote(,)dnl
+    ${srcdir}/[*]/config-lang.in)
+        continue ;;
+    *)
+        lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^   ]*\).*$,\1,p' $lang`
+        if test "x$lang_alias" = x
+        then
+              echo "$lang doesn't set \$language." 1>&2
+              exit 1
+        fi
+        subdir="`echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
+        subdirs="$subdirs $subdir"
+        case ",$enable_languages," in
+        *,$lang_alias,*)
+            all_selected_languages="$all_selected_languages $lang_alias"
+           if test -f $srcdir/$subdir/lang-specs.h; then
+               lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
+           fi
+           ;;
+        esac
+changequote([,])dnl
+
+       if test -f $srcdir/$subdir/lang.opt; then
+           lang_opt_files="$lang_opt_files $srcdir/$subdir/lang.opt"
+       fi
+       if test -f $srcdir/$subdir/$subdir-tree.def; then
+           lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
+       fi
+
+       language=
+       boot_language=
+       compilers=
+       stagestuff=
+       outputs=
+       gtfiles=
+       . ${srcdir}/$subdir/config-lang.in
+       if test "x$language" = x
+       then
+               echo "${srcdir}/$subdir/config-lang.in doesn't set \$language." 1>&2
+               exit 1
+       fi
+       all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$subdir/Make-lang.in"
+       if test -f ${srcdir}/$subdir/Makefile.in
+               then all_lang_makefiles="$subdir/Makefile"
+       fi
+       all_languages="$all_languages $language"
+       if test "x$boot_language" = xyes
+       then
+               all_boot_languages="$all_boot_languages $language"
+       fi
+       all_compilers="$all_compilers $compilers"
+       all_stagestuff="$all_stagestuff $stagestuff"
+       all_outputs="$all_outputs $outputs"
+       all_gtfiles="$all_gtfiles $gtfiles"
+        for f in $gtfiles
+        do
+                 all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
+                 all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
+        done
+       ;;
+    esac
 done
 
 # Pick up gtfiles for c
 gtfiles=
-s="c"
+subdir="c"
 . ${srcdir}/c-config-lang.in
 all_gtfiles="$all_gtfiles $gtfiles"
 for f in $gtfiles
 do
-        all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
+        all_gtfiles_files_langs="$all_gtfiles_files_langs ${subdir} "
         all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
 done
 
 check_languages=
-for language in $all_languages
+for language in $all_selected_languages
 do
-               check_languages="$check_languages check-$language"
+       check_languages="$check_languages check-$language"
 done
 
 # We link each language in with a set of hooks, reached indirectly via
-# lang.${target}.
+# lang.${target}.  Only do so for selected languages.
 
 rm -f Make-hooks
 touch Make-hooks
-target_list="all.build all.cross start.encap rest.encap tags \
-       install-normal install-common install-man \
+target_list="all.cross start.encap rest.encap tags \
+       install-common install-man install-info dvi html \
        uninstall info man srcextra srcman srcinfo \
        mostlyclean clean distclean maintainer-clean \
        stage1 stage2 stage3 stage4 stageprofile stagefeedback"
+
 for t in $target_list
 do
        x=
-       for lang in $all_languages
+       for lang in $all_selected_languages
        do
-                       x="$x $lang.$t"
+               x="$x $lang.$t"
        done
        echo "lang.$t: $x" >> Make-hooks
 done
@@ -3362,6 +3466,7 @@ AC_SUBST(all_gtfiles_files_files)
 AC_SUBST(all_lang_makefrags)
 AC_SUBST(all_lang_makefiles)
 AC_SUBST(all_languages)
+AC_SUBST(all_selected_languages)
 AC_SUBST(all_stagestuff)
 AC_SUBST(build_exeext)
 AC_SUBST(build_install_headers_dir)