OSDN Git Service

* config/mips/iris6.h (EH_FRAME_SECTION_ASM_OP): Give the
[pf3gnuchains/gcc-fork.git] / configure
index 06af22b..ec87e32 100755 (executable)
--- a/configure
+++ b/configure
@@ -3,7 +3,7 @@
 ### WARNING: this file contains embedded tabs.  Do not run untabify on this file.
 
 # Configuration script
-# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 1997
+# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999
 # Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -51,17 +51,25 @@ build_alias=
 cache_file=config.cache
 cache_file_option=
 configdirs=
+extraconfigdirs=
+diroptions=
+enable_threads=no
+enable_shared=no
+enable_libstdcxx_v3=yes
 exec_prefix=
 exec_prefixoption=
 fatal=
 floating_point=default
 gas=default
+gcc_version=
+gcc_version_trigger=
 host_alias=NOHOST
 host_makefile_frag=
 moveifchange=
 norecursion=
 other_options=
 package_makefile_frag=
+package_makefile_rules_frag=
 prefix=/usr/local
 progname=
 program_prefix=
@@ -70,7 +78,7 @@ program_suffix=
 program_suffixoption=
 program_transform_name=
 program_transform_nameoption=
-redirect=">/dev/null"
+redirect=
 removing=
 site=
 site_makefile_frag=
@@ -81,8 +89,20 @@ subdirs=
 target_alias=NOTARGET
 target_makefile_frag=
 undefs=NOUNDEFS
-version="$Revision: 1.7 $"
+version="$Revision: 1.33 $"
 x11=default
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
 
 ### we might need to use some other shell than /bin/sh for running subshells
 
@@ -135,13 +155,17 @@ progname=$0
 if [ -n "$PWD" ]; then PWD=`pwd`; fi
 
 case "${progname}" in
-/*) ;;
+/* | [A-Za-z]:[\\/]* ) ;;
 */*) ;;
 *)
         PATH=$PATH:${PWD=`pwd`} ; export PATH
         ;;
 esac
 
+# Export original configure arguments for use by sub-configures.
+TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@"
+export TOPLEVEL_CONFIGURE_ARGUMENTS
+
 # Loop over all args
 
 while :
@@ -189,6 +213,10 @@ do
 # Now, process the options
        case $option in
 
+       --bi*)
+               bindir=$optarg
+               diroptions="$diroptions --bindir=$optarg"
+               ;;
        --build* | --bu*)
                case "$build_alias" in
                "") build_alias=$optarg ;;
@@ -200,6 +228,10 @@ do
        --cache*)
                cache_file=$optarg
                ;;
+       --da*)
+               datadir=$optarg
+               diroptions="$diroptions --datadir=$optarg"
+               ;;
        --disable-*)
                enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'`
                eval $enableopt=no
@@ -212,7 +244,7 @@ do
                esac
 
                enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
-               eval "$enableopt='$optarg'"
+               eval "$enableopt=\$optarg"
                enableoptions="$enableoptions '$option'"
                ;;
        --exec-prefix* | --ex*)
@@ -233,6 +265,30 @@ do
                   ;;
                esac
                ;;
+       --inc*)
+               includedir=$optarg
+               diroptions="$diroptions --includedir=$optarg"
+               ;;
+       --inf*)
+               infodir=$optarg
+               diroptions="$diroptions --infodir=$optarg"
+               ;;
+       --libd*)
+               libdir=$optarg
+               diroptions="$diroptions --libdir=$optarg"
+               ;;
+       --libe*)
+               libexecdir=$optarg
+               diroptions="$diroptions --libexecdir=$optarg"
+               ;;
+       --lo*)
+               localstatedir=$optarg
+               diroptions="$diroptions --localstatedir=$optarg"
+               ;;
+       --ma*)
+               mandir=$optarg
+               diroptions="$diroptions --mandir=$optarg"
+               ;;
        --nfp | --nf*)
                floating_point=no
                floating_pointoption="--nfp"
@@ -240,6 +296,10 @@ do
        --norecursion | --no*)
                norecursion=yes
                ;;
+       --ol*)
+               oldincludedir=$optarg
+               diroptions="$diroptions --oldincludedir=$optarg"
+               ;;
        --prefix* | --pre*)
                prefix=$optarg
                prefixoption="--prefix=$optarg"
@@ -260,6 +320,14 @@ do
        --rm)
                removing=--rm
                ;;
