* config.sub, configure.in: Add tiny2j-*-* target
[deliverable/binutils-gdb.git] / configure
index 4b09c82cac107294f1dab7da1c38d9eafe56895e..6521d23332ad6a9b893632fae7111c8136150987 100755 (executable)
--- a/configure
+++ b/configure
@@ -51,18 +51,22 @@ build_alias=
 cache_file=config.cache
 cache_file_option=
 configdirs=
+extraconfigdirs=
 diroptions=
 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=
@@ -71,7 +75,7 @@ program_suffix=
 program_suffixoption=
 program_transform_name=
 program_transform_nameoption=
-redirect=">/dev/null"
+redirect=
 removing=
 site=
 site_makefile_frag=
@@ -514,6 +518,8 @@ fi
 
 configsub=`echo ${progname} | sed 's/configure$/config.sub/'`
 moveifchange=`echo ${progname} | sed 's/configure$/move-if-change/'`
+topsrcdir=`cd \`dirname ${progname}\`; 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
@@ -570,12 +576,44 @@ case "${srcdir}" in
         fi
 esac
 
+# start-sanitize-cygnus
+# Don't allow builds at Cygnus to be done with srcdir==builddir.  We
+# can assume srcdir==. in this case, because of code above.
+if test "$srcdir" = .; then
+   echo '***' "Cannot configure in source tree." >&2
+   echo '***' "Make a parallel directory and configure there." >&2
+   exit 1
+fi
+# end-sanitize-cygnus
+
 # default exec_prefix
 case "${exec_prefixoption}" in
 "") exec_prefix="\$(prefix)" ;;
 *) ;;
 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=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${with_gcc_version_trigger}`
+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=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${gcc_version_trigger}`
+       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
 "")
@@ -760,7 +798,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
@@ -770,7 +808,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
@@ -780,7 +818,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
@@ -790,7 +828,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
@@ -819,6 +857,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.
 
@@ -850,7 +907,7 @@ if [ "${build}" != "${host}" ]; then
   tools="${tools} WINDRES WINDRES_FOR_TARGET YACC"
 
   for var in ${tools}; do
-    if [ -z "`eval 'echo $'"${var}"`" -a -r Makefile ]; then
+    if [ -z "`eval 'echo $'"${var}"`" ] && [ -r Makefile ]; then
       sed -n -e ':loop
 /\\$/ N
 s/\\\n//g
@@ -952,10 +1009,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
@@ -963,6 +1020,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++"}
@@ -982,8 +1057,6 @@ case "$host" in
            enable_gdbtk=no ;;
        *msdosdjgpp*)
            enable_gdbtk=no ;;
-       *cygwin32*)
-           enable_gdbtk=no ;;
 esac
 
 # FIXME: This should be in configure.in, not configure
@@ -992,7 +1065,7 @@ if [ "$enable_gdbtk" != "no" ]; then
        GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui"
        # start-sanitize-ide
        if [ "$enable_ide" = "yes" ]; then
-               GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui all-libide"
+               GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui all-libide all-libidetcl"
        fi
        # end-sanitize-ide
 else
@@ -1057,27 +1130,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
@@ -1103,24 +1183,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
                       ;;
@@ -1163,8 +1262,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 ;;
               *)
@@ -1172,17 +1271,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.
@@ -1238,12 +1333,51 @@ EOF
            # 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}
+           # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
+           gxx_include_dir=
+           if test -n "${with_gxx_include_dir}"; then
+               case "${with_gxx_include_dir}" in
+                 yes )
+                   echo "configure: error: bad value ${withval} given for g++ include directory" 1>&2
+                   exit 1
+                   ;;
+                 no )
+                   ;;
+                 * )
+                   gxx_include_dir=${with_gxx_include_dir}
+                   ;;
+               esac
+           fi
+           if test x${gxx_include_dir} = x; then
+               if test x${enable_version_specific_runtime_libs} = xyes; then
+                   echo gxx_include_dir = '${libsubdir}/include/g++' >> ${Makefile}
+               else
+                   . ${topsrcdir}/config.if
+                   echo gxx_include_dir = '${prefix}/include/g++'-${libstdcxx_interface} >> ${Makefile}
+               fi
            else
-               echo gxx_include_dir = ${with_gxx_include_dir} >> ${Makefile}
+               echo gxx_include_dir = ${gxx_include_dir} >> ${Makefile}
            fi
 
+           # record if we want to build shared libs.
+           if test -z "${enable_shared}"; then
+               echo enable_shared = no >> ${Makefile}
+           else
+               echo enable_shared = ${enable_shared} >> ${Makefile}
+           fi
+           # 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 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
@@ -1305,7 +1439,9 @@ EOF
                     -e "s|^tooldir[    ]*=.*$|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}
+  
            # start-sanitize-gdbtk
            sed -e "s:^GDB_TK[   ]*=.*$:GDB_TK = ${GDB_TK}:" ${Makefile} >${Makefile}.tem
            mv -f ${Makefile}.tem ${Makefile}
@@ -1392,19 +1528,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
@@ -1412,21 +1562,21 @@ 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}
+                                newsrcdir=${srcdir}/${cfg_dir}
                                 srcdiroption="--srcdir=${newsrcdir}"
                                 ;;
                         ?:*) # absolute path on win32
-                                newsrcdir=${srcdir}/${configdir}
+                                newsrcdir=${srcdir}/${cfg_dir}
                                 srcdiroption="--srcdir=${newsrcdir}"
                                 ;;
                         *) # otherwise relative
-                                newsrcdir=../${srcdir}/${configdir}
+                                newsrcdir=../${srcdir}/${cfg_dir}
                                 srcdiroption="--srcdir=${newsrcdir}"
                                 ;;
                         esac
@@ -1456,13 +1606,13 @@ if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then
                                 *)      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} ${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
This page took 0.034606 seconds and 4 git commands to generate.