OSDN Git Service

* alpha.md (addsi3, subsi3): No new temporaries once cse is
[pf3gnuchains/gcc-fork.git] / gcc / configure.in
index 4a0f929..1dd3dd9 100644 (file)
@@ -90,12 +90,37 @@ AC_ARG_WITH(gnu-ld,
 gnu_ld_flag="$with_gnu_ld",
 gnu_ld_flag=no)
 
+# With pre-defined ld
+AC_ARG_WITH(ld,
+[  --with-ld               arrange to use the specified ld (full pathname).],
+DEFAULT_LINKER="$with_ld")
+if test x"${DEFAULT_LINKER+set}" = x"set"; then
+  if test ! -x "$DEFAULT_LINKER"; then
+    AC_MSG_WARN([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
+  elif test "GNU" = `$DEFAULT_LINKER -v </dev/null 2>&1 | sed '1s/^GNU.*/GNU/;q'`; then
+    gnu_ld_flag=yes
+  fi
+  AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER")
+fi
+
 # With GNU as
 AC_ARG_WITH(gnu-as,
 [  --with-gnu-as           arrange to work with GNU as.],
 gas_flag="$with_gnu_as",
 gas_flag=no)
 
+AC_ARG_WITH(as,
+[  --with-as               arrange to use the specified as (full pathname).],
+DEFAULT_ASSEMBLER="$with_as")
+if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
+  if test ! -x "$DEFAULT_ASSEMBLER"; then
+    AC_MSG_WARN([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
+  elif test "GNU" = `$DEFAULT_ASSEMBLER -v </dev/null 2>&1 | sed '1s/^GNU.*/GNU/;q'`; then
+    gas_flag=yes
+  fi
+  AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER")
+fi
+
 # With stabs
 AC_ARG_WITH(stabs,
 [  --with-stabs            arrange to use stabs instead of host debug format.],
@@ -139,7 +164,9 @@ if test x${gxx_include_dir} = x; then
     gxx_include_dir='${libsubdir}/include/g++'
   else
     topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
-    gxx_include_dir='${prefix}/include/g++'-${libstdcxx_interface}
+changequote(<<, >>)dnl
+    gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/g++"-${libstdcxx_interface}
+changequote([, ])dnl
   fi
 fi
 
@@ -152,43 +179,50 @@ no)       ;;
 *)     AC_MSG_ERROR(bad value ${enableval} given for checking option) ;;
 esac])
 
-# Enable use of cpplib for C.
+# Use cpplib+cppmain for the preprocessor, but don't link it with the compiler.
 cpp_main=cccp
+AC_ARG_ENABLE(cpplib,
+[  --enable-cpplib         use cpplib for the C preprocessor.],
+if test x$enable_cpplib != xno; then
+  cpp_main=cppmain
+fi)
+
+# Link cpplib into the compiler proper, for C/C++/ObjC.
 AC_ARG_ENABLE(c-cpplib,
-[  --enable-c-cpplib       Use cpplib for C and C++.],
+[  --enable-c-cpplib       link cpplib directly into C and C++ compilers
+                          (implies --enable-cpplib).],
 if test x$enable_c_cpplib != xno; then
-  extra_c_objs="${extra_c_objs} cpplib.o cppexp.o cpphash.o cpperror.o"
-  extra_c_objs="${extra_c_objs} prefix.o"
-  extra_cxx_objs="${extra_cxx_objs} ../cpplib.o ../cppexp.o ../cpphash.o ../cpperror.o ../prefix.o"
+  extra_c_objs="${extra_c_objs} libcpp.a"
+  extra_cxx_objs="${extra_cxx_objs} ../libcpp.a"
   extra_c_flags=-DUSE_CPPLIB=1
   cpp_main=cppmain
 fi)
-  
+
 # Enable Multibyte Characters for C/C++
 AC_ARG_ENABLE(c-mbchar,
-[  --enable-c-mbchar       Enable multibyte characters for C and C++.],
+[  --enable-c-mbchar       enable multibyte characters for C and C++.],
 if test x$enable_c_mbchar != xno; then
   extra_c_flags=-DMULTIBYTE_CHARS=1
 fi)
   
 # Enable Haifa scheduler.
 AC_ARG_ENABLE(haifa,
-[  --enable-haifa          Use the experimental scheduler.
-  --disable-haifa         Don't use the experimental scheduler for the
+[  --enable-haifa          use the experimental scheduler.
+  --disable-haifa         don't use the experimental scheduler for the
                           targets which normally enable it.])
 # Fast fixincludes
 #
 # This is a work in progress...
 AC_ARG_WITH(fast-fixincludes,
-[  --with-fast-fixincludes    Use a faster fixinclude program.  Experimental],
+[  --with-fast-fixincludes    use a faster fixinclude program (experimental)],
 fast_fixinc="$with_fast_fixincludes",
 fast_fixinc=no)
 
 # Enable init_priority.
 AC_ARG_ENABLE(init-priority,
-[  --enable-init-priority  Use attributes to assign initialization order
+[  --enable-init-priority  use attributes to assign initialization order
                          for static objects.
-  --disable-init-priority Conform to ISO C++ rules for ordering static objects
+  --disable-init-priority conform to ISO C++ rules for ordering static objects
                          (i.e. initialized in order of declaration). ],
 if test x$enable_init_priority != xno; then
   extra_c_flags=-DUSE_INIT_PRIORITY
@@ -254,6 +288,28 @@ AC_SUBST(stage1_warn_cflags)
 
 AC_PROG_MAKE_SET
 
+AC_MSG_CHECKING([whether a default assembler was specified])
+if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
+    if test x"$with_gas" = x"no"; then
+       AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
+    else
+       AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
+    fi
+else
+    AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING([whether a default linker was specified])
+if test x"${DEFAULT_LINKER+set}" = x"set"; then
+    if test x"$with_gnu_ld" = x"no"; then
+       AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
+    else
+       AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
+    fi
+else
+    AC_MSG_RESULT(no)
+fi
+
 # Find some useful tools
 AC_PROG_AWK
 AC_PROG_LEX
@@ -297,10 +353,12 @@ AC_CACHE_VAL(gcc_cv_header_inttypes_h,
   [#include <sys/types.h>
 #include <inttypes.h>],
   [intmax_t i = -1;],
-  [AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H)
-   gcc_cv_header_inttypes_h=yes],
+  [gcc_cv_header_inttypes_h=yes],
   gcc_cv_header_inttypes_h=no)])
 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
+if test $gcc_cv_header_inttypes_h = yes; then
+  AC_DEFINE(HAVE_INTTYPES_H)
+fi
 
 AC_CHECK_FUNCS(strtoul bsearch strerror putenv popen bcopy bzero bcmp \
        index rindex strchr strrchr kill getrlimit setrlimit atoll atoq \
@@ -311,6 +369,7 @@ AC_CHECK_FUNCS(strtoul bsearch strerror putenv popen bcopy bzero bcmp \
 
 GCC_FUNC_VFPRINTF_DOPRNT
 GCC_FUNC_PRINTF_PTR
+AC_FUNC_VFORK
 
 GCC_NEED_DECLARATIONS(malloc realloc calloc free bcopy bzero bcmp \
        index rindex getenv atol sbrk abort atof strerror getcwd getwd \
@@ -618,18 +677,38 @@ changequote([,])dnl
                # On NetBSD, the headers are already okay, except for math.h.
                fixincludes=fixinc.wrap
                ;;
-       arm-*-linux-gnuaout*)           # ARM GNU/Linux
+       arm*-*-linux-gnuaout*)          # ARM GNU/Linux with a.out
                cpu_type=arm
                xmake_file=x-linux
-               tm_file=arm/linux-gas.h
+               tm_file=arm/linux-aout.h
                tmake_file=arm/t-linux
                fixincludes=Makefile.in
                gnu_ld=yes
                ;;
-       arm-*-aout)
+       arm*-*-linux-gnu*)              # ARM GNU/Linux with ELF
+               xm_file=arm/xm-linux.h
+               xmake_file=x-linux
+               case $machine in
+               armv2*-*-*)
+                       tm_file=arm/linux-elf26.h
+                       ;;
+               *)
+                       tm_file=arm/linux-elf.h
+                       ;;
+               esac
+               tmake_file="t-linux arm/t-linux"
+               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+               fixincludes=Makefile.in         # Nothing to fix
+               gnu_ld=yes
+               ;;
+       arm*-*-aout)
                tm_file=arm/aout.h
                tmake_file=arm/t-bare
                ;;