+       --sb*)
+               sbindir=$optarg
+               diroptions="$diroptions --sbindir=$optarg"
+               ;;
+       --sh*)
+               sharedstatedir=$optarg
+               diroptions="$diroptions --sharedstatedir=$optarg"
+               ;;
        --silent | --sil* | --quiet | --q*)
                redirect=">/dev/null"
                verbose=--silent
@@ -278,6 +346,10 @@ do
        --srcdir* | --sr*)
                srcdir=$optarg
                ;;
+       --sy*)
+               sysconfdir=$optarg
+               diroptions="$diroptions --sysconfdir=$optarg"
+               ;;
        --target* | --ta*)
                case $target_alias in
                NOTARGET) target_alias=$optarg ;;
@@ -305,7 +377,7 @@ do
                esac
 
                withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
-               eval $withopt="$optarg"
+               eval $withopt="\$optarg"
                withoptions="$withoptions $option"
                ;;
        --without-*)
@@ -318,9 +390,6 @@ do
                ;;
        --x-i* | --x-l*) other_options="$other_options $orig_option"
                ;;
-       --bi* | --sb* | --li* | --da* | --sy* | --sh* | --lo* | --in* | --ol* | --ma*)
-               # These options were added to autoconf for emacs.
-               ;;
        --*)
                echo "configure: Unrecognized option: \"$orig_option\"; use --help for usage." >&2
                exit 1
@@ -388,7 +457,7 @@ case "${fatal}" in
                                        fi
                                        ;;
                                esac
-                               echo "Configuring for a ${host_alias} host." 1>&2
+                               echo "Configuring for a ${host_alias} host."
                                arguments="--host=$host_alias $arguments"
                        else
                                echo 'Config.guess failed to determine the host type.  You need to specify one.' 1>&2
@@ -456,6 +525,9 @@ fi
 
 configsub=`echo ${progname} | sed 's/configure$/config.sub/'`
 moveifchange=`echo ${progname} | sed 's/configure$/move-if-change/'`
+## the sed command below emulates the dirname command
+topsrcdir=`cd \`echo ${progname} | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'\`; pwd`
+
 
 # this is a hack.  sun4 must always be a valid host alias or this will fail.
 if ${config_shell} ${configsub} sun4 >/dev/null 2>&1 ; then
@@ -518,6 +590,28 @@ case "${exec_prefixoption}" in
 *) ;;
 esac
 
+# Define the trigger file to make sure configure will re-run whenever
+# the gcc version number changes.
+if [ "${with_gcc_version_trigger+set}" = set ]; then
+    gcc_version_trigger="$with_gcc_version_trigger"
+    gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
+else
+    # If gcc's sources are available, define the trigger file.
+    if [ -f ${topsrcdir}/gcc/version.c ] ; then
+       gcc_version_trigger=${topsrcdir}/gcc/version.c
+       gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'`
+       case "$arguments" in
+         *--with-gcc-version-trigger=$gcc_version_trigger* )
+           ;;
+         * )
+           # Make sure configure.in knows about this.
+           arguments="--with-gcc-version-trigger=$gcc_version_trigger $arguments"
+           ;;
+       esac
+       withoptions="--with-gcc-version-trigger=$gcc_version_trigger $withoptions"
+    fi
+fi
+
 ### break up ${srcdir}/configure.in.
 case "`grep '^# per\-host:' ${srcdir}/configure.in`" in
 "")
@@ -540,7 +634,7 @@ case "`grep '^# per\-host:' ${srcdir}/configure.in`" in
            eval exec ${config_shell} ${srcdir}/configure ${verbose} \
                ${buildopt} --host=${host_alias} --target=${target_alias} \
                ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
-               ${srcdiroption} \
+               ${srcdiroption} ${diroptions} \
                ${program_prefixoption} ${program_suffixoption} \
                ${program_transform_nameoption} ${site_option} \
                ${withoptions} ${withoutoptions} \
@@ -568,8 +662,8 @@ case "${TMPDIR}" in
 *) ;;
 esac
 
-# keep this filename short for &%*%$*# 14 char file names
-tmpfile=${TMPDIR}/cONf$$
+# keep this filename short for &%*%$*# 14 char file names and 8+3 file names
+tmpfile=${TMPDIR}/cNf$$
 # Note that under many versions of sh a trap handler for 0 will *override* any
 # exit status you explicitly specify!  At this point, the only non-error exit
 # is at the end of the script; these actions are duplicated there, minus
