X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=configure.in;h=8712586b3a5d61a1ff954161ce816da17607ac43;hb=bd21e58e631f4320cd48921034fdcabfdbd1c943;hp=648bf01d29a229d07415ea93065c865edff9a72d;hpb=f5f8a794b8120e7c220d2e28c4dec679347d099a;p=deliverable%2Fbinutils-gdb.git diff --git a/configure.in b/configure.in index 648bf01d29..8712586b3a 100644 --- a/configure.in +++ b/configure.in @@ -18,6 +18,8 @@ ############################################################################## ### WARNING: this file contains embedded tabs. Do not run untabify on this file. +sinclude(config/acx.m4) + AC_INIT(move-if-change) AC_PREREQ(2.13) AC_CANONICAL_SYSTEM @@ -25,10 +27,9 @@ AC_ARG_PROGRAM # Get 'install' or 'install-sh' and its variants. AC_PROG_INSTALL +ACX_PROG_LN AC_PROG_LN_S -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 ### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure @@ -79,10 +80,17 @@ AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS) moveifchange=${srcdir}/move-if-change +srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` + +# We pass INSTALL explicitly to sub-makes. Make sure that it is not +# a relative path. +if test "$INSTALL" = "${srcdir}/install-sh -c"; then + INSTALL="${srcpwd}/install-sh -c" +fi + # Set srcdir to "." if that's what it is. # This is important for multilib support. pwd=`${PWDCMD-pwd}` -srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` if test "${pwd}" = "${srcpwd}" ; then srcdir=. fi @@ -125,9 +133,17 @@ fi # Double entries in build_configdirs, configdirs, or target_configdirs may # cause circular dependencies and break everything horribly. +# these library is used by various programs built for the build +# environment +# +build_libs="build-libiberty" + +# these tools are built for the build environment +build_tools="build-texinfo build-byacc build-flex build-bison build-m4 build-fixincludes" + # these libraries are used by various programs built for the host environment # -host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl tix libgui zlib libbanshee libcpp" +host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -172,19 +188,9 @@ target_tools="target-examples target-groff target-gperf target-rda" ## is important because configure will choke if they ever get through. ## ${configdirs} is directories we build using the host tools. ## ${target_configdirs} is directories we build using the target tools. -# configdirs=`echo ${host_libs} ${host_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 - +build_configdirs=`echo ${build_libs} ${build_tools}` ################################################################################ @@ -229,7 +235,7 @@ fi case ${with_x} in yes | "") ;; # the default value for this tree is that X11 is available no) - skipdirs="${skipdirs} tk tix itcl libgui" + skipdirs="${skipdirs} tk itcl libgui" # We won't be able to build gdbtk without X. enable_gdbtk=no ;; @@ -251,8 +257,8 @@ esac # If both --with-headers and --with-libs are specified, default to # --without-newlib. -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_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 @@ -280,17 +286,17 @@ case "${host}" in noconfigdirs="$noconfigdirs byacc" ;; 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" + noconfigdirs="$noconfigdirs tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl gnuserv gettext" ;; i[[3456789]]86-*-go32* | i[[3456789]]86-*-msdosdjgpp*) - noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl tix gnuserv libffi" + noconfigdirs="$noconfigdirs tcl tk expect dejagnu send-pr uudecode guile itcl 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="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl gnuserv" noconfigdirs="$noconfigdirs expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool" ;; i[[3456789]]86-*-beos*) - noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" + noconfigdirs="$noconfigdirs tk itcl libgui gdb" ;; *-*-cygwin*) noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl" @@ -299,27 +305,16 @@ case "${host}" in noconfigdirs="$noconfigdirs rcs" ;; ppc*-*-pe) - noconfigdirs="$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 gnuserv" ;; powerpc-*-beos*) - noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline" + noconfigdirs="$noconfigdirs tk itcl libgui gdb dejagnu readline" ;; *-*-darwin*) - noconfigdirs="$noconfigdirs tk itcl tix libgui" + noconfigdirs="$noconfigdirs tk itcl libgui" ;; esac -AC_ARG_WITH(libbanshee, -[ --without-libbanshee Don't build with libbanshee]) -case ${with_libbanshee} in - no) - noconfigdirs="$noconfigdirs libbanshee" ;; - yes|"") - with_libbanshee=yes - ;; - *) - AC_MSG_ERROR([--with-libbanshee can only be empty, "yes" or "no" (empty defaults to "yes".]) -esac AC_ARG_ENABLE(libada, [ --enable-libada Builds libada directory], @@ -348,12 +343,24 @@ esac # Allow --disable-libmudflap to exclude target-libmudflap case $enable_libmudflap in -yes | "") - # By default it's enabled +yes) ;; no) noconfigdirs="$noconfigdirs target-libmudflap" ;; +"") + case "${target}" in + *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu) + # Enable libmudflap by default in GNU and friends. + ;; + *-*-freebsd*) + # Enable libmudflap by default in FreeBSD. + ;; + *) + # Disable it by default everywhere else. + noconfigdirs="$noconfigdirs target-libmudflap" + ;; + esac esac @@ -363,16 +370,15 @@ case "${target}" in ;; 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}" + noconfigdirs="$noconfigdirs ${libgcj}" ;; *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; - *-*-freebsd* | *-*-kfreebsd*-gnu) + *-*-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 @@ -408,8 +414,8 @@ case "${target}" in ;; esac ;; - *-*-netware) - noconfigdirs="$noconfigdirs target-libstdc++-v3 target-newlib target-libiberty target-libgloss ${libgcj}" + *-*-netware*) + noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss ${libgcj} target-libmudflap" ;; *-*-rtems*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" @@ -427,7 +433,7 @@ case "${target}" in noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss" ;; alpha*-*-*vms*) - noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss build-fixincludes ${libgcj}" ;; alpha*-*-linux*) # newlib is not 64 bit ready @@ -447,7 +453,7 @@ case "${target}" in noconfigdirs="$noconfigdirs ${libgcj}" noconfigdirs="$noconfigdirs target-examples" noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr" - noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim" + noconfigdirs="$noconfigdirs tcl tk itcl libgui sim" noconfigdirs="$noconfigdirs expect dejagnu" # the C++ libraries don't build on top of CE's C libraries noconfigdirs="$noconfigdirs target-libstdc++-v3" @@ -461,12 +467,18 @@ case "${target}" in arc-*-*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; + arm-semi-aof ) + noconfigdirs="$noconfigdirs build-fixincludes" + ;; arm-*-coff | strongarm-*-coff | xscale-*-coff) noconfigdirs="$noconfigdirs ${libgcj}" ;; - arm-*-elf* | strongarm-*-elf* | xscale-*-elf*) + arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* ) noconfigdirs="$noconfigdirs target-libffi target-qthreads" ;; + arm*-*-symbianelf*) + noconfigdirs="$noconfigdirs ${libgcj} target-libiberty" + ;; arm-*-pe*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; @@ -489,7 +501,7 @@ case "${target}" in noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" ;; avr-*-*) - noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" + noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 build-fixincludes ${libgcj}" ;; c4x-*-* | tic4x-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" @@ -500,6 +512,9 @@ case "${target}" in cris-*-*) noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" ;; + crx-*-*) + noconfigdirs="$noconfigdirs target-libstdc++-v3 target-mudflap ${libgcj}" + ;; d10v-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" ;; @@ -518,6 +533,9 @@ case "${target}" in h8500-*-*) noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" ;; + hppa1.1-*-osf* | hppa1.1-*-bsd* ) + noconfigdirs="$noconfigdirs build-fixincludes" + ;; 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 @@ -542,11 +560,14 @@ case "${target}" in ;; ia64*-*-elf*) # No gdb support yet. - noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb" + noconfigdirs="$noconfigdirs readline mmalloc libgui itcl gdb" ;; ia64*-**-hpux*) # No gdb or ld support yet. - noconfigdirs="$noconfigdirs ${libgcj} tix readline mmalloc libgui itcl gdb ld" + noconfigdirs="$noconfigdirs ${libgcj} readline mmalloc libgui itcl gdb ld" + ;; + i370-*-opened*) + noconfigdirs="$noconfigdirs build-fixincludes" ;; i[[3456789]]86-*-coff | i[[3456789]]86-*-elf) noconfigdirs="$noconfigdirs ${libgcj}" @@ -572,30 +593,38 @@ case "${target}" in ;; i[[3456789]]86-*-mingw32*) target_configdirs="$target_configdirs target-mingw" - noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj} build-fixincludes" # Can't build gdb for mingw32 if not native. case "${host}" in i[[3456789]]86-*-mingw32) ;; # keep gdb tcl tk expect etc. - *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix gnuserv" + *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl gnuserv" ;; esac ;; *-*-cygwin*) target_configdirs="$target_configdirs target-libtermcap target-winsup" - noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}" - # always build newlib. - skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` + noconfigdirs="$noconfigdirs target-gperf target-libgloss build-fixincludes ${libgcj}" + # always build newlib if winsup directory is present. + if test -d "$srcdir/winsup"; then + skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` + elif test -d "$srcdir/newlib"; then + echo "Warning: winsup is missing so newlib can't be built." + fi # Can't build gdb for Cygwin if not native. case "${host}" in *-*-cygwin*) ;; # keep gdb tcl tk expect etc. - *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui gnuserv" + *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl libgui gnuserv" ;; esac ;; + i[[3456789]]86-moss-msdos | i[[3456789]]86-*-moss* | \ + i[[3456789]]86-*-uwin* | i[[3456789]]86-*-interix* ) + noconfigdirs="$noconfigdirs build-fixincludes" + ;; i[[3456789]]86-*-pe) - noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-libstdc++-v3 target-libgloss ${libgcj} build-fixincludes" ;; i[[3456789]]86-*-sco3.2v5*) # The linker does not yet know about weak symbols in COFF, @@ -646,19 +675,22 @@ case "${target}" in ;; powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe) target_configdirs="$target_configdirs target-winsup" - noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix gnuserv ${libgcj}" + noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl gnuserv ${libgcj}" # always build newlib. skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;; # This is temporary until we can link against shared libraries powerpcle-*-solaris*) - noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix gnuserv ${libgcj}" + noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl gnuserv ${libgcj}" ;; powerpc-*-beos*) noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; powerpc-*-eabi) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} build-fixincludes" + ;; + powerpc-*-eabi* | powerpcle-*-eabi* | powerpc-*-rtems* ) + noconfigdirs="$noconfigdirs build-fixincludes" ;; rs6000-*-lynxos*) noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}" @@ -758,7 +790,7 @@ case "${target}" in ip2k-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" ;; - *-*-linux*) + *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; *-*-lynxos*) @@ -917,6 +949,9 @@ case "${host}" in tentative_cc="/usr/cygnus/progressive/bin/gcc" host_makefile_frag="config/mh-lynxrs6k" ;; + powerpc-*-darwin*) + host_makefile_frag="config/mh-ppc-darwin" + ;; *-*-lynxos*) # /bin/cc is less than useful for our purposes. Always use GCC tentative_cc="/bin/gcc" @@ -924,6 +959,11 @@ case "${host}" in *-*-sysv4*) host_makefile_frag="config/mh-sysv4" ;; + # This is placed last to prevent interfering with the cases above. + i[[3456789]]86-*-*) + # Build the stage2 and stage3 compilers with -fomit-frame-pointer. + host_makefile_frag="config/mh-x86omitfp" + ;; esac fi @@ -950,7 +990,6 @@ 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. - BISON=${BISON-bison} CC=${CC-${host_alias}-gcc} CFLAGS=${CFLAGS-"-g -O2"} CXX=${CXX-${host_alias}-c++} @@ -962,47 +1001,6 @@ if test "${build}" != "${host}" ; then GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}} BUILD_PREFIX=${build_alias}- BUILD_PREFIX_1=${build_alias}- - MAKEINFO=${MAKEINFO-makeinfo} - - if test -z "${YACC}" ; then - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/bison; then - YACC="bison -y" - break - fi - if test -f $dir/byacc; then - YACC=byacc - break - fi - if test -f $dir/yacc; then - YACC=yacc - break - fi - done - IFS="$save_ifs" - if test -z "${YACC}" ; then - YACC="bison -y" - fi - fi - - if test -z "${LEX}" ; then - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/flex; then - LEX=flex - break - fi - if test -f $dir/lex; then - LEX=lex - break - fi - done - IFS="$save_ifs" - LEX=${LEX-flex} - fi else # Set reasonable default values for some tools even if not Canadian. @@ -1013,71 +1011,18 @@ else # in Makefile.in, so can still be overridden by fragments. # This is all going to change when we autoconfiscate... - BISON="\$(USUAL_BISON)" CC_FOR_BUILD="\$(CC)" GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)" BUILD_PREFIX= BUILD_PREFIX_1=loser- - MAKEINFO="\$(USUAL_MAKEINFO)" - LEX="\$(USUAL_LEX)" - YACC="\$(USUAL_YACC)" - - # If CC is still not set, try to get gcc. - cc_prog_is_gcc= - if test -z "${CC}" ; then - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/gcc; then - CC="gcc" - cc_prog_is_gcc=yes - echo 'void f(){}' > conftest.c - if test -z "`${CC} -g -c conftest.c 2>&1`"; then - CFLAGS=${CFLAGS-"-g -O2"} - CXXFLAGS=${CXXFLAGS-"-g -O2"} - else - CFLAGS=${CFLAGS-"-O2"} - CXXFLAGS=${CXXFLAGS-"-O2"} - fi - rm -f conftest* - break - fi - done - IFS="$save_ifs" - CC=${CC-cc} - else - # Determine if we are using gcc. - cat > conftest.c </dev/null 2>&1; then - cc_prog_is_gcc=yes - fi - rm -f conftest.c - if test -z "${CFLAGS}"; then - # Here CC is set but CFLAGS is not. Use a quick hack to use -O2 if CC - # is set to a version of gcc. - if test "$cc_prog_is_gcc" = yes; then - echo 'void f(){}' > conftest.c - if test -z "`${CC} -g -c conftest.c 2>&1`"; then - CFLAGS=${CFLAGS-"-g -O2"} - CXXFLAGS=${CXXFLAGS-"-g -O2"} - else - CFLAGS=${CFLAGS-"-O2"} - CXXFLAGS=${CXXFLAGS-"-O2"} - fi - rm -f conftest* - fi - fi - fi + + AC_PROG_CC # 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 + if test "$GCC" = yes; then case $build in *-*-mingw*) gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; @@ -1100,33 +1045,48 @@ fi ACX_PROG_GNAT ACX_PROG_CMP_IGNORE_INITIAL -# Check for GMP +# Check for GMP and MPFR gmplibs= gmpinc= have_gmp=yes +# Specify a location for mpfr +# check for this first so it ends up on the link line before gmp. +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" + gmplibs="$with_mpfr_dir/libmpfr.a" +else + gmplibs="-lmpfr" +fi + +AC_ARG_WITH(mpfr, [ --with-mpfr=PATH Specify directory for installed MPFR library]) + +if test "x$with_mpfr" != x; then + gmplibs="-L$with_mpfr/lib $gmplibs" + gmpinc="-I$with_mpfr/include" +fi + # Specify a location for gmp AC_ARG_WITH(gmp-dir, [ --with-gmp-dir=PATH Specify source directory for GMP library]) -if test "x$with_gmp_dir" != x && test -f "$with_gmp_dir/gmp.h"; then - gmpinc="-I$with_gmp_dir" +if test "x$with_gmp_dir" != x; then + gmpinc="$gmpinc -I$with_gmp_dir" if test -f "$with_gmp_dir/.libs/libgmp.a"; then - gmplibs="$with_gmp_dir/.libs/libgmp.a" + gmplibs="$gmplibs $with_gmp_dir/.libs/libgmp.a" elif test -f "$with_gmp_dir/_libs/libgmp.a"; then - gmplibs="$with_gmp_dir/_libs/libgmp.a" + gmplibs="$gmplibs $with_gmp_dir/_libs/libgmp.a" fi # One of the later tests will catch the error if neither library is present. +else + gmplibs="$gmplibs -lgmp" fi AC_ARG_WITH(gmp, [ --with-gmp=PATH Specify directory for installed GMP library]) -if test "x$with_gmp" != x && test -d "$with_gmp"; then - gmplibs="-L$with_gmp/lib -lgmp" - gmpinc="-I$with_gmp/include" -fi - -# Use system gmp if nothing else specified -if test "x$gmplibs" = x; then - gmplibs="-lgmp" +if test "x$with_gmp" != x; then + gmplibs="-L$with_gmp/lib $gmplibs" + gmpinc="-I$with_gmp/include $gmpinc" fi saved_CFLAGS="$CFLAGS" @@ -1141,16 +1101,18 @@ choke me [AC_MSG_RESULT([no]); have_gmp=no]) if test x"$have_gmp" = xyes; then - AC_MSG_CHECKING([for mpf_init in -lgmp]) + AC_MSG_CHECKING([for MPFR]) saved_LIBS="$LIBS" LIBS="$LIBS $gmplibs" - AC_TRY_LINK([#include ], [mpf_t n; mpf_init(n);], + AC_TRY_LINK([#include +#include ], [mpfr_t n; mpfr_init(n);], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no]) LIBS="$saved_LIBS" CFLAGS="$saved_CFLAGS" fi +# Flags needed for both GMP and/or MPFR AC_SUBST(gmplibs) AC_SUBST(gmpinc) @@ -1211,6 +1173,7 @@ if test -d ${srcdir}/gcc; then new_enable_languages=c missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ ` + potential_languages=c for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do case ${lang_frag} in @@ -1226,14 +1189,15 @@ if test -d ${srcdir}/gcc; then lang_dirs= boot_language= build_by_default= - need_gmp= + need_gmp= . ${lang_frag} + potential_languages="${potential_languages},${language}" # 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 @@ -1244,9 +1208,9 @@ if test -d ${srcdir}/gcc; then ;; *,all,*:*:*:no) # 'all' was selected, but this is not a default language - # so do not include it. + # 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 @@ -1256,10 +1220,17 @@ if test -d ${srcdir}/gcc; then ;; esac - # Disable language that need GMP if it isn't available. - if test x"$need_gmp" = xyes && test x"$have_gmp" = xno; then - add_this_lang=no - fi + # Disable languages that need GMP if it isn't available. + case ,${enable_languages},:${have_gmp}:${need_gmp} in + *,${language},*:no:yes) + # Specifically requested language; tell them. + AC_MSG_ERROR([GMP with MPFR support is required to build $language]) + ;; + *:no:yes) + # Silently disable. + add_this_lang=no + ;; + esac case $add_this_lang in no) @@ -1284,7 +1255,8 @@ if test -d ${srcdir}/gcc; then 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 following requested languages were not found: ${missing_languages} +The available languages are: ${potential_languages}]) fi if test "x$new_enable_languages" != "x$enable_languages"; then @@ -1294,13 +1266,13 @@ The following requested languages were not found: ${missing_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. +# 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 @@ -1311,6 +1283,16 @@ for dir in . $skipdirs $noconfigdirs ; do 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 @@ -1343,6 +1325,15 @@ 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. +build_configdirs_all="$build_configdirs" +build_configdirs= +for i in ${build_configdirs_all} ; do + j=`echo $i | sed -e s/build-//g` + if test -f ${srcdir}/$j/configure ; then + build_configdirs="${build_configdirs} $i" + fi +done + configdirs_all="$configdirs" configdirs= for i in ${configdirs_all} ; do @@ -1350,6 +1341,7 @@ for i in ${configdirs_all} ; do configdirs="${configdirs} $i" fi done + target_configdirs_all="$target_configdirs" target_configdirs= for i in ${target_configdirs_all} ; do @@ -1376,7 +1368,7 @@ if test -n "${notsupp}" && test -z "${norecursion}" ; then appdirs="" break fi - if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then appdirs="" break fi @@ -1474,14 +1466,11 @@ extra_nmflags_for_target= extra_ranlibflags_for_target= target_makefile_frag=/dev/null case "${target}" in - i[[3456789]]86-*-netware*) + *-*-netware*) target_makefile_frag="config/mt-netware" ;; - powerpc-*-netware*) - target_makefile_frag="config/mt-netware" - ;; - *-*-linux*) - target_makefile_frag="config/mt-linux" + *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu) + target_makefile_frag="config/mt-gnu" ;; *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*) # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm @@ -1562,10 +1551,6 @@ if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target- extra_host_args="$extra_host_args --with-newlib" fi -if test x${with_libbanshee} = xyes && echo " ${configdirs} " | grep " libbanshee " >/dev/null 2>&1; then - extra_host_args="$extra_host_args --with-libbanshee" -fi - # Default to using --with-stabs for certain targets. if test x${with_stabs} = x ; then case "${target}" in @@ -1591,12 +1576,16 @@ esac 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. +# Generate default definitions for YACC, M4, LEX and other programs that run +# on the build machine. 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]) +AC_CHECK_PROGS([CONFIGURED_BISON], [bison], [$MISSING bison]) +AC_CHECK_PROGS([CONFIGURED_YACC], ['bison -y' byacc yacc], [$MISSING bison -y]) +AC_CHECK_PROGS([CONFIGURED_M4], [gm4 gnum4 m4], [$MISSING m4]) +AC_CHECK_PROGS([CONFIGURED_FLEX], [flex], [$MISSING flex]) +AC_CHECK_PROGS([CONFIGURED_LEX], [flex lex], [$MISSING flex]) +AC_CHECK_PROGS([CONFIGURED_MAKEINFO], makeinfo, [$MISSING makeinfo]) # Create a .gdbinit file which runs the one in srcdir # and tells GDB to look there for source files. @@ -1679,17 +1668,7 @@ esac # Record target_configdirs and the configure arguments for target and # build configuration in Makefile. target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` - -# This is the final value for target_configdirs. configdirs already -# has its final value, as does build_modules. It's time to create some -# lists of valid targets. - -all_build_modules= -configure_build_modules= -for module in ${build_modules} ; do - all_build_modules=all-build-${module} - configure_build_modules=configure-build-${module} -done +build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'` # Determine whether gdb needs tk/tcl or not. # Use 'maybe' since enable_gdbtk might be true even if tk isn't available @@ -1699,7 +1678,7 @@ done # leave out the maybe dependencies when enable_gdbtk is false. I'm not # 100% sure that that's safe though. -gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui" +gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui" case "$enable_gdbtk" in no) GDB_TK="" ;; @@ -1730,7 +1709,66 @@ esac # to maintain later. In this particular case, you just have to be careful # not to nest @if/@endif pairs, because configure will not warn you at all. -for module in ${build_modules} ; do +AC_ARG_ENABLE([bootstrap], +[ --enable-bootstrap[=lean] Enable bootstrapping [no]],, +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. (We'll) enable bootstrap if we have a compiler + # and we are in a native configuration. + yes:$build:$build:default) + # This will become 'yes' + enable_bootstrap=no ;; + + *:*:*:default) + enable_bootstrap=no ;; + + # We have a compiler and we are in a native configuration, bootstrap is ok + yes:$build:$build:yes | yes:$build:$build:lean) + ;; + + # Other configurations, but we have a compiler. Assume the user knows + # what he's doing. + yes:*:*:yes | yes:*:*:lean) + AC_MSG_WARN([trying to bootstrap a cross compiler]) + ;; + + # No compiler: if they passed --enable-bootstrap explicitly, fail + no:*:*:yes | no:*:*:lean) + AC_MSG_ERROR([cannot bootstrap without a compiler]) ;; + + # Fail if wrong command line + *) + AC_MSG_ERROR([invalid option for --enable-bootstrap]) + ;; +esac + +# Adjust the toplevel makefile according to whether bootstrap was selected. +case "$enable_bootstrap" in + yes) + bootstrap_lean='#' + default_target=bootstrap + bootstrap_suffix=bootstrap ;; + lean) + bootstrap_lean='' + default_target=bootstrap + bootstrap_suffix=bootstrap ;; + no) + default_target=all + bootstrap_suffix=no-bootstrap ;; +esac +AC_SUBST(bootstrap_lean) +AC_SUBST(default_target) + +for module in ${build_configdirs} ; do if test -z "${no_recursion}" \ && test -f ${build_subdir}/${module}/Makefile; then echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure" @@ -1738,7 +1776,9 @@ for module in ${build_modules} ; do fi extrasub="$extrasub /^@if build-$module\$/d -/^@endif build-$module\$/d" +/^@endif build-$module\$/d +/^@if build-$module-$bootstrap_suffix\$/d +/^@endif build-$module-$bootstrap_suffix\$/d" done for module in ${configdirs} ; do if test -z "${no_recursion}" \ @@ -1748,7 +1788,9 @@ for module in ${configdirs} ; do fi extrasub="$extrasub /^@if $module\$/d -/^@endif $module\$/d" +/^@endif $module\$/d +/^@if $module-$bootstrap_suffix\$/d +/^@endif $module-$bootstrap_suffix\$/d" done for module in ${target_configdirs} ; do if test -z "${no_recursion}" \ @@ -1758,38 +1800,11 @@ for module in ${target_configdirs} ; do fi extrasub="$extrasub /^@if target-$module\$/d -/^@endif target-$module\$/d" +/^@endif target-$module\$/d +/^@if target-$module-$bootstrap_suffix\$/d +/^@endif target-$module-$bootstrap_suffix\$/d" done -AC_ARG_ENABLE([bootstrap], -[ --enable-bootstrap Enable bootstrapping [no]],, -enable_bootstrap=no) -if test -d ${srcdir}/gcc; then - case "$host:$target:$enable_bootstrap" in - $build:$build:yes | *:no) ;; - *:yes) AC_MSG_ERROR([cannot bootstrap a cross-compiler]) ;; - *) AC_MSG_ERROR([invalid option for --enable-bootstrap]) ;; - esac -else - if test $enable_bootstrap = yes; then - AC_MSG_ERROR([cannot bootstrap without a compiler]) - fi -fi - -case "$enable_bootstrap" in - yes) - default_target=bootstrap - extrasub="$extrasub -/^@if gcc-bootstrap\$/d -/^@endif gcc-bootstrap\$/d" ;; - no) - default_target=all - extrasub="$extrasub -/^@if gcc-no-bootstrap\$/d -/^@endif gcc-no-bootstrap\$/d" ;; -esac -AC_SUBST(default_target) - extrasub="$extrasub /^@if /,/^@endif /d" @@ -2118,10 +2133,13 @@ CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}" RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}" # Makefile fragments. -host_makefile_frag=${srcdir}/${host_makefile_frag} -target_makefile_frag=${srcdir}/${target_makefile_frag} -alphaieee_frag=${srcdir}/${alphaieee_frag} -ospace_frag=${srcdir}/${ospace_frag} +for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag; +do + eval fragval=\$$frag + if test $fragval != /dev/null; then + eval $frag=${srcdir}/$fragval + fi +done AC_SUBST_FILE(host_makefile_frag) AC_SUBST_FILE(target_makefile_frag) AC_SUBST_FILE(alphaieee_frag) @@ -2142,8 +2160,7 @@ AC_SUBST(libstdcxx_incdir) # Build module lists & subconfigure args. AC_SUBST(build_configargs) -AC_SUBST(configure_build_modules) -AC_SUBST(all_build_modules) +AC_SUBST(build_configdirs) # Host module lists & subconfigure args. AC_SUBST(host_configargs) @@ -2154,11 +2171,7 @@ AC_SUBST(target_configargs) AC_SUBST(target_configdirs) # Build tools. -AC_SUBST(BISON) AC_SUBST(CC_FOR_BUILD) -AC_SUBST(LEX) -AC_SUBST(MAKEINFO) -AC_SUBST(YACC) AC_SUBST(config_shell) # Host tools. @@ -2176,9 +2189,6 @@ AC_SUBST(CXX) AC_SUBST(CFLAGS) AC_SUBST(CFLAGS_FOR_BUILD) AC_SUBST(CXXFLAGS) -AC_SUBST(DEFAULT_YACC) -AC_SUBST(DEFAULT_LEX) -AC_SUBST(DEFAULT_M4) # Target tools. NCN_STRICT_CHECK_TARGET_TOOL(CONFIGURED_AR_FOR_TARGET, ar) @@ -2279,7 +2289,7 @@ esac AC_SUBST(stage1_cflags) # It makes debugging easier if we create as symlinks the stage directories -# gcc for stageN-gcc and stage-prev for stage(N-1). In case this is not +# gcc for stageN-gcc and stagePREV-gcc for stage(N-1). In case this is not # possible, however, we can resort to mv. AC_CACHE_CHECK([if symbolic links between directories work], [gcc_cv_prog_ln_s_dir], @@ -2319,4 +2329,24 @@ case ${enable_werror} in 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)