topsrcdir=$srcpwd
extra_host_args=
-# Define the trigger file to make sure configure will re-run whenever
-# the gcc version number changes.
-if test "${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 test -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 "$ac_configure_args" in
- *--with-gcc-version-trigger=$gcc_version_trigger* )
- ;;
- * )
- # Add to all subconfigure arguments: build, host, and target.
- ac_configure_args="$ac_configure_args --with-gcc-version-trigger=$gcc_version_trigger"
- ;;
- esac
- fi
-fi
### To add a new directory to the tree, first choose whether it is a target
### or a host dependent tool. Then put it into the appropriate list
# know that we are building the simulator.
# binutils, gas and ld appear in that order because it makes sense to run
# "make check" in that particular order.
-host_tools="texinfo byacc flex bison binutils gas ld gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar"
+host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
target-newlib \
target-libstdc++-v3 \
target-libmudflap \
+ target-libssp \
target-libgfortran \
${libgcj} \
target-libobjc \
configdirs="$configdirs libtermcap" ;;
esac
+# A target can indicate whether a language isn't supported for some reason.
+# Only spaces may be used in this macro; not newlines or tabs.
+unsupported_languages=
+
# Remove more programs from consideration, based on the host or
# target this usually means that a port of the program doesn't
# exist yet.
powerpc-*-beos*)
noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline"
;;
- *-*-darwin*)
- noconfigdirs="$noconfigdirs tk itcl libgui"
- ;;
esac
ENABLE_LIBADA=yes)
if test "${ENABLE_LIBADA}" != "yes" ; then
noconfigdirs="$noconfigdirs target-libada"
+ noconfigdirs="$noconfigdirs gnattools"
+fi
+
+AC_ARG_ENABLE(libssp,
+[ --enable-libssp Builds libssp directory],
+ENABLE_LIBSSP=$enableval,
+ENABLE_LIBSSP=yes)
+if test "${ENABLE_LIBSSP}" != "yes" ; then
+ noconfigdirs="$noconfigdirs target-libssp"
fi
# Save it here so that, even in case of --enable-libgcj, if the Java
;;
powerpc-*-darwin*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
;;
*-*-darwin*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
noconfigdirs="$noconfigdirs ${libgcj}"
;;
*-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*)
*-*-rtems*)
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
+ # The tpf target doesn't support gdb yet.
+ *-*-tpf*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj} target-libmudflap gdb tcl tk libgui itcl"
+ ;;
*-*-uclinux*)
noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}"
;;
arc-*-*)
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
+ arm-semi-aof )
+ ;;
arm-*-coff | strongarm-*-coff | xscale-*-coff)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
arm-*-pe*)
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
- arm-*-oabi*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
- ;;
thumb-*-coff)
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
thumb-*-elf)
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
- thumb-*-oabi)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
- ;;
thumb-*-pe)
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
c54x*-*-* | tic54x-*-*)
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib"
;;
- cris-*-*)
- noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ cris-*-* | crisv32-*-*)
+ unsupported_languages="$unsupported_languages java"
+ case "${target}" in
+ *-*-aout)
+ unsupported_languages="$unsupported_languages f95"
+ noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
+ *-*-elf)
+ unsupported_languages="$unsupported_languages f95"
+ noconfigdirs="$noconfigdirs target-boehm-gc";;
+ *-*-linux*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss";;
+ *)
+ unsupported_languages="$unsupported_languages f95"
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss";;
+ esac
;;
crx-*-*)
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap ${libgcj}"
h8500-*-*)
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
;;
+ hppa1.1-*-osf* | hppa1.1-*-bsd* )
+ ;;
hppa*64*-*-linux* | parisc*64*-*-linux*)
# In this case, it's because the hppa64-linux target is for
# the kernel only at this point and has no libc, and thus no
# headers, crt*.o, etc., all of which are needed by these.
noconfigdirs="$noconfigdirs target-zlib"
;;
+ parisc*-*-linux* | hppa*-*-linux*)
+ ;;
hppa*-*-*elf* | \
- parisc*-*-linux* | hppa*-*-linux* | \
hppa*-*-lites* | \
hppa*-*-openbsd* | \
hppa*64*-*-*)
noconfigdirs="$noconfigdirs ${libgcj}"
- # Do configure ld/binutils/gas for this case.
;;
hppa*-*-*)
# According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
# No gdb or ld support yet.
noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld"
;;
+ i370-*-opened*)
+ ;;
i[[3456789]]86-*-coff | i[[3456789]]86-*-elf)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
;;
esac
;;
+ i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss* | \
+ i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* )
+ ;;
i[[3456789]]86-*-pe)
noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}"
;;
noconfigdirs="$noconfigdirs target-libstdc++-v3"
;;
mmix-*-*)
- noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss"
+ noconfigdirs="$noconfigdirs target-libffi target-boehm-gc gdb libgloss"
+ unsupported_languages="$unsupported_languages f95 java"
;;
mn10200-*-*)
noconfigdirs="$noconfigdirs ${libgcj}"
mn10300-*-*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
+ ms1-*-*)
+ noconfigdirs="$noconfigdirs sim"
+ ;;
powerpc-*-aix*)
# copied from rs6000-*-* entry
noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
powerpc-*-eabi)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
+ powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* )
+ ;;
rs6000-*-lynxos*)
noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}"
;;
romp-*-*)
noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
;;
- sh-*-*)
+ sh-*-* | sh64-*-*)
case "${host}" in
i[[3456789]]86-*-vsta) ;; # don't add gprof back in
i[[3456789]]86-*-go32*) ;; # don't add gprof back in
esac
noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
;;
- sh64-*-*)
- noconfigdirs="$noconfigdirs target-libgloss ${libgcj}"
- ;;
sparc-*-elf*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
use_gnu_ld=no
fi
;;
+ sparc-*-solaris2.[[0-6]] | sparc-*-solaris2.[[0-6]].*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*)
;;
v810-*-*)
host_makefile_frag="config/mh-cygwin"
;;
*-mingw32*)
- host_makefile_frag="config/mh-mingw32"
;;
*-interix*)
host_makefile_frag="config/mh-interix"
AC_ARG_WITH(mpfr-dir, [ --with-mpfr-dir=PATH Specify source directory for MPFR library])
if test "x$with_mpfr_dir" != x; then
- gmpinc="-I$with_mpfr_dir/mpfr"
+ gmpinc="-I$with_mpfr_dir"
gmplibs="$with_mpfr_dir/libmpfr.a"
else
gmplibs="-lmpfr"
add_this_lang=no
;;
esac
-
+
+ # Disable a language that is unsupported by the target.
+ case " $unsupported_languages " in
+ *" $language "*)
+ add_this_lang=no
+ ;;
+ esac
+
case $add_this_lang in
no)
# Remove language-dependent dirs.
missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
if test "x$missing_languages" != x; then
AC_MSG_ERROR([
-The following requested languages were not found: ${missing_languages}
-The available languages are: ${potential_languages}])
+The following requested languages could not be built: ${missing_languages}
+Recognised languages are: ${potential_languages}])
fi
if test "x$new_enable_languages" != "x$enable_languages"; then
ac_configure_args=`echo " $ac_configure_args" | sed -e 's/ --enable-languages=[[^ ]]*//' -e 's/$/ --enable-languages='"$enable_languages"/ `
fi
-# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
-# $target_configdirs.
+# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
+# $build_configdirs and $target_configdirs.
# If we have the source for $noconfigdirs entries, add them to $notsupp.
notsupp=""
for dir in . $skipdirs $noconfigdirs ; do
- dirname=`echo $dir | sed -e s/target-//g`
+ dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
if test -r $srcdir/$dirname/configure ; then
fi
fi
fi
+ if test $dir != . && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
+ if test -r $srcdir/$dirname/configure ; then
+ if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ true
+ else
+ notsupp="$notsupp $dir"
+ fi
+ fi
+ fi
if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
if test -r $srcdir/$dirname/configure ; then
;;
esac
-# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the
-# binutils tools will find libbfd.so.
-case "${enable_shared}" in
- no | "") SET_LIB_PATH= ;;
- *) SET_LIB_PATH="\$(REALLY_SET_LIB_PATH)" ;;
-esac
-
case "${host}" in
*-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
+ *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
*) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
esac
# For the build-side libraries, we just need to pretend we're native,
# and not use the same cache file. Multilibs are neither needed nor
# desired.
-build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}"
+build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} --target=${target_alias} ${baseargs}"
# For host modules, accept cache file option, or specification as blank.
case "${cache_file}" in
# fixed in future. It's still worthwhile to use a cache file for each
# directory. I think.
-# Pass the appropriate --host, --build, and --cache-file arguments.
-target_configargs="--cache-file=./config.cache --host=${target_alias} --build=${build_alias} ${target_configargs}"
-
-# provide a proper gxx_include_dir.
-# Note, if you change the default, make sure to fix both here and in
-# the gcc and libstdc++-v3 subdirectories.
-# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
-case "${with_gxx_include_dir}" in
- yes)
- AC_MSG_ERROR([--with-gxx-include-dir=[[dir]] requires a directory])
- ;;
- no | "")
- case "${enable_version_specific_runtime_libs}" in
- yes) gxx_include_dir='${libsubdir}/include/c++' ;;
- *)
- . ${srcdir}/config.if
- gxx_include_dir='${prefix}/include/'${libstdcxx_incdir} ;;
- esac ;;
- *) gxx_include_dir=${with_gxx_include_dir} ;;
-esac
+# Pass the appropriate --build, --host, --target and --cache-file arguments.
+# We need to pass --target, as newer autoconf's requires consistency
+# for target_alias and gcc doesn't manage it consistently.
+target_configargs="--cache-file=./config.cache --build=${build_alias} --host=${target_alias} --target=${target_alias} ${target_configargs}"
FLAGS_FOR_TARGET=
case " $target_configdirs " in
# to it. This is right: we don't want to search that directory
# for binaries, but we want the header files in there, so add
# them explicitly.
- FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include'
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include'
# Someone might think of using the pre-installed headers on
# Canadian crosses, in case the installed compiler is not fully
if test "x${use_gnu_ld}" = x &&
echo " ${configdirs} " | grep " ld " > /dev/null ; then
# Arrange for us to find uninstalled linker scripts.
- FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
fi
if test "x${CC_FOR_TARGET+set}" = xset; then
:
elif test -d ${srcdir}/gcc; then
- CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/'
+ CC_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/'
elif test "$host" = "$target"; then
CC_FOR_TARGET='$(CC)'
else
if test "x${GCJ_FOR_TARGET+set}" = xset; then
:
elif test -d ${srcdir}/gcc; then
- GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/'
+ GCJ_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/'
elif test "$host" = "$target"; then
GCJ_FOR_TARGET='gcj'
else
if test "x${GFORTRAN_FOR_TARGET+set}" = xset; then
:
elif test -d ${srcdir}/gcc; then
- GFORTRAN_FOR_TARGET='$$r/gcc/gfortran -B$$r/gcc/'
+ GFORTRAN_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/'
elif test "$host" = "$target"; then
GFORTRAN_FOR_TARGET='gfortran'
else
# default whereas gcc does not.
# RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for
# all other cases.
- CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags
- RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags
+ CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ '$libstdcxx_flags
+ RAW_CXX_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ '$raw_libstdcxx_flags
elif test "$host" = "$target"; then
CXX_FOR_TARGET='$(CXX)'
RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET}
AC_SUBST_FILE(ospace_frag)
# Miscellanea: directories, flags, etc.
-AC_SUBST(SET_LIB_PATH)
AC_SUBST(RPATH_ENVVAR)
AC_SUBST(BUILD_PREFIX)
AC_SUBST(BUILD_PREFIX_1)
-AC_SUBST(gcc_version_trigger)
-AC_SUBST(gcc_version)
AC_SUBST(tooldir)
AC_SUBST(build_tooldir)
AC_SUBST(GDB_TK)
-AC_SUBST(gxx_include_dir)
-AC_SUBST(libstdcxx_incdir)
# Build module lists & subconfigure args.
AC_SUBST(build_configargs)
&& rm -f confdir.s2; then
gcc_cv_prog_ln_s_dir=yes
else
- gcc_cv_prog_ln_s_dir=yes
+ gcc_cv_prog_ln_s_dir=no
fi
rm -rf confdir.s1 confdir.s2])
esac
AC_SUBST(stage2_werror_flag)
-# If gcc is built natively with shared library enabled, set
-# $RPATH_ENVVAR to make sure the newly built gcc shared librares are
-# used.
-SET_GCC_LIB_PATH=
-if test -d ${srcdir}/gcc && test x${is_cross_compiler} = xno; then
- case "${enable_shared}" in
- no | "") ;;
- *)
- eval "d=\$$RPATH_ENVVAR"
- if test x"$d" != x; then
- d="$pwd/gcc:$d"
- else
- d="$pwd/gcc"
- fi
- SET_GCC_LIB_PATH="\$(RPATH_ENVVAR)=$d; export \$(RPATH_ENVVAR);"
- ;;
- esac
-fi
-AC_SUBST(SET_GCC_LIB_PATH)
-
AC_OUTPUT(Makefile)