@@ -591,8 +685,24 @@ fi
 
 ### do common part of configure.in
 
+# If the language specific compiler does not exist, but the "gcc" directory does,
+# we will skip this directory; in this case the sub-directory's common part
+# of configure.in will create a small shell script "skip-this-dir" containing
+# commands to completely clean up any temporary or created files.
+
 . ${tmpfile}.com
 
+if test -f skip-this-dir; then
+       # Perform the same cleanup as the trap handler, minus the "exit 1" of course,
+       # and reset the trap handler.
+       trap 0
+       rm -f Makefile* ${tmpfile}.com ${tmpfile}.tgt ${tmpfile}.hst ${tmpfile}.pos
+       # Execute the final clean-up actions
+       ${config_shell} skip-this-dir
+       # and stop configuring this directory.
+       exit 0
+fi
+
 # some sanity checks on configure.in
 case "${srctrigger}" in
 "")
@@ -702,7 +812,7 @@ fi
 # If CC and CXX are not set in the environment, and the Makefile
 # exists, try to extract them from it.  This is to handle running
 # ./config.status by hand.
-if [ -z "${CC}" -a -r Makefile ]; then
+if [ -z "${CC}" ] && [ -r Makefile ]; then
   sed -n -e ':loop
 /\\$/ N
 s/\\\n//g
@@ -712,7 +822,7 @@ t loop
   rm -f Makefile.cc
 fi
 
-if [ -z "${CFLAGS}" -a -r Makefile ]; then
+if [ -z "${CFLAGS}" ] && [ -r Makefile ]; then
   sed -n -e ':loop
 /\\$/ N
 s/\\\n//g
@@ -722,7 +832,7 @@ t loop
   rm -f Makefile.cc
 fi
 
-if [ -z "${CXX}" -a -r Makefile ]; then
+if [ -z "${CXX}" ] && [ -r Makefile ]; then
   sed -n -e ':loop
 /\\$/ N
 s/\\\n//g
@@ -732,7 +842,7 @@ t loop
   rm -f Makefile.cc
 fi
 
-if [ -z "${CXXFLAGS}" -a -r Makefile ]; then
+if [ -z "${CXXFLAGS}" ] && [ -r Makefile ]; then
   sed -n -e ':loop
 /\\$/ N
 s/\\\n//g
@@ -761,6 +871,25 @@ do
   test -n "$DEFAULT_YACC" && break
 done
 
+# Generate a default definition for M4.  This is used if the makefile can't
+# locate m4 in objdir.
+
+for prog in gm4 gnum4 m4
+do
+  set dummy $prog; tmp=$2
+  IFS="${IFS=   }"; save_ifs="$IFS"; IFS="${IFS}:"
+  for dir in $PATH; do
+    test -z "$dir" && dir=.
+    if test -f $dir/$tmp; then
+      DEFAULT_M4="$prog"
+      break
+    fi
+  done
+  IFS="$save_ifs"
+
+  test -n "$DEFAULT_M4" && break
+done
+
 # Generate a default definition for LEX.  This is used if the makefile can't
 # locate flex in objdir.
 
@@ -790,9 +919,10 @@ if [ "${build}" != "${host}" ]; then
   tools="${tools} HOST_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM"
   tools="${tools} NM_FOR_TARGET RANLIB RANLIB_FOR_TARGET"
   tools="${tools} WINDRES WINDRES_FOR_TARGET YACC"
+  tools="${tools} OBJCOPY OBJDUMP"
 
   for var in ${tools}; do
-    if [ -z "`eval 'echo $'"${var}"`" -a -r Makefile ]; then
+    if eval [ -z \"\$${var}\" ] && [ -r Makefile ]; then
       sed -n -e ':loop
 /\\$/ N
 s/\\\n//g
@@ -801,7 +931,7 @@ t loop
        < Makefile > Makefile.v
       t=`tail -1 Makefile.v`
       if [ -n "${t}" ]; then
-       eval "${var}='${t}'"
+       eval "${var}=\${t}"
       fi
       rm -f Makefile.v
     fi
@@ -833,6 +963,8 @@ t loop
   RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib}
   WINDRES=${WINDRES-${host_alias}-windres}
   WINDRES_FOR_TARGET=${WINDRES_FOR_TARGET-${target_alias}-windres}