+       arm*-*-elf)
+               tm_file=arm/unknown-elf.h
+               tmake_file=arm/t-arm-elf
+               ;;
        c1-convex-*)                    # Convex C1
                target_cpu_default=1
                use_collect2=yes
@@ -1003,8 +1082,10 @@ changequote([,])dnl
                fixincludes=fixinc.wrap
                tmake_file=i386/t-freebsd
                ;;
+       # We are hoping OpenBSD is still close enough to NetBSD that we can
+       # share the configurations.
 changequote(,)dnl
-       i[34567]86-*-netbsd*)
+       i[34567]86-*-netbsd* | i[34567]86-*-openbsd*)
 changequote([,])dnl
                tm_file=i386/netbsd.h
                # On NetBSD, the headers are already okay, except for math.h.
@@ -1114,6 +1195,12 @@ changequote([,])dnl
                tmake_file=i386/t-go32
                gnu_ld=yes
                gas=yes
+               exeext=.exe
+               case $host in
+               *pc-msdosdjgpp*)
+                       target_alias=djgpp
+                       ;;
+               esac
                ;;
 changequote(,)dnl
        i[34567]86-moss-msdos* | i[34567]86-*-moss*)
@@ -1277,7 +1364,7 @@ changequote([,])dnl
                tmake_file=i386/t-crtpic
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
-               fixincludes=Makefile.in # The headers are just fine, thank you.
+               fixincludes=fixinc.svr4
                ;;
 changequote(,)dnl
        i[34567]86-*-sysv4*)            # Intel 80386's running system V.4
