OSDN Git Service

* c-common.h (c_common_parse_file): Update.
[pf3gnuchains/gcc-fork.git] / configure.in
index 7e04254..fc528ac 100644 (file)
@@ -73,7 +73,6 @@ target_libs="target-libiberty \
                target-librx \
                ${libstdcxx_version} \
                target-libf2c \
-               target-libchill \
                ${libgcj}
                target-libobjc"
 
@@ -124,30 +123,47 @@ appdirs=""
 # per-host:
 
 # Work in distributions that contain no compiler tools, like Autoconf.
+tentative_cc=""
 if [ -d ${srcdir}/config ]; then
 case "${host}" in
   m68k-hp-hpux*)
+    # Avoid "too much defining" errors from HPUX compiler.
+    tentative_cc="cc -Wp,-H256000"
     host_makefile_frag="${host_makefile_frag} config/mh-hp300"
     ;;
   m68k-apollo-sysv*)
+    tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
     host_makefile_frag="${host_makefile_frag} config/mh-apollo68"
     ;;
   m68k-apollo-bsd*)
+    #None of the Apollo compilers can compile gas or binutils.  The preprocessor
+    # chokes on bfd, the compiler won't let you assign integers to enums, and
+    # other problems.  Defining CC to gcc is a questionable way to say "don't use
+    # the apollo compiler" (the preferred version of GCC could be called cc,
+    # or whatever), but I'm not sure leaving CC as cc is any better...
+    #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
+    tentative_cc=gcc
     host_makefile_frag="${host_makefile_frag} config/mh-a68bsd"
     ;;
   m88k-dg-dgux*)
+    tentative_cc="gcc -Wall -ansi -D__using_DGUX"
     host_makefile_frag="${host_makefile_frag} config/mh-dgux"
     ;;
   m88k-harris-cxux*)
+    # Under CX/UX, we want to tell the compiler to use ANSI mode.
+    tentative_cc="cc -Xa"
     host_makefile_frag="${host_makefile_frag} config/mh-cxux"
     ;;
   m88k-motorola-sysv*)
     host_makefile_frag="${host_makefile_frag} config/mh-delta88"
     ;;
   mips*-dec-ultrix*)
+    tentative_cc="cc -Wf,-XNg1000"
     host_makefile_frag="${host_makefile_frag} config/mh-decstation"
     ;;
   mips*-nec-sysv4*)
+    # The C compiler on NEC MIPS SVR4 needs bigger tables.
+    tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
     host_makefile_frag="${host_makefile_frag} config/mh-necv4"
     ;;
   mips*-sgi-irix6*)
@@ -157,6 +173,10 @@ case "${host}" in
     host_makefile_frag="${host_makefile_frag} config/mh-irix5"
     ;;
   mips*-sgi-irix4*)
+    # Tell compiler to use K&R C.  We can't compile under the SGI Ansi
+    # environment.  Also bump switch table size so that cp-parse will
+    # compile.  Bump string length limit so linker builds.
+    tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
     host_makefile_frag="${host_makefile_frag} config/mh-irix4"
     ;;
   mips*-sgi-irix3*)
@@ -166,27 +186,54 @@ case "${host}" in
     host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
     ;;
   mips*-*-sysv*)
+    # This is for a MIPS running RISC/os 4.52C.
+
+    # This is needed for GDB, but needs to be in the top-level make because
+    # if a library is compiled with the bsd headers and gets linked with the
+    # sysv system libraries all hell can break loose (e.g. a jmp_buf might be
+    # a different size).
+    # ptrace(2) apparently has problems in the BSD environment.  No workaround is
+    # known except to select the sysv environment.  Could we use /proc instead?
+    # These "sysv environments" and "bsd environments" often end up being a pain.
+    #
+    # This is not part of CFLAGS because perhaps not all C compilers have this
+    # option.
+    tentative_cc="cc -systype sysv"
     host_makefile_frag="${host_makefile_frag} config/mh-riscos"
     ;;
   i370-ibm-opened*)
+    tentative_cc="c89"
     host_makefile_frag="${host_makefile_frag} config/mh-openedition"
     ;;
   i[3456]86-*-sysv5*)
     host_makefile_frag="${host_makefile_frag} config/mh-sysv5"
     ;;
   i[3456]86-*-dgux*)