+  OBJCOPY=${OBJCOPY-${host_alias}-objcopy}
+  OBJDUMP=${OBJDUMP-${host_alias}-objdump}
 
   if [ -z "${YACC}" ]; then
     IFS="${IFS=        }"; save_ifs="$IFS"; IFS="${IFS}:"
@@ -883,6 +1015,8 @@ t loop
   export NM
   export RANLIB
   export WINDRES
+  export OBJCOPY
+  export OBJDUMP
 else
   # If CC is still not set, try to get gcc.
   if [ -z "${CC}" ]; then
@@ -894,10 +1028,10 @@ else
        echo 'void f(){}' > conftest.c
        if test -z "`${CC} -g -c conftest.c 2>&1`"; then
          CFLAGS=${CFLAGS-"-g -O2"}
-         CXXFLAGS=${CFLAGS-"-g -O2"}
+         CXXFLAGS=${CXXFLAGS-"-g -O2"}
        else
          CFLAGS=${CFLAGS-"-O2"}
-         CXXFLAGS=${CFLAGS-"-O2"}
+         CXXFLAGS=${CXXFLAGS-"-O2"}
        fi
        rm -f conftest*
        break
@@ -905,6 +1039,24 @@ else
     done
     IFS="$save_ifs"
     CC=${CC-cc}
+  else
+    if test -z "${CFLAGS}"; then
+      # Here CC is set but CFLAGS is not.  Use a quick hack to use -O2 if CC
+      # is set to a version of gcc.
+      case "${CC}" in
+      *gcc)
+       echo 'void f(){}' > conftest.c
+       if test -z "`${CC} -g -c conftest.c 2>&1`"; then
+         CFLAGS=${CFLAGS-"-g -O2"}
+         CXXFLAGS=${CXXFLAGS-"-g -O2"}
+       else
+         CFLAGS=${CFLAGS-"-O2"}
+         CXXFLAGS=${CXXFLAGS-"-O2"}
+       fi
+       rm -f conftest*
+       ;;
+      esac
+    fi
   fi
 
   CXX=${CXX-"c++"}
@@ -923,14 +1075,12 @@ case "$host" in
            enable_gdbtk=no ;;
        *msdosdjgpp*)
            enable_gdbtk=no ;;
-       *cygwin32*)
-           enable_gdbtk=no ;;
 esac
 
 # FIXME: This should be in configure.in, not configure
 # Determine whether gdb needs tk/tcl or not.
 if [ "$enable_gdbtk" != "no" ]; then
-       GDB_TK="all-tcl all-tk all-itcl all-tix"
+       GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui"
 else
        GDB_TK=""
 fi
@@ -946,7 +1096,7 @@ for subdir in . ${subdirs} ; do
     case "${srcdir}" in
         ".")  # no -srcdir option.  We're building in place.
                 makesrcdir=. ;;
