X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=5735d84c8b4ab4850c88e350b5099b874b30f5ed;hb=2de41bce0f95dde45a8a66aeb535732e09e3a262;hp=31f72b18be70dd808410d511a05cb41f3ddbec85;hpb=b9459e835c78a629ee5e1d1871587acdb5640029;p=deliverable%2Fbinutils-gdb.git diff --git a/configure.in b/configure.in index 31f72b18be..5735d84c8b 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +# 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -23,14 +23,10 @@ AC_PREREQ(2.13) AC_CANONICAL_SYSTEM AC_ARG_PROGRAM -sinclude(config/acx.m4) - -# clear some things potentially inherited from environment. +# Get 'install' or 'install-sh' and its variants. +AC_PROG_INSTALL -enable_libstdcxx_v3=yes -floating_point=default -gas=default -x11=default +sinclude(config/acx.m4) ### we might need to use some other shell than /bin/sh for running subshells ### If we are on Windows, search for the shell. This will permit people @@ -70,8 +66,14 @@ progname=$0 # if PWD already has a value, it is probably wrong. if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi -# Export original configure arguments for use by sub-configures. -TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@" +# Export original configure arguments for use by sub-configures. These +# will be expanded by make, so quote '$'. +tmp="$progname $@" +sed -e 's,\$,$$,g' < conftestsed.out +$tmp +EOF_SED +TOPLEVEL_CONFIGURE_ARGUMENTS=`cat conftestsed.out` +rm -f conftestsed.out AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS) moveifchange=${srcdir}/move-if-change @@ -143,18 +145,19 @@ libgcj="target-libffi \ # 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) # -target_libs="target-libiberty \ +target_libraries="target-libiberty \ target-libgloss \ target-newlib \ target-libstdc++-v3 \ target-libf2c \ ${libgcj} \ - target-libobjc" + target-libobjc \ + target-libada" -# these tools are built using the target libs, and are intended to run only -# in the target environment +# these tools are built using the target libraries, and are intended to +# run only in the target environment # -# note: any program that *uses* libraries that are in the "target_libs" +# note: any program that *uses* libraries that are in the "target_libraries" # list belongs in this list. those programs are also very likely # candidates for the "native_only" list which follows # @@ -169,7 +172,17 @@ target_tools="target-examples target-groff target-gperf target-rda" ## ${target_configdirs} is directories we build using the target tools. # configdirs=`echo ${host_libs} ${host_tools}` -target_configdirs=`echo ${target_libs} ${target_tools}` +target_configdirs=`echo ${target_libraries} ${target_tools}` + +# Only make build modules if build != host. +# This should be done more generally, but at the moment it doesn't matter. +if test ${host_alias} != ${build_alias} ; then + # This is the only build module. + build_modules=libiberty +else + build_modules= +fi + ################################################################################ @@ -186,30 +199,8 @@ else is_cross_compiler=yes fi -# We always want to use the same name for this directory, so that dejagnu -# can reliably find it. -target_subdir=${target_alias} - -if test ! -d ${target_subdir} ; then - if mkdir ${target_subdir} ; then true - else - echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2 - exit 1 - fi -fi - -build_prefix=build- -build_subdir=${build_prefix}${build_alias} - -if test x"${build_alias}" != x"${host}" ; then - if test ! -d ${build_subdir} ; then - if mkdir ${build_subdir} ; then true - else - echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2 - exit 1 - fi - fi -fi +# Find the build and target subdir names. +GCC_TOPLEV_SUBDIRS # Skipdirs are removed silently. skipdirs= @@ -258,7 +249,8 @@ esac # If both --with-headers and --with-libs are specified, default to # --without-newlib. -if test x"${with_headers}" != x && test x"${with_libs}" != x ; then +if test x"${with_headers}" != x && test x"${with_headers} != xno \ + && test x"${with_libs}" != x && test x"${with_libs} != xno ; then if test x"${with_newlib}" = x ; then with_newlib=no fi @@ -285,27 +277,27 @@ case "${host}" in hppa*64*-*-*) noconfigdirs="$noconfigdirs byacc" ;; - i[[3456]]86-*-vsta) - noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix gnuserv gettext" + i[[3456789]]86-*-vsta) + noconfigdirs="$noconfigdirs tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix gnuserv gettext" ;; - i[[3456]]86-*-go32* | i[[3456]]86-*-msdosdjgpp*) - noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile itcl tix gnuserv libffi" - ;; - i[[3456]]86-*-mingw32*) + i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*) + noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl tix gnuserv libffi" + ;; + i[[3456789]]86-*-mingw32*) # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl tix gnuserv" - noconfigdirs="expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool" - ;; - i[[3456]]86-*-beos*) - noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" - ;; + noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool" + ;; + i[[3456789]]86-*-beos*) + noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" + ;; *-*-cygwin*) - noconfigdirs="autoconf automake send-pr rcs guile perl" + noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl" ;; *-*-netbsd*) - noconfigdirs="rcs" + noconfigdirs="$noconfigdirs rcs" ;; ppc*-*-pe) - noconfigdirs="patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl tix gnuserv" + noconfigdirs="$noconfigdirs patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl tix gnuserv" ;; powerpc-*-beos*) noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline" @@ -315,6 +307,14 @@ case "${host}" in ;; esac +AC_ARG_ENABLE(libada, +[ --enable-libada Builds libada directory], +ENABLE_LIBADA=$enableval, +ENABLE_LIBADA=yes) +if test "${ENABLE_LIBADA}" != "yes" ; then + noconfigdirs="$noconfigdirs target-libada" +fi + # Save it here so that, even in case of --enable-libgcj, if the Java # front-end isn't enabled, we still get libgcj disabled. libgcj_saved=$libgcj @@ -335,6 +335,10 @@ case "${target}" in *-*-chorusos) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + powerpc-*-darwin*) + noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof" + noconfigdirs="$noconfigdirs target-libobjc" + ;; *-*-darwin*) noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof" noconfigdirs="$noconfigdirs target-libobjc ${libgcj}" @@ -356,6 +360,7 @@ case "${target}" in # Skip some stuff that's unsupported on some NetBSD configurations. case "${target}" in i*86-*-netbsdelf*) ;; + arm*-*-netbsdelf*) ;; *) noconfigdirs="$noconfigdirs ${libgcj}" ;; @@ -373,8 +378,11 @@ case "${target}" in *) ;; esac ;; + *-*-uclinux*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss target-rda ${libgcj}" + ;; *-*-vxworks*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-newlib target-libgloss target-libiberty ${libgcj}" ;; alpha*-dec-osf*) # ld works, but does not support shared libraries. @@ -389,13 +397,16 @@ case "${target}" in # newlib is not 64 bit ready noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; - alpha*-*-freebsd*) + alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; alpha*-*-*) # newlib is not 64 bit ready noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + am33_2.0-*-linux*) + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" + ;; sh-*-linux*) noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;; @@ -454,22 +465,22 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} gcc gdb newlib" ;; cris-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;; d10v-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" ;; d30v-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} gdb" ;; fr30-*-elf*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} gdb" ;; frv-*-*) noconfigdirs="$noconfigdirs ${libgcj}" ;; h8300*-*-*) - noconfigdirs="$noconfigdirs target-libgloss" + noconfigdirs="$noconfigdirs target-libgloss ${libgcj} target-libf2c" ;; h8500-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} target-libf2c" @@ -493,21 +504,24 @@ case "${target}" in # build on HP-UX 10.20. noconfigdirs="$noconfigdirs ld shellutils ${libgcj}" ;; + i960-*-*) + noconfigdirs="$noconfigdirs ${libgcj} gdb" + ;; ia64*-*-elf*) # No gdb support yet. noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb" ;; ia64*-**-hpux*) # No gdb or ld support yet. - noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld" + noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui itcl gdb ld" ;; - i[[3456]]86-*-coff | i[[3456]]86-*-elf) + i[[3456789]]86-*-coff | i[[3456789]]86-*-elf) noconfigdirs="$noconfigdirs ${libgcj}" ;; - i[[34567]]86-*-freebsd*) + i[[3456789]]86-*-freebsd* | i[[3456789]]86-*-kfreebsd*-gnu) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; - i[[3456]]86-*-linux*) + i[[3456789]]86-*-linux*) # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's # not build java stuff by default. case "${target}" in @@ -518,7 +532,7 @@ case "${target}" in # 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" + noconfigdirs="$noconfigdirs target-newlib" fi noconfigdirs="$noconfigdirs target-libgloss" # If we are not using a cross compiler, do configure newlib. @@ -526,13 +540,13 @@ case "${target}" in # if the --with-newlib option has been given, because otherwise # 'target-newlib' will appear in skipdirs. ;; - i[[3456]]86-*-mingw32*) + i[[3456789]]86-*-mingw32*) target_configdirs="$target_configdirs target-mingw" noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}" # Can't build gdb for mingw32 if not native. case "${host}" in - i[[3456]]86-*-mingw32) ;; # keep gdb tcl tk expect etc. + i[[3456789]]86-*-mingw32) ;; # keep gdb tcl tk expect etc. *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix gnuserv" ;; esac @@ -550,26 +564,29 @@ case "${target}" in ;; esac ;; - i[[3456]]86-*-pe) + i[[3456789]]86-*-pe) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" ;; - i[[3456]]86-*-sco3.2v5*) + i[[3456789]]86-*-sco3.2v5*) # The linker does not yet know about weak symbols in COFF, # and is not configured to handle mixed ELF and COFF. noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" ;; - i[[3456]]86-*-sco*) + i[[3456789]]86-*-sco*) noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" ;; - i[[3456]]86-*-solaris2*) + i[[3456789]]86-*-solaris2*) noconfigdirs="$noconfigdirs target-libgloss" ;; - i[[3456]]86-*-sysv4*) + i[[3456789]]86-*-sysv4*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; - i[[3456]]86-*-beos*) - noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" - ;; + i[[3456789]]86-*-beos*) + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" + ;; + m32r-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" ;; @@ -595,7 +612,7 @@ case "${target}" in ;; powerpc-*-aix*) # copied from rs6000-*-* entry - noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs gprof target-libada target-libgloss ${libgcj}" ;; powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe) target_configdirs="$target_configdirs target-winsup" @@ -613,16 +630,11 @@ case "${target}" in powerpc-*-eabi) noconfigdirs="$noconfigdirs ${libgcj}" ;; - powerpc64*-*-linux*) - noconfigdirs="$noconfigdirs target-newlib target-libgloss" - # not yet ported. - noconfigdirs="$noconfigdirs target-libffi" - ;; rs6000-*-lynxos*) noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}" ;; rs6000-*-aix*) - noconfigdirs="$noconfigdirs gprof ${libgcj}" + noconfigdirs="$noconfigdirs gprof target-libada target-libgloss ${libgcj}" ;; rs6000-*-*) noconfigdirs="$noconfigdirs gprof ${libgcj}" @@ -649,7 +661,10 @@ case "${target}" in ;; mipstx39-*-*) noconfigdirs="$noconfigdirs gprof ${libgcj}" # same as generic mips - ;; + ;; + mips64*-*-linux*) + noconfigdirs="$noconfigdirs target-newlib ${libgcj}" + ;; mips*-*-linux*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; @@ -661,9 +676,9 @@ case "${target}" in ;; sh-*-*) case "${host}" in - i[[3456]]86-*-vsta) ;; # don't add gprof back in - i[[3456]]86-*-go32*) ;; # don't add gprof back in - i[[3456]]86-*-msdosdjgpp*) ;; # don't add gprof back in + i[[3456789]]86-*-vsta) ;; # don't add gprof back in + i[[3456789]]86-*-go32*) ;; # don't add gprof back in + i[[3456789]]86-*-msdosdjgpp*) ;; # don't add gprof back in *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;; esac noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" @@ -708,6 +723,9 @@ case "${target}" in vax-*-*) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + xtensa-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; ip2k-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" ;; @@ -729,268 +747,6 @@ case "${noconfigdirs}" in *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;; esac -# Figure out what language subdirectories are present. -# Look if the user specified --enable-languages="..."; if not, use -# the environment variable $LANGUAGES if defined. $LANGUAGES might -# go away some day. -# NB: embedded tabs in this IF block -- do not untabify -if test x"${enable_languages+set}" != xset; then - if test x"${LANGUAGES+set}" = xset; then - enable_languages="${LANGUAGES}" - echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 - else - enable_languages=all - fi -else - if test x"${enable_languages}" = x || - test x"${enable_languages}" = xyes; - then - echo configure.in: --enable-languages needs at least one language argument 1>&2 - exit 1 - fi -fi -enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'` - -# 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. -for lang in ${srcdir}/gcc/*/config-lang.in .. -do - case $lang in - ..) - ;; - # The odd quoting in the next line works around - # an apparent bug in bash 1.12 on linux. - ${srcdir}/gcc/[[*]]/config-lang.in) - ;; - *) - lang_alias=`sed -n -e 's,^language=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^language=\([[^ ]]*\).*$,\1,p' $lang` - this_lang_requires=`sed -n -e 's,^lang_requires=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^lang_requires=\([[^ ]]*\).*$,\1,p' $lang` - for other in $this_lang_requires - do - case ,${enable_languages}, in - *,$other,*) - ;; - *,all,*) - ;; - *,$lang_alias,*) - echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2 - enable_languages="$enable_languages,$other" - ;; - esac - done - ;; - esac -done - -subdirs= -for lang in ${srcdir}/gcc/*/config-lang.in .. -do - case $lang in - ..) ;; - # The odd quoting in the next line works around - # an apparent bug in bash 1.12 on linux. - ${srcdir}/gcc/[[*]]/config-lang.in) ;; - *) - lang_alias=`sed -n -e 's,^language=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^language=\([[^ ]]*\).*$,\1,p' $lang` - this_lang_libs=`sed -n -e 's,^target_libs=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^target_libs=\([[^ ]]*\).*$,\1,p' $lang` - this_lang_dirs=`sed -n -e 's,^lang_dirs=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^lang_dirs=\([[^ ]]*\).*$,\1,p' $lang` - build_by_default=`sed -n -e 's,^build_by_default=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^build_by_default=\([[^ ]]*\).*$,\1,p' $lang` - if test "x$lang_alias" = x - then - echo "$lang doesn't set \$language." 1>&2 - exit 1 - fi - case ${build_by_default},${enable_languages}, in - *,$lang_alias,*) add_this_lang=yes ;; - no,*) add_this_lang=no ;; - *,all,*) add_this_lang=yes ;; - *) add_this_lang=no ;; - esac - if test x"${add_this_lang}" = xyes; then - eval target_libs='"$target_libs "'\"$this_lang_libs\" - else - eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\" - fi - ;; - esac -done - -# Remove the entries in $skipdirs and $noconfigdirs from $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` - 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 - 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 - if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then - true - else - notsupp="$notsupp $dir" - fi - fi - 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. -if test -n "${target_configdirs}" ; then - others= - for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do - if test "$i" != "libiberty" ; then - if test -r $srcdir/$i/configure ; then - others=yes; - break; - fi - fi - done - if test -z "${others}" ; then - target_configdirs= - 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. -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 -# supported by the one or two programs in a package. - -if test -n "${notsupp}" && test -z "${norecursion}" ; then - # If $appdirs is non-empty, at least one of those directories must still - # be configured, or we error out. (E.g., if the gas release supports a - # specified target in some subdirs but not the gas subdir, we shouldn't - # pretend that all is well.) - if test -n "$appdirs" ; then - for dir in $appdirs ; do - if test -r $dir/Makefile.in ; then - if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then - appdirs="" - break - fi - if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then - appdirs="" - break - fi - fi - done - if test -n "$appdirs" ; then - echo "*** This configuration is not supported by this package." 1>&2 - exit 1 - fi - fi - # Okay, some application will build, or we don't care to check. Still - # notify of subdirs not getting built. - echo "*** This configuration is not supported in the following subdirectories:" 1>&2 - echo " ${notsupp}" 1>&2 - echo " (Any other directories should still work fine.)" 1>&2 -fi - -case "$host" in - *msdosdjgpp*) - enable_gdbtk=no ;; -esac - -copy_dirs= - -# 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 ; then - if test x${is_cross_compiler} = xno ; then - echo 1>&2 '***' --with-headers is only supported when cross compiling - exit 1 - fi - if test x"${with_headers}" != xyes ; then - case "${exec_prefixoption}" in - "") x=${prefix} ;; - *) x=${exec_prefix} ;; - esac - copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include" - fi -fi - -# Handle --with-libs=XXX. If the value is not "yes", the contents of -# the name directories are copied to $(tooldir)/lib. Multiple directories -# are permitted. -if test x"${with_libs}" != x ; then - if test x${is_cross_compiler} = xno ; then - echo 1>&2 '***' --with-libs is only supported when cross compiling - exit 1 - fi - if test x"${with_libs}" != xyes ; then - # Copy the libraries in reverse order, so that files in the first named - # library override files in subsequent libraries. - case "${exec_prefixoption}" in - "") x=${prefix} ;; - *) x=${exec_prefix} ;; - esac - for l in ${with_libs}; do - copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}" - done - fi -fi - -# Handle ${copy_dirs} -set fnord ${copy_dirs} -shift -while test $# != 0 ; do - if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then - : - else - echo Copying $1 to $2 - - # Use the install script to create the directory and all required - # parent directories. - if test -d $2 ; then - : - else - echo >config.temp - ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED - fi - - # Copy the directory, assuming we have tar. - # FIXME: Should we use B in the second tar? Not all systems support it. - (cd $1; tar -cf - .) | (cd $2; tar -xpf -) - - # It is the responsibility of the user to correctly adjust all - # symlinks. If somebody can figure out how to handle them correctly - # here, feel free to add the code. - - echo $1 > $2/COPIED - fi - shift; shift -done - # Work in distributions that contain no compiler tools, like Autoconf. tentative_cc="" host_makefile_frag=/dev/null @@ -1062,19 +818,19 @@ case "${host}" in i370-ibm-opened*) tentative_cc="c89" ;; - i[[3456]]86-*-sysv5*) + i[[3456789]]86-*-sysv5*) host_makefile_frag="config/mh-sysv5" ;; - i[[3456]]86-*-dgux*) + i[[3456789]]86-*-dgux*) tentative_cc="gcc -Wall -ansi -D__using_DGUX" host_makefile_frag="config/mh-dgux386" ;; - i[[3456]]86-ncr-sysv4.3*) + i[[3456789]]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" ;; - i[[3456]]86-ncr-sysv4*) + i[[3456789]]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 @@ -1083,21 +839,21 @@ case "${host}" in tentative_cc="/usr/ccs/ATT/cc" host_makefile_frag="config/mh-ncr3000" ;; - i[[3456]]86-*-sco3.2v5*) + i[[3456789]]86-*-sco3.2v5*) ;; - i[[3456]]86-*-sco*) + i[[3456789]]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="config/mh-sco" ;; - i[[3456]]86-*-udk*) + i[[3456789]]86-*-udk*) host_makefile_frag="config/mh-sysv5" ;; - i[[3456]]86-*-solaris2*) + i[[3456789]]86-*-solaris2*) host_makefile_frag="config/mh-sysv4" ;; - i[[3456]]86-*-msdosdjgpp*) + i[[3456789]]86-*-msdosdjgpp*) host_makefile_frag="config/mh-djgpp" ;; *-cygwin*) @@ -1142,124 +898,6 @@ case "${host}" in esac fi -extra_arflags_for_target= -extra_nmflags_for_target= -extra_ranlibflags_for_target= -target_makefile_frag=/dev/null -case "${target}" in - i[[3456]]86-*-netware*) - target_makefile_frag="config/mt-netware" - ;; - powerpc-*-netware*) - target_makefile_frag="config/mt-netware" - ;; - *-*-linux*) - target_makefile_frag="config/mt-linux" - ;; - *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*) - # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm - # commands to handle both 32-bit and 64-bit objects. These flags are - # harmless if we're using GNU nm or ar. - extra_arflags_for_target=" -X32_64" - extra_nmflags_for_target=" -B -X32_64" - ;; - *-*-darwin*) - # ranlib from Darwin requires the -c flag to look at common symbols. - extra_ranlibflags_for_target=" -c" - ;; - mips*-*-pe | sh*-*-pe | *arm-wince-pe) - target_makefile_frag="config/mt-wince" - ;; -esac - -alphaieee_frag=/dev/null -case $target in - alpha*-*-*) - # This just makes sure to use the -mieee option to build target libs. - # This should probably be set individually by each library. - alphaieee_frag="config/mt-alphaieee" - ;; -esac - -# If --enable-target-optspace always use -Os instead of -O2 to build -# the target libraries, similarly if it is not specified, use -Os -# on selected platforms. -ospace_frag=/dev/null -case "${enable_target_optspace}:${target}" in - yes:*) - ospace_frag="config/mt-ospace" - ;; - :d30v-*) - ospace_frag="config/mt-d30v" - ;; - :m32r-* | :d10v-* | :fr30-*) - ospace_frag="config/mt-ospace" - ;; - no:* | :*) - ;; - *) - echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2 - ;; -esac - -# Set with_gnu_as and with_gnu_ld as appropriate. -# -# This is done by determining whether or not the appropriate directory -# is available, and by checking whether or not specific configurations -# have requested that this magic not happen. -# -# The command line options always override the explicit settings in -# configure.in, and the settings in configure.in override this magic. -# -# If the default for a toolchain is to use GNU as and ld, and you don't -# want to do that, then you should use the --without-gnu-as and -# --without-gnu-ld options for the configure script. - -if test x${use_gnu_as} = x && - echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then - with_gnu_as=yes - extra_host_args="$extra_host_args --with-gnu-as" -fi - -if test x${use_gnu_ld} = x && - echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then - with_gnu_ld=yes - extra_host_args="$extra_host_args --with-gnu-ld" -fi - -# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure -# can detect this case. - -if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then - with_newlib=yes - extra_host_args="$extra_host_args --with-newlib" -fi - - -# Default to using --with-stabs for certain targets. -if test x${with_stabs} = x ; then - case "${target}" in - mips*-*-irix6*o32) - with_stabs=yes; - extra_host_args="${extra_host_args} --with-stabs" - ;; - mips*-*-irix6*) - ;; - mips*-*-* | alpha*-*-osf*) - with_stabs=yes; - extra_host_args="${extra_host_args} --with-stabs" - ;; - 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 - # 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. @@ -1279,68 +917,6 @@ if test -z "${CC}" && test "${build}" = "${host}" ; then fi fi -# 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_alias} -build_tooldir=${tooldir} - -# Generate a default definition for YACC. This is used if the makefile can't -# locate bison or byacc in objdir. - -for prog in 'bison -y' byacc yacc -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_YACC="$prog" - break - fi - done - IFS="$save_ifs" - - 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. - -for prog in flex lex -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_LEX="$prog" - break - fi - done - IFS="$save_ifs" - - test -n "$DEFAULT_LEX" && break -done - if test "${build}" != "${host}" ; then # If we are doing a Canadian Cross, in which the host and build systems # are not the same, we set reasonable default values for the tools. @@ -1468,73 +1044,465 @@ EOF fi fi - # We must set the default linker to the linker used by gcc for the correct - # operation of libtool. If LD is not defined and we are using gcc, try to - # set the LD default to the ld used by gcc. - if test -z "$LD"; then - if test "$cc_prog_is_gcc" = yes; then - case $build in - *-*-mingw*) - gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; - *) - gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; - esac - case $gcc_prog_ld in - # Accept absolute paths. - [[\\/]* | [A-Za-z]:[\\/]*)] - LD="$gcc_prog_ld" ;; - esac + # We must set the default linker to the linker used by gcc for the correct + # operation of libtool. If LD is not defined and we are using gcc, try to + # set the LD default to the ld used by gcc. + if test -z "$LD"; then + if test "$cc_prog_is_gcc" = yes; then + case $build in + *-*-mingw*) + gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; + *) + gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; + esac + case $gcc_prog_ld in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + LD="$gcc_prog_ld" ;; + esac + fi + fi + + CXX=${CXX-"c++"} + CFLAGS=${CFLAGS-"-g"} + CXXFLAGS=${CXXFLAGS-"-g -O2"} +fi + +ACX_PROG_GNAT + +# By default, C is the only stage 1 language. +stage1_languages=c +AC_SUBST(stage1_languages) + +# Figure out what language subdirectories are present. +# Look if the user specified --enable-languages="..."; if not, use +# the environment variable $LANGUAGES if defined. $LANGUAGES might +# go away some day. +# NB: embedded tabs in this IF block -- do not untabify +if test -d ${srcdir}/gcc; then + if test x"${enable_languages+set}" != xset; then + if test x"${LANGUAGES+set}" = xset; then + enable_languages="${LANGUAGES}" + echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 + else + enable_languages=all + fi + else + if test x"${enable_languages}" = x || + test x"${enable_languages}" = xyes; + then + echo configure.in: --enable-languages needs at least one language argument 1>&2 + exit 1 + fi + fi + enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'` + + # 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. + for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do + case ${lang_frag} in + ..) ;; + # The odd quoting in the next line works around + # an apparent bug in bash 1.12 on linux. + ${srcdir}/gcc/[[*]]/config-lang.in) ;; + *) + # From the config-lang.in, get $language, $lang_requires + language= + lang_requires= + . ${lang_frag} + for other in ${lang_requires} ; do + case ,${enable_languages}, in + *,$other,*) ;; + *,all,*) ;; + *,$language,*) + echo " \`$other' language required by \`$language'; enabling" 1>&2 + enable_languages="${enable_languages},${other}" + ;; + esac + done + ;; + esac + done + + new_enable_languages=c + missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ ` + + for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do + case ${lang_frag} in + ..) ;; + # The odd quoting in the next line works around + # an apparent bug in bash 1.12 on linux. + ${srcdir}/gcc/[[*]]/config-lang.in) ;; + *) + # From the config-lang.in, get $language, $target_libs, + # $lang_dirs, $boot_language, and $build_by_default + language= + target_libs= + lang_dirs= + boot_language= + build_by_default= + . ${lang_frag} + # This is quite sensitive to the ordering of the case statement arms. + case ,${enable_languages},:${language}:${have_gnat}:${build_by_default} in + *::*:*) + echo "${lang_frag} doesn't set \$language." 1>&2 + exit 1 + ;; + *:ada:no:*) + # Ada was requested with no preexisting GNAT. Disable unconditionally. + add_this_lang=no + ;; + *,${language},*:*:*:*) + # Language was explicitly selected; include it. + add_this_lang=yes + ;; + *,all,*:*:*:no) + # 'all' was selected, but this is not a default language + # so do not include it. + add_this_lang=no + ;; + *,all,*:*:*:*) + # 'all' was selected and this is a default language; include it. + add_this_lang=yes + ;; + *) + add_this_lang=no + ;; + esac + case $add_this_lang in + no) + # Remove language-dependent dirs. + eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\" + ;; + *) + new_enable_languages="$new_enable_languages,$language" + missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"` + case ${boot_language} in + yes) + # Add to (comma-separated) list of stage 1 languages. + stage1_languages="${stage1_languages},${language}" + ;; + esac + ;; + esac + ;; + esac + done + + 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}]) + fi + + if test "x$new_enable_languages" != "x$enable_languages"; then + echo The following languages will be built: ${new_enable_languages} + fi + enable_languages="$new_enable_languages" + 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. +# 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` + 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 + 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 + if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then + true + else + notsupp="$notsupp $dir" + fi + fi + 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. +if test -n "${target_configdirs}" ; then + others= + for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do + if test "$i" != "libiberty" ; then + if test -r $srcdir/$i/configure ; then + others=yes; + break; + fi + fi + done + if test -z "${others}" ; then + target_configdirs= + 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. +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 +# supported by the one or two programs in a package. + +if test -n "${notsupp}" && test -z "${norecursion}" ; then + # If $appdirs is non-empty, at least one of those directories must still + # be configured, or we error out. (E.g., if the gas release supports a + # specified target in some subdirs but not the gas subdir, we shouldn't + # pretend that all is well.) + if test -n "$appdirs" ; then + for dir in $appdirs ; do + if test -r $dir/Makefile.in ; then + if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + appdirs="" + break + fi + if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + appdirs="" + break + fi + fi + done + if test -n "$appdirs" ; then + echo "*** This configuration is not supported by this package." 1>&2 + exit 1 + fi + fi + # Okay, some application will build, or we don't care to check. Still + # notify of subdirs not getting built. + echo "*** This configuration is not supported in the following subdirectories:" 1>&2 + echo " ${notsupp}" 1>&2 + echo " (Any other directories should still work fine.)" 1>&2 +fi + +case "$host" in + *msdosdjgpp*) + enable_gdbtk=no ;; +esac + +copy_dirs= + +# 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 + if test x${is_cross_compiler} = xno ; then + echo 1>&2 '***' --with-headers is only supported when cross compiling + exit 1 + fi + if test x"${with_headers}" != xyes ; then + case "${exec_prefixoption}" in + "") x=${prefix} ;; + *) x=${exec_prefix} ;; + esac + copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include" + fi +fi + +# Handle --with-libs=XXX. If the value is not "yes", the contents of +# the name directories are copied to $(tooldir)/lib. Multiple directories +# are permitted. +if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then + if test x${is_cross_compiler} = xno ; then + echo 1>&2 '***' --with-libs is only supported when cross compiling + exit 1 + fi + if test x"${with_libs}" != xyes ; then + # Copy the libraries in reverse order, so that files in the first named + # library override files in subsequent libraries. + case "${exec_prefixoption}" in + "") x=${prefix} ;; + *) x=${exec_prefix} ;; + esac + for l in ${with_libs}; do + copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}" + done + fi +fi + +# Handle ${copy_dirs} +set fnord ${copy_dirs} +shift +while test $# != 0 ; do + if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then + : + else + echo Copying $1 to $2 + + # Use the install script to create the directory and all required + # parent directories. + if test -d $2 ; then + : + else + echo >config.temp + ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED fi + + # Copy the directory, assuming we have tar. + # FIXME: Should we use B in the second tar? Not all systems support it. + (cd $1; tar -cf - .) | (cd $2; tar -xpf -) + + # It is the responsibility of the user to correctly adjust all + # symlinks. If somebody can figure out how to handle them correctly + # here, feel free to add the code. + + echo $1 > $2/COPIED fi + shift; shift +done - CXX=${CXX-"c++"} - CFLAGS=${CFLAGS-"-g"} - CXXFLAGS=${CXXFLAGS-"-g -O2"} +extra_arflags_for_target= +extra_nmflags_for_target= +extra_ranlibflags_for_target= +target_makefile_frag=/dev/null +case "${target}" in + i[[3456789]]86-*-netware*) + target_makefile_frag="config/mt-netware" + ;; + powerpc-*-netware*) + target_makefile_frag="config/mt-netware" + ;; + *-*-linux*) + target_makefile_frag="config/mt-linux" + ;; + *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*) + # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm + # commands to handle both 32-bit and 64-bit objects. These flags are + # harmless if we're using GNU nm or ar. + extra_arflags_for_target=" -X32_64" + extra_nmflags_for_target=" -B -X32_64" + ;; + *-*-darwin*) + # ranlib from Darwin requires the -c flag to look at common symbols. + extra_ranlibflags_for_target=" -c" + ;; + mips*-*-pe | sh*-*-pe | *arm-wince-pe) + target_makefile_frag="config/mt-wince" + ;; +esac + +alphaieee_frag=/dev/null +case $target in + alpha*-*-*) + # This just makes sure to use the -mieee option to build target libs. + # This should probably be set individually by each library. + alphaieee_frag="config/mt-alphaieee" + ;; +esac + +# If --enable-target-optspace always use -Os instead of -O2 to build +# the target libraries, similarly if it is not specified, use -Os +# on selected platforms. +ospace_frag=/dev/null +case "${enable_target_optspace}:${target}" in + yes:*) + ospace_frag="config/mt-ospace" + ;; + :d30v-*) + ospace_frag="config/mt-d30v" + ;; + :m32r-* | :d10v-* | :fr30-*) + ospace_frag="config/mt-ospace" + ;; + no:* | :*) + ;; + *) + echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2 + ;; +esac + +# Set with_gnu_as and with_gnu_ld as appropriate. +# +# This is done by determining whether or not the appropriate directory +# is available, and by checking whether or not specific configurations +# have requested that this magic not happen. +# +# The command line options always override the explicit settings in +# configure.in, and the settings in configure.in override this magic. +# +# If the default for a toolchain is to use GNU as and ld, and you don't +# want to do that, then you should use the --without-gnu-as and +# --without-gnu-ld options for the configure script. + +if test x${use_gnu_as} = x && + echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then + with_gnu_as=yes + extra_host_args="$extra_host_args --with-gnu-as" +fi + +if test x${use_gnu_ld} = x && + echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then + with_gnu_ld=yes + extra_host_args="$extra_host_args --with-gnu-ld" fi -# FIXME Should this be done recursively ??? (Useful for e.g. gdbtest) -# Set up the list of links to be made. -# ${links} is the list of link names, and ${files} is the list of names to link to. +# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure +# can detect this case. -# Make the links. -configlinks="${links}" -if test -r ./config.status ; then - mv -f ./config.status ./config.back +if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then + with_newlib=yes + extra_host_args="$extra_host_args --with-newlib" fi -while test -n "${files}" ; do - # set file to car of files, files to cdr of files - set ${files}; file=$1; shift; files=$* - set ${links}; link=$1; shift; links=$* - - if test ! -r ${srcdir}/${file} ; then - if test ! -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} ${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} ${srcfile} ${link} - fi - if test ! -r ${link} ; then - echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2 - exit 1 - fi - echo "Linked \"${link}\" to \"${srcfile}\"." -done +# Default to using --with-stabs for certain targets. +if test x${with_stabs} = x ; then + case "${target}" in + mips*-*-irix[[56]]*) + ;; + mips*-*-* | alpha*-*-osf*) + with_stabs=yes; + extra_host_args="${extra_host_args} --with-stabs" + ;; + 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_alias} +build_tooldir=${tooldir} + +# Generate default definitions for YACC, M4, LEX. These are used if the +# Makefile can't locate these programs in objdir. +MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing +AC_CHECK_PROGS([DEFAULT_YACC], ['bison -y' byacc yacc], [$MISSING bison]) +AC_CHECK_PROGS([DEFAULT_M4], [gm4 gnum4 m4], [$MISSING m4]) +AC_CHECK_PROGS([DEFAULT_LEX], [flex lex], [$MISSING flex]) # Create a .gdbinit file which runs the one in srcdir # and tells GDB to look there for source files. @@ -1552,12 +1520,6 @@ EOF esac fi -# record if we want runtime library stuff installed in libsubdir. -# Blank means no. -if test -z "${enable_version_specific_runtime_libs}"; then - enable_version_specific_runtime_libs=no -fi - # Make sure that the compiler is able to generate an executable. If it # can't, we are probably in trouble. We don't care whether we can run the # executable--we might be using a cross compiler--we only care whether it @@ -1625,59 +1587,14 @@ esac target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` # This is the final value for target_configdirs. configdirs already -# has its final value. It's time to create some lists of valid targets. - -# While at that, we remove Makefiles if we were started for recursive -# configuration, such that the top-level Makefile reconfigures them, -# like we used to do when configure itself was recursive. +# has its final value, as does build_modules. It's time to create some +# lists of valid targets. all_build_modules= configure_build_modules= -# Only make build modules if build != host. -# This should be done more generally, but at the moment it doesn't matter. -if test ${host_alias} != ${build_alias} ; then - for module in libiberty ; do - all_build_modules=all-build-${module} - configure_build_modules=configure-build-${module} - if test -z "${no_recursion}" \ - && test -f ${build_subdir}/${module}/Makefile; then - echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure" - rm -f ${build_subdir}/${module}/Makefile - fi - done -fi - -all_host_modules= -check_host_modules= -install_host_modules= -configure_host_modules= -for module in ${configdirs} ; do - all_host_modules="${all_host_modules} all-${module}" - check_host_modules="${check_host_modules} check-${module}" - install_host_modules="${install_host_modules} install-${module}" - configure_host_modules="${configure_host_modules} configure-${module}" - if test -z "${no_recursion}" \ - && test -f ${module}/Makefile; then - echo 1>&2 "*** removing ${module}/Makefile to force reconfigure" - rm -f ${module}/Makefile - fi -done -install_host_modules_nogcc=`echo "${install_host_modules}" | sed -e 's/install-gcc//g'` - -all_target_modules= -check_target_modules= -install_target_modules= -configure_target_modules= -for module in ${target_configdirs} ; do - all_target_modules="${all_target_modules} all-target-${module}" - check_target_modules="${check_target_modules} check-target-${module}" - install_target_modules="${install_target_modules} install-target-${module}" - configure_target_modules="${configure_target_modules} configure-target-${module}" - if test -z "${no_recursion}" \ - && test -f ${target_subdir}/${module}/Makefile; then - echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure" - rm -f ${target_subdir}/${module}/Makefile - fi +for module in ${build_modules} ; do + all_build_modules=all-build-${module} + configure_build_modules=configure-build-${module} done # Determine whether gdb needs tk/tcl or not. @@ -1707,13 +1624,50 @@ case "$enable_gdbtk" in esac # Create the 'maybe dependencies'. This uses a temporary file. + +# While at that, we remove Makefiles if we were started for recursive +# configuration, so that the top-level Makefile reconfigures them, +# like we used to do when configure itself was recursive. rm -f maybedep.tmp echo '# maybedep.tmp' > maybedep.tmp -for item in ${all_build_modules} ${all_host_modules} ${all_target_modules} \ - ${install_host_modules} ${install_target_modules} \ - ${configure_build_modules} ${configure_host_modules} ${configure_target_modules} \ - ; do - echo "maybe-${item}: ${item}" >> maybedep.tmp + +# Make-targets which may need maybe dependencies. +mts="configure all install check clean distclean dvi info install-info" +mts="${mts} installcheck mostlyclean maintainer-clean TAGS" + +# Loop over modules and make-targets. +for module in ${build_modules} ; do + if test -z "${no_recursion}" \ + && test -f ${build_subdir}/${module}/Makefile; then + echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure" + rm -f ${build_subdir}/${module}/Makefile + fi + for mt in ${mts} ; do + case ${mt} in + install) ;; # No installing build modules. + *) echo "maybe-${mt}-build-${module}: ${mt}-build-${module}" >> maybedep.tmp ;; + esac + done +done +for module in ${configdirs} ; do + if test -z "${no_recursion}" \ + && test -f ${module}/Makefile; then + echo 1>&2 "*** removing ${module}/Makefile to force reconfigure" + rm -f ${module}/Makefile + fi + for mt in ${mts} ; do + echo "maybe-${mt}-${module}: ${mt}-${module}" >> maybedep.tmp + done +done +for module in ${target_configdirs} ; do + if test -z "${no_recursion}" \ + && test -f ${target_subdir}/${module}/Makefile; then + echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure" + rm -f ${target_subdir}/${module}/Makefile + fi + for mt in ${mts} ; do + echo "maybe-${mt}-target-${module}: ${mt}-target-${module}" >> maybedep.tmp + done done maybe_dependencies=maybedep.tmp AC_SUBST_FILE(maybe_dependencies) @@ -1721,18 +1675,25 @@ AC_SUBST_FILE(maybe_dependencies) # Create the serialization dependencies. This uses a temporary file. AC_ARG_ENABLE([serial-configure], -[ --disable-serial-[{host,target,build}-]configure - Don't force sequential configuration of +[ --enable-serial-[{host,target,build}-]configure + Force sequential configuration of sub-packages for the host, target or build - machine, or of any sub-packages at all]) + machine, or all sub-packages]) + +case ${enable_serial_configure} in + yes) + enable_serial_build_configure=yes + enable_serial_host_configure=yes + enable_serial_target_configure=yes + ;; +esac # These force 'configure's to be done one at a time, to avoid problems # with contention over a shared config.cache. rm -f serdep.tmp echo '# serdep.tmp' > serdep.tmp olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_build_configure}" = xno || +test "x${enable_serial_build_configure}" = xyes && for item in ${build_configdirs} ; do case ${olditem} in "") ;; @@ -1741,8 +1702,7 @@ for item in ${build_configdirs} ; do olditem=${item} done olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_host_configure}" = xno || +test "x${enable_serial_host_configure}" = xyes && for item in ${configdirs} ; do case ${olditem} in "") ;; @@ -1751,8 +1711,7 @@ for item in ${configdirs} ; do olditem=${item} done olditem= -test "x${enable_serial_configure}" = xno || -test "x${enable_serial_target_configure}" = xno || +test "x${enable_serial_target_configure}" = xyes && for item in ${target_configdirs} ; do case ${olditem} in "") ;; @@ -1765,21 +1724,53 @@ AC_SUBST_FILE(serialization_dependencies) # Base args. Strip norecursion, cache-file, srcdir, host, build, # target and nonopt. These are the ones we might not want to pass -# down to subconfigures. -baseargs=`echo " ${ac_configure_args} " | \ - sed -e 's/ --no[[^ ]]* / /' \ - -e 's/ --c[[a-z-]]*[[= ]][[^ ]]* / /' \ - -e 's/ --sr[[a-z-]]*[[= ]][[^ ]]* / /' \ - -e 's/ --ho[[a-z-]]*[[= ]][[^ ]]* / /' \ - -e 's/ --bu[[a-z-]]*[[= ]][[^ ]]* / /' \ - -e 's/ --t[[a-z-]]*[[= ]][[^ ]]* / /' \ - -e 's/ -cache-file[[= ]][[^ ]]* / /' \ - -e 's/ -srcdir[[= ]][[^ ]]* / /' \ - -e 's/ -host[[= ]][[^ ]]* / /' \ - -e 's/ -build[[= ]][[^ ]]* / /' \ - -e 's/ -target[[= ]][[^ ]]* / /' \ - -e 's/ [[^ -][^ ]*] / /' \ - -e 's/^ *//;s/ *$//'` +# down to subconfigures. Also strip program-prefix, program-suffix, +# and program-transform-name, so that we can pass down a consistent +# program-transform-name. If autoconf has put single quotes around +# any of these arguments (because they contain shell metacharacters) +# then this will fail; in practice this only happens for +# --program-transform-name, so be sure to override --program-transform-name +# at the end of the argument list. +# These will be expanded by make, so quote '$'. +cat <<\EOF_SED > conftestsed +s/ --no[[^ ]]* / / +s/ --c[[a-z-]]*[[= ]][[^ ]]* / / +s/ --sr[[a-z-]]*[[= ]][[^ ]]* / / +s/ --ho[[a-z-]]*[[= ]][[^ ]]* / / +s/ --bu[[a-z-]]*[[= ]][[^ ]]* / / +s/ --t[[a-z-]]*[[= ]][[^ ]]* / / +s/ --program-[[pst]][[a-z-]]*[[= ]][[^ ]]* / / +s/ -cache-file[[= ]][[^ ]]* / / +s/ -srcdir[[= ]][[^ ]]* / / +s/ -host[[= ]][[^ ]]* / / +s/ -build[[= ]][[^ ]]* / / +s/ -target[[= ]][[^ ]]* / / +s/ -program-prefix[[= ]][[^ ]]* / / +s/ -program-suffix[[= ]][[^ ]]* / / +s/ -program-transform-name[[= ]][[^ ]]* / / +s/ [[^' -][^ ]*] / / +s/^ *//;s/ *$// +s,\$,$$,g +EOF_SED +sed -f conftestsed < conftestsed.out + ${ac_configure_args} +EOF_SED +baseargs=`cat conftestsed.out` +rm -f conftestsed conftestsed.out + +# Add in --program-transform-name, after --program-prefix and +# --program-suffix have been applied to it. Autoconf has already +# doubled dollar signs and backslashes in program_transform_name; we want +# the backslashes un-doubled, and then the entire thing wrapped in single +# quotes, because this will be expanded first by make and then by the shell. +# Also, because we want to override the logic in subdir configure scripts to +# choose program_transform_name, replace any s,x,x, with s,y,y,. +sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" < conftestsed.out +${program_transform_name} +EOF_SED +gcc_transform_name=`cat conftestsed.out` +rm -f conftestsed.out +baseargs="$baseargs --program-transform-name='${gcc_transform_name}'" # 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 @@ -1796,7 +1787,9 @@ case "${cache_file}" in cache_file_option="--cache-file=../${cache_file}" ;; esac -host_configargs="${cache_file_option} --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}" +# Host dirs don't like to share a cache file either, horribly enough. +# This seems to be due to autoconf 2.5x stupidity. +host_configargs="--cache-file=./config.cache --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}" target_configargs=${baseargs} @@ -1820,37 +1813,35 @@ if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib target_configargs="--with-newlib ${target_configargs}" fi +# Different target subdirs use different values of certain variables +# (notably CXX). Worse, multilibs use *lots* of different values. +# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that +# it doesn't automatically accept command-line overrides of them. +# This means it's not safe for target subdirs to share a cache file, +# which is disgusting, but there you have it. Hopefully this can be +# 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}" +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. -gxx_include_dir= -if test -n "${with_gxx_include_dir}"; then - case "${with_gxx_include_dir}" in - yes ) - echo "configure.in: 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 - gxx_include_dir='${libsubdir}/include/c++' - else - . ${srcdir}/config.if - gxx_include_dir='${prefix}/include/${libstdcxx_incdir}' - fi -else - gxx_include_dir=${gxx_include_dir} -fi +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 FLAGS_FOR_TARGET= case " $target_configdirs " in @@ -1859,7 +1850,7 @@ case " $target_configdirs " in *" --with-newlib "*) case "$target" in *-cygwin*) - FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include -isystem $$s/newlib/libc/sys/cygwin -isystem $$s/newlib/libc/sys/cygwin32' ;; + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include' ;; esac # If we're not building GCC, don't discard standard headers. @@ -1886,7 +1877,7 @@ case " $target_configdirs " in fi case "${target}-${is_cross_compiler}" in - i[[3456]]86-*-linux*-no) + i[[3456789]]86-*-linux*-no) # Here host == target, so we don't need to build gcc, # so we don't want to discard standard headers. FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'` @@ -1903,13 +1894,17 @@ case " $target_configdirs " in ;; esac +# Allow the user to override the flags for +# our build compiler if desired. +CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}} + # On Canadian crosses, we'll be searching the right directories for # the previously-installed cross compiler, so don't bother to add # flags for directories within the install tree of the compiler # being built; programs in there won't even run. if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then # Search for pre-installed headers if nothing else fits. - FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include' + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include' fi if test "x${use_gnu_ld}" = x && @@ -1941,11 +1936,13 @@ fi GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' # Don't use libstdc++-v3's flags to configure/build itself. -libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' -raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +raw_libstdcxx_flags='-L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' if test "x${CXX_FOR_TARGET+set}" = xset; then - : + if test "x${RAW_CXX_FOR_TARGET+set}" != xset; then + RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} + fi elif test -d ${srcdir}/gcc; then # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead # of g++ for linking C++ or Java, because g++ has -shared-libgcc by @@ -1999,8 +1996,6 @@ AC_SUBST(SET_LIB_PATH) AC_SUBST(RPATH_ENVVAR) AC_SUBST(BUILD_PREFIX) AC_SUBST(BUILD_PREFIX_1) -AC_SUBST(configlinks) -AC_SUBST(enable_version_specific_runtime_libs) AC_SUBST(gcc_version_trigger) AC_SUBST(gcc_version) AC_SUBST(tooldir) @@ -2010,7 +2005,6 @@ AC_SUBST(gxx_include_dir) AC_SUBST(libstdcxx_incdir) # Build module lists & subconfigure args. -AC_SUBST(build_subdir) AC_SUBST(build_configargs) AC_SUBST(configure_build_modules) AC_SUBST(all_build_modules) @@ -2018,20 +2012,10 @@ AC_SUBST(all_build_modules) # Host module lists & subconfigure args. AC_SUBST(host_configargs) AC_SUBST(configdirs) -AC_SUBST(configure_host_modules) -AC_SUBST(all_host_modules) -AC_SUBST(check_host_modules) -AC_SUBST(install_host_modules) -AC_SUBST(install_host_modules_nogcc) # Target module lists & subconfigure args. -AC_SUBST(target_subdir) AC_SUBST(target_configargs) AC_SUBST(target_configdirs) -AC_SUBST(configure_target_modules) -AC_SUBST(all_target_modules) -AC_SUBST(check_target_modules) -AC_SUBST(install_target_modules) # Build tools. AC_SUBST(BISON) @@ -2054,6 +2038,7 @@ NCN_STRICT_CHECK_TOOL(OBJDUMP, objdump) AC_SUBST(CC) AC_SUBST(CXX) AC_SUBST(CFLAGS) +AC_SUBST(CFLAGS_FOR_BUILD) AC_SUBST(CXXFLAGS) AC_SUBST(DEFAULT_YACC) AC_SUBST(DEFAULT_LEX) @@ -2117,4 +2102,37 @@ fi MAINT=$MAINTAINER_MODE_TRUE AC_SUBST(MAINT)dnl +# --------------------- +# GCC bootstrap support +# --------------------- + +# Stage specific cflags for build. +stage1_cflags="-g" +case $build in + vax-*-*) + case ${GCC} in + yes) stage1_cflags="-g -Wa,-J" ;; + *) stage1_cflags="-g -J" ;; + esac ;; + powerpc-*-darwin*) + # The spiffy cpp-precomp chokes on some legitimate constructs in GCC + # sources; use -no-cpp-precomp to get to GNU cpp. + # Apple's GCC has bugs in designated initializer handling, so disable + # that too. + stage1_cflags="-g -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0" + ;; +esac +AC_SUBST(stage1_cflags) + +# Enable -Werror in bootstrap stage2 and later. +# Change the default to "no" on release branches. +AC_ARG_ENABLE(werror, +[ --enable-werror enable -Werror in bootstrap stage2 and later], [], +[enable_werror=yes]) +case ${enable_werror} in + yes) stage2_werror_flag="--enable-werror-always" ;; + *) stage2_werror_flag="" ;; +esac +AC_SUBST(stage2_werror_flag) + AC_OUTPUT(Makefile)