+    tentative_cc="gcc -Wall -ansi -D__using_DGUX"
     host_makefile_frag="${host_makefile_frag} config/mh-dgux386"
     ;;
   i[3456]86-ncr-sysv4.3*)
+    # The MetaWare compiler will generate a copyright message unless you
+    # turn it off by adding the -Hnocopyr flag.
+    tentative_cc="cc -Hnocopyr"
     host_makefile_frag="${host_makefile_frag} config/mh-ncrsvr43"
     ;;
   i[3456]86-ncr-sysv4*)
+    # for an NCR 3000 (i486/SVR4) system.
+    # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
+    # This compiler not only emits obnoxious copyright messages every time
+    # you run it, but it chokes and dies on a whole bunch of GNU source
+    # files.  Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
+    tentative_cc="/usr/ccs/ATT/cc"
     host_makefile_frag="${host_makefile_frag} config/mh-ncr3000"
     ;;
   i[3456]86-*-sco3.2v5*)
     host_makefile_frag="${host_makefile_frag} config/mh-sysv"
     ;;
   i[3456]86-*-sco*)
+    # The native C compiler botches some simple uses of const.  Unfortunately,
+    # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
+    tentative_cc="cc -Dconst="
     host_makefile_frag="${host_makefile_frag} config/mh-sco"
     ;;
   i[3456]86-*-udk*)
@@ -217,28 +264,37 @@ case "${host}" in
     host_makefile_frag="${host_makefile_frag} config/mh-windows"
     ;;
   vax-*-ultrix2*)
-    host_makefile_frag="${host_makefile_frag} config/mh-vaxult2"
+    # The old BSD pcc isn't up to compiling parts of gdb so use gcc
+    tentative_cc=gcc
     ;;
   *-*-solaris2*)
     host_makefile_frag="${host_makefile_frag} config/mh-solaris"
     ;;
   m68k-sun-sunos*)
-    host_makefile_frag="${host_makefile_frag} config/mh-sun3"
+    # Sun's C compiler needs the -J flag to be able to compile cp-parse.c
+    # without overflowing the jump tables (-J says to use a 32 bit table)
+    tentative_cc="cc -J"
     ;;
   *-hp-hpux[78]*)
+    tentative_cc="cc -Wp,-H256000"
     host_makefile_frag="${host_makefile_frag} config/mh-hpux8"
     ;;
   *-hp-hpux*)
+    tentative_cc="cc -Wp,-H256000"
     host_makefile_frag="${host_makefile_frag} config/mh-hpux"
     ;;
   *-*-hiux*)
+    tentative_cc="cc -Wp,-H256000"
     host_makefile_frag="${host_makefile_frag} config/mh-hpux"
     ;;
   rs6000-*-lynxos*)
+    # /bin/cc is less than useful for our purposes.  Always use GCC
+    tentative_cc="/usr/cygnus/progressive/bin/gcc"
     host_makefile_frag="${host_makefile_frag} config/mh-lynxrs6k"
     ;;
   *-*-lynxos*)
-    host_makefile_frag="${host_makefile_frag} config/mh-lynxos"
+    # /bin/cc is less than useful for our purposes.  Always use GCC
+    tentative_cc="/bin/gcc"
     ;;
   *-*-sysv4*)
     host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
@@ -251,6 +307,7 @@ fi
 
 # If we aren't going to be using gcc, see if we can extract a definition
 # of CC from the fragment.
+# Actually, use the 'pre-extracted' version above.
 if [ -z "${CC}" ] && [ "${build}" = "${host}" ]; then
   IFS="${IFS=  }"; save_ifs="$IFS"; IFS="${IFS}:"
   found=
@@ -262,11 +319,8 @@ if [ -z "${CC}" ] && [ "${build}" = "${host}" ]; then
     fi
   done
   IFS="$save_ifs"