-        /*) # absolute path
+        /* | [A-Za-z]:[\\/]* ) # absolute path
                 makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'`
                 ;;
         *) # otherwise relative
@@ -992,27 +1142,34 @@ for subdir in . ${subdirs} ; do
                 set ${links}; link=$1; shift; links=$*
 
                 if [ ! -r ${srcdir}/${file} ] ; then
+                  if [ ! -r ${file} ] ; then
+                   
                         echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
                         echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
                         exit 1
+                 else
+                       srcfile=${file}
+                 fi
+               else
+                       srcfile=${srcdir}/${file}
                 fi
 
                 ${remove} -f ${link}
                # Make a symlink if possible, otherwise try a hard link
-               if ${symbolic_link} ${srcdir}/${file} ${link} >/dev/null 2>&1 ; then
+               if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
                        true
                else
                        # We need to re-remove the file because Lynx leaves a 
                        # very strange directory there when it fails an NFS symlink.
                        ${remove} -r -f ${link}
-                       ${hard_link} ${srcdir}/${file} ${link}
+                       ${hard_link} ${srcfile} ${link}
                fi
                 if [ ! -r ${link} ] ; then
-                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2
+                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
                         exit 1
                 fi
 
-                echo "Linked \"${link}\" to \"${srcdir}/${file}\"."
+                echo "Linked \"${link}\" to \"${srcfile}\"."
         done
 
         # Create a .gdbinit file which runs the one in srcdir
@@ -1038,24 +1195,43 @@ EOF
         # been somewhat optimized and is perhaps a bit twisty.
 
         # code is order so as to try to sed the smallest input files we know.
+        # so do these separately because I don't trust the order of sed -e expressions.
 
-        # the four makefile fragments MUST end up in the resulting Makefile in this order: 
-        # package, target, host, and site.  so do these separately because I don't trust the
-        #  order of sed -e expressions.
+        # the five makefile fragments MUST end up in the resulting Makefile in this order: 
+        # package macros, target, host, site, and package rules.
 
         if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then
 
+            # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
+            rm -f ${subdir}/${Makefile}.tem
+            case "${package_makefile_rules_frag}" in
+              "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;;
+              *)
+                      if [ ! -f ${package_makefile_rules_frag} ] ; then
+                              package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag}
+                      fi
+                      if [ -f ${package_makefile_rules_frag} ] ; then
+                              sed -e "/^####/  r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem
+                      else
+                              echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2
+                              echo '***' is missing in ${PWD=`pwd`}. 1>&2
+                              cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem
+                      fi
+            esac
+            # working copy now in ${Makefile}.tem
+
             # Conditionalize for this site.
             rm -f ${Makefile}
-            case "${site}" in
-              "") cp ${srcdir}/${subdir}/${Makefile_in} ${Makefile} ;;
+              case "${site}" in
+              "") mv ${subdir}/Makefile.tem ${Makefile} ;;
               *)
                       site_makefile_frag=${srcdir}/config/ms-${site}
 
                       if [ -f ${site_makefile_frag} ] ; then
-                              sed -e "/^####/  r ${site_makefile_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}
+                              sed -e "/^####/  r ${site_makefile_frag}" ${subdir}/Makefile.tem \
+                                      > ${Makefile}
                       else
-                              cp ${srcdir}/${subdir}/${Makefile_in} ${Makefile}
+                              mv ${subdir}/Makefile.tem ${Makefile}
                               site_makefile_frag=
                       fi
                       ;;
@@ -1098,8 +1274,8 @@ EOF
             esac
             # working copy now in ${Makefile}
 
-            # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
-            rm -f ${subdir}/${Makefile}.tem
+            # Emit the default values of this package's macros.
+            rm -f ${subdir}/Makefile.tem
             case "${package_makefile_frag}" in
               "") mv ${Makefile} ${subdir}/Makefile.tem ;;
               *)
@@ -1107,17 +1283,13 @@ EOF
                               package_makefile_frag=${srcdir}/${package_makefile_frag}
                       fi
                       if [ -f ${package_makefile_frag} ] ; then
-                              sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ${subdir}/${Makefile}.tem
+                              sed -e "/^####/  r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem
                       else
-                              echo '***' Expected package makefile fragment \"${package_makefile_frag}\" 1>&2
+                              echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2
                               echo '***' is missing in ${PWD=`pwd`}. 1>&2
                               mv ${Makefile} ${subdir}/Makefile.tem
                       fi
             esac
-            # real copy now in ${subdir}/${Makefile}.tem
-
-            mv ${subdir}/${Makefile}.tem ${subdir}/Makefile.tem 2>/dev/null
-
             # real copy now in ${subdir}/Makefile.tem
 
             # prepend warning about editting, and a bunch of variables.
@@ -1150,19 +1322,19 @@ EOF
 
             case "${package_makefile_frag}" in
               "") ;;
-              /*) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;;
+              /* | [A-Za-z]:[\\/]* ) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;;
               *)  echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;;
             esac
 
             case "${target_makefile_frag}" in
               "") ;;
-              /*) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
+              /* | [A-Za-z]:[\\/]* ) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;;
               *)  echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;;
             esac
 
             case "${host_makefile_frag}" in
               "") ;;
-              /*) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
+              /* | [A-Za-z]:[\\/]* ) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;;
               *)  echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;;
             esac
 
@@ -1170,15 +1342,21 @@ EOF
                 echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile}
             fi 
 
-           # provide a proper gxx_include_dir to all subdirs.
-           # Note, if you change the default, make sure to fix both here
-           # and in the gcc subdirectory.
-           if test -z "${with_gxx_include_dir}"; then
-               echo gxx_include_dir = '${prefix}/include/g++' >> ${Makefile}
+           echo enable_shared = ${enable_shared} >> ${Makefile}
+           echo enable_threads = ${enable_threads} >> ${Makefile}
+           # record if we want to rumtime library stuff installed in libsubdir.
+           if test -z "${enable_version_specific_runtime_libs}"; then
+               echo enable_version_specific_runtime_libs = no >> ${Makefile}
            else
-               echo gxx_include_dir = ${with_gxx_include_dir} >> ${Makefile}
+               echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile}
            fi
 
+           # Emit a macro which describes the file containing gcc's
+           # version number.
+           echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile}
+           # And emit a macro defining gcc's version number.
+           echo gcc_version = ${gcc_version} >> ${Makefile}
+
             # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
             # remove any form feeds.
             if [ -z "${subdirs}" ]; then
@@ -1191,6 +1369,18 @@ EOF
            fi
            sed     -e "s|^prefix[      ]*=.*$|prefix = ${prefix}|" \
                     -e "s|^exec_prefix[        ]*=.*$|exec_prefix = ${exec_prefix}|" \
+                    -e "s|^bindir[     ]*=.*$|bindir = ${bindir}|" \
+                    -e "s|^sbindir[    ]*=.*$|sbindir = ${sbindir}|" \
+                    -e "s|^libexecdir[         ]*=.*$|libexecdir = ${libexecdir}|" \
+                    -e "s|^datadir[    ]*=.*$|datadir = ${datadir}|" \
+                    -e "s|^sysconfdir[         ]*=.*$|sysconfdir = ${sysconfdir}|" \
+                    -e "s|^sharedstatedir[     ]*=.*$|sharedstatedir = ${sharedstatedir}|" \
+                    -e "s|^localstatedir[      ]*=.*$|localstatedir = ${localstatedir}|" \
+                    -e "s|^libdir[     ]*=.*$|libdir = ${libdir}|" \
+                    -e "s|^includedir[         ]*=.*$|includedir = ${includedir}|" \
+                    -e "s|^oldincludedir[      ]*=.*$|oldincludedir = ${oldincludedir}|" \
+                    -e "s|^infodir[    ]*=.*$|infodir = ${infodir}|" \
+                    -e "s|^mandir[     ]*=.*$|mandir = ${mandir}|" \
                    -e "/^CC[   ]*=/{
                        :loop1
                        /\\\\$/ N
@@ -1220,22 +1410,26 @@ EOF
                        s%^CXXFLAGS[    ]*=.*$%CXXFLAGS = ${CXXFLAGS}%
                        }" \
                    -e "s|^SHELL[        ]*=.*$|SHELL = ${config_shell}|" \
-                   -e "s:^GDB_TK[       ]*=.*$:GDB_TK = ${GDB_TK}:" \
                     -e "s|^srcdir[     ]*=.*$|srcdir = ${makesrcdir}|" \
                     -e "s/\f//" \
                     -e "s:^program_prefix[     ]*=.*$:program_prefix = ${program_prefix}:" \
                     -e "s:^program_suffix[     ]*=.*$:program_suffix = ${program_suffix}:" \
                     -e "s:^program_transform_name[     ]*=.*$:program_transform_name = ${program_transform_name}:" \
                     -e "s|^tooldir[    ]*=.*$|tooldir = ${tooldir}|" \
+                    -e "s|^build_tooldir[      ]*=.*$|build_tooldir = ${tooldir}|" \
                    -e "s:^DEFAULT_YACC[         ]*=.*$:DEFAULT_YACC = ${DEFAULT_YACC}:" \
                    -e "s:^DEFAULT_LEX[  ]*=.*$:DEFAULT_LEX = ${DEFAULT_LEX}:" \
+                   -e "s:^DEFAULT_M4[  ]*=.*$:DEFAULT_M4 = ${DEFAULT_M4}:" \
                     ${subdir}/Makefile.tem >> ${Makefile}
+  
+           sed -e "s:^GDB_TK[   ]*=.*$:GDB_TK = ${GDB_TK}:" ${Makefile} >${Makefile}.tem
+           mv -f ${Makefile}.tem ${Makefile}
 
            # If this is a Canadian Cross, preset the values of many more
            # tools.
            if [ "${build}" != "${host}" ]; then
                for var in ${tools}; do
-                   val=`eval 'echo $'"${var}"`
+                   eval val=\$${var}
                    sed -e "/^${var}[   ]*=/{
                           :loop1
                           /\\\\$/ N
@@ -1312,19 +1506,33 @@ ${progname}" ${arguments}  "
 done
 
 # If there are subdirectories, then recur.
-if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then 
-        for configdir in ${configdirs} ; do
+if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then 
+        for configdir in ${configdirs} ${extraconfigdirs} ; do
+
+               # If configdir contains ',' it is
+               # srcdir,builddir,target_alias
+               # These come from extraconfigdirs.
+               case ${configdir} in
+               *,*)
+                   eval `echo ${configdir} | sed -e 's/\([^,]*\),\([^,]*\),\(.*\)/cfg_dir=\1 bld_dir=\2 tgt_alias=\3/'`
+                   ;;
+               *)
+                   cfg_dir=${configdir}
+                   bld_dir=${configdir}
+                   tgt_alias=${target_alias}
+                   ;;
+               esac
 
-                if [ -d ${srcdir}/${configdir} ] ; then
+                if [ -d ${srcdir}/${cfg_dir} ] ; then
                         eval echo Configuring ${configdir}... ${redirect}
                         case "${srcdir}" in
                         ".") ;;
                         *)
-                                if [ ! -d ./${configdir} ] ; then
-                                        if mkdir ./${configdir} ; then
+                                if [ ! -d ./${bld_dir} ] ; then
+                                        if mkdir ./${bld_dir} ; then
                                                 true
                                         else
-                                                echo '***' "${progname}: could not make ${PWD=`pwd`}/${configdir}" 1>&2
+                                                echo '***' "${progname}: could not make ${PWD=`pwd`}/${bld_dir}" 1>&2
                                                 exit 1
                                         fi
                                 fi
@@ -1332,21 +1540,17 @@ if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then
                         esac
 
                         POPDIR=${PWD=`pwd`}
-                        cd ${configdir} 
+                        cd ${bld_dir} 
 
 ### figure out what to do with srcdir
                         case "${srcdir}" in
                         ".") newsrcdir=${srcdir} ;; # no -srcdir option.  We're building in place.
-                        /*) # absolute path
-                                newsrcdir=${srcdir}/${configdir}
-                                srcdiroption="--srcdir=${newsrcdir}"
-                                ;;
-                        ?:*) # absolute path on win32
-                                newsrcdir=${srcdir}/${configdir}
+                        /* | [A-Za-z]:[\\/]* ) # absolute path
+                                newsrcdir=${srcdir}/${cfg_dir}
                                 srcdiroption="--srcdir=${newsrcdir}"
                                 ;;
                         *) # otherwise relative
-                                newsrcdir=../${srcdir}/${configdir}
+                                newsrcdir=../${srcdir}/${cfg_dir}
                                 srcdiroption="--srcdir=${newsrcdir}"
                                 ;;
                         esac
@@ -1355,10 +1559,7 @@ if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then
                        case "${cache_file}" in
                        "") # empty
                                ;;
-                       /*) # absolute path
-                               cache_file_option="--cache-file=${cache_file}"
-                               ;;
-                       ?:*) # absolute path on win32
+                       /* | [A-Za-z]:[\\/]* ) # absolute path
                                cache_file_option="--cache-file=${cache_file}"
                                ;;
                        *) # relative path
@@ -1371,20 +1572,19 @@ if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then
                                 recprog=${newsrcdir}/configure
                         elif [ -f ${newsrcdir}/configure.in ] ; then
                                 case "${progname}" in
-                                /*)     recprog=${progname} ;;
-                                ?:*)    recprog=${progname} ;;
-                                *)      recprog=../${progname} ;;
+                                /* | [A-Za-z]:[\\/]* )  recprog=${progname} ;;
+                                *)                      recprog=../${progname} ;;
                                 esac
                        else
-                               eval echo No configuration information in ${configdir} ${redirect}
+                               eval echo No configuration information in ${cfg_dir} ${redirect}
                                recprog=
                         fi
 
 ### The recursion line is here.
                        if [ ! -z "${recprog}" ] ; then
-                               if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${target_alias} \
+                               if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \
                                        ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
-                                       ${srcdiroption} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${removing} ${other_options} ${redirect} ; then
+                                       ${srcdiroption} ${diroptions} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${removing} ${other_options} ${redirect} ; then
                                        true
                                else
                                        echo Configure in `pwd` failed, exiting. 1>&2