# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
-#
+# Note that libiberty is not a target library.
target_libraries="target-libgcc \
- target-libiberty \
target-libgloss \
target-newlib \
target-libgomp \
;;
esac
+AC_ARG_ENABLE(static-libjava,
+[AS_HELP_STRING([[--enable-static-libjava[=ARG]]],
+ [build static libjava @<:@default=no@:>@])],
+ENABLE_STATIC_LIBJAVA=$enableval,
+ENABLE_STATIC_LIBJAVA=no)
+enable_static_libjava=
+if test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then
+ enable_static_libjava=yes
+fi
+
+if test x$enable_static_libjava != xyes ; then
+ EXTRA_CONFIGARGS_LIBJAVA=--disable-static
+fi
+AC_SUBST(EXTRA_CONFIGARGS_LIBJAVA)
# Disable libmudflap on some systems.
if test x$enable_libmudflap = x ; then
powerpc-*-aix* | rs6000-*-aix*)
noconfigdirs="$noconfigdirs target-libssp"
;;
-esac
-
-# Disable target libiberty for some systems.
-case "${target}" in
- *-*-kaos*)
- # Remove unsupported stuff on all kaOS configurations.
- skipdirs="target-libiberty"
- ;;
- *-*-netbsd*)
- # Skip some stuff on all NetBSD configurations.
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- *-*-netware*)
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- *-*-rtems*)
- skipdirs="${skipdirs} target-libiberty"
- ;;
- *-*-tpf*)
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- *-*-vxworks*)
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- sh*-*-pe|mips*-*-pe|*arm-wince-pe)
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- arm*-*-symbianelf*)
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- avr-*-*)
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- picochip-*-*)
- noconfigdirs="$noconfigdirs target-libiberty"
- ;;
- mips*-sde-elf*)
- skipdirs="$skipdirs target-libiberty"
- ;;
- ip2k-*-*)
- noconfigdirs="$noconfigdirs target-libiberty"
+ rl78-*-*)
+ # Dereferencing -1 is a compile-time error
+ noconfigdirs="$noconfigdirs target-libssp"
;;
esac
;;
esac
+# Disable newlib and libgloss for various target OSes.
case "${target}" in
+ alpha*-dec-osf*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ i[[3456789]]86-*-linux*)
+ # This section makes it possible to build newlib natively on linux.
+ # If we are using a cross compiler then don't configure newlib.
+ if test x${is_cross_compiler} != xno ; then
+ noconfigdirs="$noconfigdirs target-newlib"
+ fi
+ noconfigdirs="$noconfigdirs target-libgloss"
+ # If we are not using a cross compiler, do configure newlib.
+ # Note however, that newlib will only be configured in this situation
+ # if the --with-newlib option has been given, because otherwise
+ # 'target-newlib' will appear in skipdirs.
+ ;;
+ i[[3456789]]86-*-rdos*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ sh*-*-pe|mips*-*-pe|arm-wince-pe)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ sparc-*-sunos4*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-aix*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-beos*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
*-*-chorusos)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
+ *-*-dragonfly*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-freebsd*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-lynxos*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-mingw*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-netbsd*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-netware*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-tpf*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-uclinux*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-vxworks*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+esac
+
+case "${target}" in
+ *-*-chorusos)
+ ;;
powerpc-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
noconfigdirs="$noconfigdirs sim target-rda"
;;
*-*-dragonfly*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-freebsd*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
&& test -f /usr/local/include/gmp.h; then
with_gmp=/usr/local
noconfigdirs="$noconfigdirs target-libgloss"
;;
*-*-netbsd*)
- # Skip some stuff on all NetBSD configurations.
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-netware*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
*-*-rtems*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
# The tpf target doesn't support gdb yet.
*-*-tpf*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss gdb tcl tk libgui itcl"
+ noconfigdirs="$noconfigdirs gdb tcl tk libgui itcl"
;;
*-*-uclinux*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda"
+ noconfigdirs="$noconfigdirs target-rda"
;;
*-*-vxworks*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
alpha*-dec-osf*)
# ld works, but does not support shared libraries.
- # newlib is not 64 bit ready.
# gas doesn't generate exception information.
- noconfigdirs="$noconfigdirs gas ld target-newlib target-libgloss"
+ noconfigdirs="$noconfigdirs gas ld"
;;
alpha*-*-*vms*)
noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
;;
- alpha*-*-linux*)
- # newlib is not 64 bit ready
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
- ;;
alpha*-*-*)
# newlib is not 64 bit ready
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
- am33_2.0-*-linux*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
- ;;
- sh-*-linux*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
- ;;
sh*-*-pe|mips*-*-pe|*arm-wince-pe)
noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
- noconfigdirs="$noconfigdirs target-newlib"
;;
arc-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
- arm-*-coff)
- ;;
- arm-*-elf* | arm*-*-eabi* )
- ;;
- arm*-*-linux-gnueabi)
- case ${with_newlib} in
- no) noconfigdirs="$noconfigdirs target-newlib target-libgloss"
- esac
- ;;
- arm*-*-symbianelf*)
- ;;
arm-*-pe*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
arm-*-riscix*)
noconfigdirs="$noconfigdirs ld target-libgloss"
;;
- avr-*-*)
- ;;
- bfin-*-*)
- ;;
c4x-*-* | tic4x-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
cr16-*-*)
noconfigdirs="$noconfigdirs gdb"
;;
- cris-*-* | crisv32-*-*)
- case "${target}" in
- *-*-linux*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
- esac
- ;;
d10v-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
fr30-*-elf*)
noconfigdirs="$noconfigdirs gdb"
;;
- frv-*-*)
- ;;
moxie-*-*)
noconfigdirs="$noconfigdirs gprof"
;;
# No gdb or ld support yet.
noconfigdirs="$noconfigdirs readline libgui itcl gdb ld"
;;
- i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
- ;;
- i[[3456789]]86-*-linux*)
- # This section makes it possible to build newlib natively on linux.
- # If we are using a cross compiler then don't configure newlib.
- if test x${is_cross_compiler} != xno ; then
- noconfigdirs="$noconfigdirs target-newlib"
- fi
- noconfigdirs="$noconfigdirs target-libgloss"
- # If we are not using a cross compiler, do configure newlib.
- # Note however, that newlib will only be configured in this situation
- # if the --with-newlib option has been given, because otherwise
- # 'target-newlib' will appear in skipdirs.
- ;;
i[[3456789]]86-w64-mingw*)
- noconfigdirs="$noconfigdirs target-libgloss target-newlib"
;;
i[[3456789]]86-*-mingw*)
target_configdirs="$target_configdirs target-winsup"
- noconfigdirs="$noconfigdirs target-libgloss target-newlib"
- ;;
- x86_64-*-mingw*)
- noconfigdirs="$noconfigdirs target-libgloss target-newlib"
;;
*-*-cygwin*)
target_configdirs="$target_configdirs target-libtermcap target-winsup"
echo "Warning: winsup/cygwin is missing so newlib can't be built."
fi
;;
- i[[3456789]]86-*-interix* )
- ;;
i[[3456789]]86-*-pe)
noconfigdirs="$noconfigdirs target-libgloss"
;;
i[[3456789]]86-*-sco*)
noconfigdirs="$noconfigdirs gprof target-libgloss"
;;
- i[[3456789]]86-*-solaris2*)
+ i[[3456789]]86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
i[[3456789]]86-*-sysv4*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
i[[3456789]]86-*-beos*)
- noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
+ noconfigdirs="$noconfigdirs gdb"
;;
i[[3456789]]86-*-rdos*)
- noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
- ;;
- m32r-*-*)
- ;;
- m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
- ;;
- m68k-*-elf*)
- ;;
- m68*-*-* | fido-*-*)
+ noconfigdirs="$noconfigdirs gdb"
;;
mmix-*-*)
noconfigdirs="$noconfigdirs gdb"
;;
powerpc-*-aix*)
# copied from rs6000-*-* entry
- noconfigdirs="$noconfigdirs gprof target-libgloss target-newlib"
+ noconfigdirs="$noconfigdirs gprof"
;;
powerpc*-*-winnt* | powerpc*-*-pe*)
target_configdirs="$target_configdirs target-winsup"
noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
;;
powerpc-*-beos*)
- noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
- ;;
- powerpc-*-eabi)
- ;;
- powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
+ noconfigdirs="$noconfigdirs gdb"
;;
rs6000-*-lynxos*)
- noconfigdirs="$noconfigdirs target-newlib gprof"
+ noconfigdirs="$noconfigdirs gprof"
;;
rs6000-*-aix*)
- noconfigdirs="$noconfigdirs gprof target-libgloss target-newlib"
+ noconfigdirs="$noconfigdirs gprof"
;;
rs6000-*-*)
noconfigdirs="$noconfigdirs gprof"
noconfigdirs="$noconfigdirs gprof target-libgloss"
;;
mips*-*-linux*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
mips*-*-*)
noconfigdirs="$noconfigdirs gprof"
noconfigdirs="$noconfigdirs target-libgloss" ;;
esac
;;
- sparclet-*-aout* | sparc86x-*-*)
- ;;
- sparc-*-elf*)
- ;;
- sparc64-*-elf*)
- ;;
- sparclite-*-*)
- ;;
sparc-*-sunos4*)
- if test x${is_cross_compiler} != xno ; then
- noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
- else
+ if test x${is_cross_compiler} = xno ; then
use_gnu_ld=no
fi
;;
- sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
- ;;
tic6x-*-*)
- noconfigdirs="$noconfigdirs gdb sim"
+ noconfigdirs="$noconfigdirs sim"
+ ;;
+ tilepro-*-* | tilegx-*-*)
+ noconfigdirs="$noconfigdirs sim"
;;
v810-*-*)
noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
vax-*-*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss"
;;
- *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
- ;;
- *-*-lynxos*)
- noconfigdirs="$noconfigdirs target-newlib target-libgloss"
- ;;
- *-*-*)
- ;;
esac
# If we aren't building newlib, then don't build libgloss, since libgloss
ACX_PROG_GNAT
ACX_PROG_CMP_IGNORE_INITIAL
+AC_ARG_ENABLE([bootstrap],
+[AS_HELP_STRING([--enable-bootstrap],
+ [enable bootstrapping @<:@yes if native build@:>@])],,
+enable_bootstrap=default)
+
+# Issue errors and warnings for invalid/strange bootstrap combinations.
+if test -r $srcdir/gcc/configure; then
+ have_compiler=yes
+else
+ have_compiler=no
+fi
+
+case "$have_compiler:$host:$target:$enable_bootstrap" in
+ *:*:*:no) ;;
+
+ # Default behavior. Enable bootstrap if we have a compiler
+ # and we are in a native configuration.
+ yes:$build:$build:default)
+ enable_bootstrap=yes ;;
+
+ *:*:*:default)
+ enable_bootstrap=no ;;
+
+ # We have a compiler and we are in a native configuration, bootstrap is ok
+ yes:$build:$build:yes)
+ ;;
+
+ # Other configurations, but we have a compiler. Assume the user knows
+ # what he's doing.
+ yes:*:*:yes)
+ AC_MSG_WARN([trying to bootstrap a cross compiler])
+ ;;
+
+ # No compiler: if they passed --enable-bootstrap explicitly, fail
+ no:*:*:yes)
+ AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
+
+ # Fail if wrong command line
+ *)
+ AC_MSG_ERROR([invalid option for --enable-bootstrap])
+ ;;
+esac
+
# See if we are building gcc with C++.
AC_ARG_ENABLE(build-with-cxx,
[AS_HELP_STRING([--enable-build-with-cxx],
ENABLE_BUILD_WITH_CXX=$enableval,
ENABLE_BUILD_WITH_CXX=no)
+# Build stage1 with C and build stages 2 and 3 with C++.
+AC_ARG_ENABLE(build-poststage1-with-cxx,
+[AS_HELP_STRING([--enable-build-poststage1-with-cxx],
+ [build stages 2 and 3 with C++, not C])],
+ENABLE_BUILD_POSTSTAGE1_WITH_CXX=$enableval,
+ENABLE_BUILD_POSTSTAGE1_WITH_CXX=yes)
+
# Used for setting $lt_cv_objdir
_LT_CHECK_OBJDIR
;;
esac
+ # If bootstrapping, then using --enable-build-with-cxx or
+ # --enable-build-poststage1-with-cxx requires enabling C++.
+ case ",$enable_languages,:,$ENABLE_BUILD_WITH_CXX,$ENABLE_BUILD_POSTSTAGE1_WITH_CXX,:$enable_bootstrap" in
+ *,c++,*:*:*) ;;
+ *:*,yes,*:yes)
+ if test -f ${srcdir}/gcc/cp/config-lang.in; then
+ enable_languages="${enable_languages},c++"
+ else
+ AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx or --enable-build-poststage1-with-cxx requires c++ sources])
+ fi
+ ;;
+ esac
+
# First scan to see if an enabled language requires some other language.
# We assume that a given config-lang.in will list all the language
# front ends it requires, even if some are required indirectly.
exit 1
fi
- if test "$language" = "c++" \
- && test "$ENABLE_BUILD_WITH_CXX" = "yes"; then
- boot_language=yes
+ if test "$language" = "c++"; then
+ if test "$ENABLE_BUILD_WITH_CXX" = "yes" \
+ || test "$ENABLE_BUILD_POSTSTAGE1_WITH_CXX" = "yes"; then
+ boot_language=yes
+ fi
fi
case ,${enable_languages}, in
fi
done
-# Sometimes the tools are distributed with libiberty but with no other
-# libraries. In that case, we don't want to build target-libiberty.
-# Don't let libgcc imply libiberty either.
-if test -n "${target_configdirs}" ; then
- libgcc=
- others=
- for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do
- if test "$i" = "libgcc"; then
- libgcc=target-libgcc
- elif test "$i" != "libiberty" ; then
- if test -r $srcdir/$i/configure ; then
- others=yes;
- break;
- fi
- fi
- done
- if test -z "${others}" ; then
- target_configdirs=$libgcc
- fi
-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.
fi
AC_SUBST(CXXFLAGS_FOR_TARGET)
+AC_SUBST(LDFLAGS_FOR_TARGET)
+
# Handle --with-headers=XXX. If the value is not "yes", the contents of
# the named directory are copied to $(tooldir)/sys-include.
if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
esac
fi
-# hpux11 in 64bit mode has libraries in a weird place. Arrange to find
-# them automatically.
-case "${host}" in
- hppa*64*-*-hpux11*)
- extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include"
- ;;
-esac
-
# Some systems (e.g., one of the i386-aix systems the gas testers are
# using) don't handle "\$" correctly, so don't use it here.
tooldir='${exec_prefix}'/${target_noncanonical}
esac
rm -f conftest*
-# The Solaris /usr/ucb/cc compiler does not appear to work.
-case "${host}" in
- sparc-sun-solaris2*)
- CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
- if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
- could_use=
- test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
- if test -d /opt/cygnus/bin ; then
- if test "$could_use" = "" ; then
- could_use="/opt/cygnus/bin"
- else
- could_use="$could_use or /opt/cygnus/bin"
- fi
- fi
- if test "$could_use" = "" ; then
- echo "Warning: compilation may fail because you're using"
- echo "/usr/ucb/cc. You should change your PATH or CC "
- echo "variable and rerun configure."
- else
- echo "Warning: compilation may fail because you're using"
- echo "/usr/ucb/cc, when you should use the C compiler from"
- echo "$could_use. You should change your"
- echo "PATH or CC variable and rerun configure."
- fi
- fi
- ;;
-esac
-
# Decide which environment variable is used to find dynamic libraries.
case "${host}" in
*-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
# 99 commands in a script, for HP-UX sed.
# Do not nest @if/@endif pairs, because configure will not warn you at all.
-AC_ARG_ENABLE([bootstrap],
-[AS_HELP_STRING([--enable-bootstrap],
- [enable bootstrapping @<:@yes if native build@:>@])],,
-enable_bootstrap=default)
-
-# Issue errors and warnings for invalid/strange bootstrap combinations.
-case "$configdirs" in
- *gcc*) have_compiler=yes ;;
- *) have_compiler=no ;;
-esac
-
-case "$have_compiler:$host:$target:$enable_bootstrap" in
- *:*:*:no) ;;
-
- # Default behavior. Enable bootstrap if we have a compiler
- # and we are in a native configuration.
- yes:$build:$build:default)
- enable_bootstrap=yes ;;
-
- *:*:*:default)
- enable_bootstrap=no ;;
-
- # We have a compiler and we are in a native configuration, bootstrap is ok
- yes:$build:$build:yes)
- ;;
-
- # Other configurations, but we have a compiler. Assume the user knows
- # what he's doing.
- yes:*:*:yes)
- AC_MSG_WARN([trying to bootstrap a cross compiler])
- ;;
-
- # No compiler: if they passed --enable-bootstrap explicitly, fail
- no:*:*:yes)
- AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
-
- # Fail if wrong command line
- *)
- AC_MSG_ERROR([invalid option for --enable-bootstrap])
- ;;
-esac
-
-case ",$enable_languages,:$ENABLE_BUILD_WITH_CXX:$enable_bootstrap" in
- *,c++,*:yes:yes) ;;
- *:yes:yes)
- AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx requires c++ in --enable-languages])
- ;;
-esac
-
case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
yes:yes:*\ gold\ *:*,c++,*) ;;
yes:yes:*\ gold\ *:*)
esac
AC_SUBST(stage2_werror_flag)
+# If using ENABLE_BUILD_POSTSTAGE1_WITH_CXX, pass
+# --enable-build-with-cxx after stage1.
+if test "$ENABLE_BUILD_POSTSTAGE1_WITH_CXX" = "yes"; then
+ POSTSTAGE1_CONFIGURE_FLAGS=--enable-build-with-cxx
+else
+ POSTSTAGE1_CONFIGURE_FLAGS=
+fi
+AC_SUBST(POSTSTAGE1_CONFIGURE_FLAGS)
+
# Specify what files to not compare during bootstrap.
compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"