-  if [ -z "${found}" ] && [ -n "${host_makefile_frag}" ] && [ -f "${srcdir}/${host_makefile_frag}" ]; then
-    xx=`sed -n -e 's/^[        ]*CC[   ]*=[    ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
-    if [ -n "${xx}" ] ; then
-      CC=$xx
-    fi
+  if [ -z "${found}" ] && [ -n "${tentative_cc}" ] ; then
+    CC=$tentative_cc
   fi
 fi
 
@@ -989,15 +1043,6 @@ case "${target}" in
     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 ${libgcj}"
@@ -1199,6 +1244,25 @@ if [ -z "${norecursion}" ] && [ -n "${target_configdirs}" ]; then
   done
 fi
 
+# Quietly strip out all directories which aren't configurable in this tree.
+# This relies on all configurable subdirectories being autoconfiscated, which
+# is now the case.
+configdirs_all="$configdirs"
+configdirs=
+for i in ${configdirs_all} ; do
+  if test -f ${srcdir}/$i/configure ; then
+    configdirs="${configdirs} $i"
+  fi
+done
+target_configdirs_all="$target_configdirs"
+target_configdirs=
+for i in ${target_configdirs_all} ; do
+  j=`echo $i | sed -e s/target-//g` 
+  if test -f ${srcdir}/$j/configure ; then
+    target_configdirs="${target_configdirs} $i"
+  fi
+done
+
 # Produce a warning message for the subdirs we can't configure.
 # This isn't especially interesting in the Cygnus tree, but in the individual
 # FSF releases, it's important to let people know when their machine isn't
@@ -1352,6 +1416,33 @@ case "${host}" in
   ;;
 esac
 
+# If we're building libgcj and we're using the Solaris 2.8 linker,
+# then we check for a known problem.
+if test "x${libgcj}" = x && test "${with_gnu_ld}" != yes \
+   && test "${is_cross_compiler}" = no; then
+
+   case "${host}" in
+    sparc-*-solaris2.8)
+       if test "$libdir" = '${exec_prefix}/lib';then
+         if test "$exec_prefix" = '$(prefix)'; then
+            tlibdir="$prefix/lib"
+         else
+            tlibdir="$exec_prefix/lib"
+         fi
+       else
+         tlibdir="$libdir"
+       fi
+       if test -f $tlibdir/libgcj.la; then
+         echo "*** You've already installed libgcj in $tlibdir." 1>&2
+         echo "    This causes problems when rebuilding libgcj with the Solaris 2.8 linker." 1>&2
+         echo "    Either disable the libgcj build, or remove the" 1>&2
+         echo "    already-installed libgcj files." 1>&2
+         exit 1
+       fi
+       ;;
+   esac
+fi
+
 # If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
 # binutils tools will find libbfd.so.
 if [ "${shared}" = "yes" ]; then
@@ -1526,20 +1617,6 @@ case $CC_FOR_TARGET in
 *) CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
 esac
 
-if test "x${CHILL_FOR_TARGET+set}" = xset; then
-  :
-elif test -d ${topsrcdir}/gcc; then
-  CHILL_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/ -L$$r/gcc/ch/runtime/'
-elif test "$host" = "$target"; then
-  CHILL_FOR_TARGET='$(CC)'
-else
-  CHILL_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
-fi
-case $CHILL_FOR_TARGET in
-*' $(FLAGS_FOR_TARGET)') ;;
-*) CHILL_FOR_TARGET=$CHILL_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;;
-esac
-
 if test "x${GCJ_FOR_TARGET+set}" = xset; then
   :
 elif test -d ${topsrcdir}/gcc; then
@@ -1586,7 +1663,6 @@ s:^TARGET_CONFIGDIRS[     ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:
 s%^TARGET_CONFIGARGS[  ]*=.*$%TARGET_CONFIGARGS = ${targargs}%
 s%^FLAGS_FOR_TARGET[   ]*=.*$%FLAGS_FOR_TARGET = ${FLAGS_FOR_TARGET}%
 s%^CC_FOR_TARGET[      ]*=.*$%CC_FOR_TARGET = ${CC_FOR_TARGET}%
-s%^CHILL_FOR_TARGET[   ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%
 s%^GCJ_FOR_TARGET[      ]*=.*$%GCJ_FOR_TARGET = ${GCJ_FOR_TARGET}%
 s%^CXX_FOR_TARGET[     ]*=.*$%CXX_FOR_TARGET = ${qCXX_FOR_TARGET}%
 s%^CXX_FOR_TARGET_FOR_RECURSIVE_MAKE[  ]*=.*$%CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = ${qqCXX_FOR_TARGET}%