@@ -1294,6 +1381,17 @@ changequote([,])dnl
                extra_parts="crtbegin.o crtend.o"
                ;;
 changequote(,)dnl
+       i[34567]86-*-udk*)      # Intel x86 on SCO UW/OSR5 Dev Kit
+changequote([,])dnl
+               xm_file="xm-alloca.h xm-siglist.h ${xm_file}"
+               xm_defines="USG POSIX"
+               tm_file=i386/udk.h
+               tmake_file="i386/t-crtpic i386/t-udk"
+               xmake_file=x-svr4
+               extra_parts="crtbegin.o crtend.o"
+               fixincludes="fixinc.svr4"
+               ;;
+changequote(,)dnl
        i[34567]86-*-osf1*)             # Intel 80386's running OSF/1 1.3+
 changequote([,])dnl
                cpu_type=i386
@@ -2876,7 +2974,7 @@ changequote([,])dnl
                tm_file=sparc/sol2-sld-64.h
                xm_file="sparc/xm-sysv4-64.h sparc/xm-sol2.h"
                xm_defines="USG POSIX"
-               tmake_file=sparc/t-sol2
+               tmake_file="sparc/t-sol2 sparc/t-sol2-64"
                xmake_file=sparc/x-sysv4
                extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
                fixincludes=fixinc.wrap
@@ -2984,11 +3082,12 @@ changequote([,])dnl
                extra_parts="crtbegin.o crtend.o"
                ;;
        sparc64-*-linux*)               # 64-bit Sparc's running GNU/Linux
-               tmake_file=sparc/t-sp64
+               tmake_file="t-linux sparc/t-linux64"
                xm_file="sparc/xm-sp64.h sparc/xm-linux.h"
                tm_file=sparc/linux64.h
                xmake_file=x-linux
                fixincludes=Makefile.in # The headers are ok already.
+               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                gnu_ld=yes
                ;;
 # This hasn't been upgraded to GCC 2.
@@ -3618,10 +3717,14 @@ AC_MSG_CHECKING(assembler alignment features)
 gcc_cv_as=
 gcc_cv_as_alignment_features=
 gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
-if test -x as$host_exeext; then
+if test -x "$DEFAULT_ASSEMBLER"; then
+       gcc_cv_as="$DEFAULT_ASSEMBLER"
+elif test -x "$AS"; then
+       gcc_cv_as="$AS"
+elif test -x as$host_exeext; then
        # Build using assembler in the current directory.
        gcc_cv_as=./as$host_exeext
-elif test -f $gcc_cv_as_gas_srcdir/configure.in; then
+elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then
        # Single tree build which includes gas.
        for f in $gcc_cv_as_gas_srcdir/configure $gcc_cv_as_gas_srcdir/configure.in $gcc_cv_as_gas_srcdir/Makefile.in
        do