X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=configure.in;h=4fd42ed246c129fad7348a4987df17a48fa0a96f;hb=ec38ce9947b8f46296c1cc1704f5f7f672ed93bd;hp=f1382eefaa6ea86777a2c4d95c05f091bf30236e;hpb=2af579c444e59c2559329e1b48bb43a1f1ca2eff;p=deliverable%2Fbinutils-gdb.git diff --git a/configure.in b/configure.in index f1382eefaa..4fd42ed246 100644 --- a/configure.in +++ b/configure.in @@ -1,21 +1,5 @@ -#! /bin/bash -############################################################################## - -## This file is a shell script fragment that supplies the information -## necessary to tailor a template configure script into the configure -## script appropriate for this directory. For more information, check -## any existing configure script. - -## Be warned, there are two types of configure.in files. There are those -## used by Autoconf, which are macros which are expanded into a configure -## script by autoconf. The other sort, of which this is one, is executed -## by Cygnus configure. - -## For more information on these two systems, check out the documentation -## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi). - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +# 1999, 2000, 2001, 2002, 2003 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 @@ -32,29 +16,107 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################## +### WARNING: this file contains embedded tabs. Do not run untabify on this file. + +AC_INIT(move-if-change) +AC_PREREQ(2.13) +AC_CANONICAL_SYSTEM +AC_ARG_PROGRAM + +sinclude(config/acx.m4) + +# clear some things potentially inherited from environment. + +enable_threads=no +enable_shared=no +enable_libstdcxx_v3=yes +floating_point=default +gas=default +x11=default + +### 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 +### without also having to set CONFIG_SHELL. This code will work when +### using bash, which sets OSTYPE. +case "${OSTYPE}" in +*win32*) + if test x${CONFIG_SHELL} = x ; then + if test ! -f /bin/sh ; then + if test x${SHELL} != x && test -f ${SHELL} ; then + CONFIG_SHELL=${SHELL} + export CONFIG_SHELL + else + for prog in sh sh.exe bash bash.exe; do + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/$prog; then + CONFIG_SHELL=$dir/$prog + export CONFIG_SHELL + break + fi + done + IFS="$save_ifs" + test -n "${CONFIG_SHELL}" && break + done + fi + fi + fi + ;; +esac + +config_shell=${CONFIG_SHELL-/bin/sh} + +## this is a little touchy and won't always work, but... +## +## if the argv[[0]] starts with a slash then it is an absolute name that can (and +## must) be used as is. +## +## otherwise, if argv[[0]] has no slash in it, we can assume that it is on the +## path. Since PATH might include "." we also add `pwd` to the end of PATH. +## + +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 $@" +AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS) + +moveifchange=${srcdir}/move-if-change + +# 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 + +topsrcdir=$srcpwd extra_host_args= # Define the trigger file to make sure configure will re-run whenever # the gcc version number changes. -if [ "${with_gcc_version_trigger+set}" = set ]; then - gcc_version_trigger="$with_gcc_version_trigger" - gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'` +if test "${with_gcc_version_trigger+set}" = set ; then + gcc_version_trigger="$with_gcc_version_trigger" + gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'` else - # If gcc's sources are available, define the trigger file. - if [ -f ${topsrcdir}/gcc/version.c ] ; then - gcc_version_trigger=${topsrcdir}/gcc/version.c - gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'` - case "$arguments" in - *--with-gcc-version-trigger=$gcc_version_trigger* ) - ;; - * ) - # Add to all subconfigure arguments: build, host, and target. - arguments="--with-gcc-version-trigger=$gcc_version_trigger $arguments" - ;; - esac - # This will be redundant when we start all subconfigures from the Makefile. - extra_host_args="--with-gcc-version-trigger=$gcc_version_trigger $extra_host_args" - fi + # If gcc's sources are available, define the trigger file. + if test -f ${topsrcdir}/gcc/version.c ; then + gcc_version_trigger=${topsrcdir}/gcc/version.c + gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'` + case "$ac_configure_args" in + *--with-gcc-version-trigger=$gcc_version_trigger* ) + ;; + * ) + # Add to all subconfigure arguments: build, host, and target. + ac_configure_args="$ac_configure_args --with-gcc-version-trigger=$gcc_version_trigger" + ;; + esac + fi fi ### To add a new directory to the tree, first choose whether it is a target @@ -73,7 +135,7 @@ fi # these libraries are used by various programs built for the host environment # -host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk tclX itcl tix libgui zlib" +host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk itcl tix libgui zlib" libstdcxx_version="target-libstdc++-v3" @@ -99,7 +161,7 @@ target_libs="target-libiberty \ target-newlib \ ${libstdcxx_version} \ target-libf2c \ - ${libgcj} + ${libgcj} \ target-libobjc" # these tools are built using the target libs, and are intended to run only @@ -124,18 +186,11 @@ target_configdirs=`echo ${target_libs} ${target_tools}` ################################################################################ -srctrigger=move-if-change srcname="gnu development package" # This gets set non-empty for some net releases of packages. appdirs="" -# per-host: - -# There is no longer anything interesting in the per-host section. - -# per-target: - # Define is_cross_compiler to save on calls to 'test'. is_cross_compiler= if test x"${host}" = x"${target}" ; then @@ -156,7 +211,8 @@ if test ! -d ${target_subdir} ; then fi fi -build_subdir=${build_alias} +build_prefix=build- +build_subdir=${build_prefix}${build_alias} if test x"${build_alias}" != x"${host}" ; then if test ! -d ${build_subdir} ; then @@ -242,17 +298,17 @@ case "${host}" in hppa*64*-*-*) noconfigdirs="$noconfigdirs byacc" ;; - i[3456]86-*-vsta) + i[[3456]]86-*-vsta) noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv gettext" ;; - i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*) + i[[3456]]86-*-go32* | i[[3456]]86-*-msdosdjgpp*) noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile itcl tix db snavigator gnuserv libffi" ;; - i[3456]86-*-mingw32*) + i[[3456]]86-*-mingw32*) # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv" noconfigdirs="expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool" ;; - i[3456]86-*-beos*) + i[[3456]]86-*-beos*) noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" ;; *-*-cygwin*) @@ -292,7 +348,7 @@ case "${target}" in *-*-chorusos) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; - *-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*) + *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; *-*-netbsd*) @@ -447,13 +503,13 @@ case "${target}" in # No gdb or ld support yet. noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld" ;; - i[3456]86-*-coff | i[3456]86-*-elf) + i[[3456]]86-*-coff | i[[3456]]86-*-elf) noconfigdirs="$noconfigdirs ${libgcj}" ;; - i[34567]86-*-freebsd*) + i[[34567]]86-*-freebsd*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; - i[3456]86-*-linux*) + i[[3456]]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 @@ -472,13 +528,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[[3456]]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[[3456]]86-*-mingw32) ;; # keep gdb tcl tk expect etc. *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv" ;; esac @@ -496,24 +552,24 @@ case "${target}" in ;; esac ;; - i[3456]86-*-pe) + i[[3456]]86-*-pe) noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}" ;; - i[3456]86-*-sco3.2v5*) + i[[3456]]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[[3456]]86-*-sco*) noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" ;; - i[3456]86-*-solaris2*) + i[[3456]]86-*-solaris2*) noconfigdirs="$noconfigdirs target-libgloss" ;; - i[3456]86-*-sysv4*) + i[[3456]]86-*-sysv4*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; - i[3456]86-*-beos*) + i[[3456]]86-*-beos*) noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) @@ -531,7 +587,7 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libstdc++-v3" ;; mmix-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss" ;; mn10200-*-*) noconfigdirs="$noconfigdirs ${libgcj}" @@ -584,12 +640,11 @@ case "${target}" in noconfigdirs="$noconfigdirs ld gprof target-libgloss ${libgcj}" ;; mips*-*-irix6*) - # The GNU assembler does not support IRIX 6. # Linking libjava exceeds command-line length limits on at least # IRIX 6.2, but not on IRIX 6.5. # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham # - noconfigdirs="$noconfigdirs gas gprof target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" ;; mips*-dec-bsd*) noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" @@ -611,9 +666,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[[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 *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;; esac noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" @@ -699,7 +754,7 @@ else exit 1 fi fi -enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/,$//'` +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 @@ -711,11 +766,11 @@ do ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. - ${srcdir}/gcc/[*]/config-lang.in) + ${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` + 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 @@ -740,12 +795,12 @@ do ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. - ${srcdir}/gcc/[*]/config-lang.in) ;; + ${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` + 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 @@ -812,20 +867,6 @@ if test -n "${target_configdirs}" ; then fi fi -# Deconfigure all subdirectories, in case we are changing the -# configuration from one where a subdirectory is supported to one where it -# is not. -if test -z "${norecursion}" && test -n "${configdirs}" ; then - for i in `echo ${configdirs} | sed -e s/target-//g` ; do - rm -f $i/Makefile - done -fi -if test -z "${norecursion}" && test -n "${target_configdirs}" ; then - for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do - rm -f ${target_subdir}/$i/Makefile - done -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. @@ -957,16 +998,18 @@ done # Work in distributions that contain no compiler tools, like Autoconf. tentative_cc="" +host_makefile_frag=/dev/null if test -d ${srcdir}/config ; then case "${host}" in m68k-hp-hpux*) # Avoid "too much defining" errors from HPUX compiler. tentative_cc="cc -Wp,-H256000" - host_makefile_frag="config/mh-hp300" + # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding. + # If it's HP/UX ar, this should be harmless. + RANLIB="ar ts" ;; m68k-apollo-sysv*) tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG" - host_makefile_frag="config/mh-apollo68" ;; m68k-apollo-bsd*) #None of the Apollo compilers can compile gas or binutils. The preprocessor @@ -975,8 +1018,8 @@ case "${host}" in # the apollo compiler" (the preferred version of GCC could be called cc, # or whatever), but I'm not sure leaving CC as cc is any better... #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG + # Used to have BISON=yacc. tentative_cc=gcc - host_makefile_frag="config/mh-a68bsd" ;; m88k-dg-dgux*) tentative_cc="gcc -Wall -ansi -D__using_DGUX" @@ -988,7 +1031,6 @@ case "${host}" in host_makefile_frag="config/mh-cxux" ;; m88k-motorola-sysv*) - host_makefile_frag="config/mh-delta88" ;; mips*-dec-ultrix*) tentative_cc="cc -Wf,-XNg1000" @@ -999,21 +1041,12 @@ case "${host}" in tentative_cc="cc -ZXNd=5000 -ZXNg=1000" host_makefile_frag="config/mh-necv4" ;; - mips*-sgi-irix6*) - host_makefile_frag="config/mh-irix6" - ;; - mips*-sgi-irix5*) - host_makefile_frag="config/mh-irix5" - ;; mips*-sgi-irix4*) # Tell compiler to use K&R C. We can't compile under the SGI Ansi # environment. Also bump switch table size so that cp-parse will # compile. Bump string length limit so linker builds. tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192" ;; - mips*-sgi-irix3*) - host_makefile_frag="config/mh-sysv" - ;; mips*-*-sysv4*) host_makefile_frag="config/mh-sysv4" ;; @@ -1031,26 +1064,23 @@ case "${host}" in # This is not part of CFLAGS because perhaps not all C compilers have this # option. tentative_cc="cc -systype sysv" - host_makefile_frag="config/mh-riscos" ;; i370-ibm-opened*) tentative_cc="c89" - host_makefile_frag="config/mh-openedition" ;; - i[3456]86-*-sysv5*) + i[[3456]]86-*-sysv5*) host_makefile_frag="config/mh-sysv5" ;; - i[3456]86-*-dgux*) + i[[3456]]86-*-dgux*) tentative_cc="gcc -Wall -ansi -D__using_DGUX" host_makefile_frag="config/mh-dgux386" ;; - i[3456]86-ncr-sysv4.3*) + i[[3456]]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" - host_makefile_frag="config/mh-ncrsvr43" ;; - i[3456]86-ncr-sysv4*) + i[[3456]]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 @@ -1059,28 +1089,21 @@ case "${host}" in tentative_cc="/usr/ccs/ATT/cc" host_makefile_frag="config/mh-ncr3000" ;; - i[3456]86-*-sco3.2v5*) - host_makefile_frag="config/mh-sysv" + i[[3456]]86-*-sco3.2v5*) ;; - i[3456]86-*-sco*) + i[[3456]]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[[3456]]86-*-udk*) host_makefile_frag="config/mh-sysv5" ;; - i[3456]86-*-isc*) - host_makefile_frag="config/mh-sysv" - ;; - i[3456]86-*-solaris2*) + i[[3456]]86-*-solaris2*) host_makefile_frag="config/mh-sysv4" ;; - i[3456]86-*-aix*) - host_makefile_frag="config/mh-aix386" - ;; - i[3456]86-*-msdosdjgpp*) + i[[3456]]86-*-msdosdjgpp*) host_makefile_frag="config/mh-djgpp" ;; *-cygwin*) @@ -1104,17 +1127,11 @@ case "${host}" in # without overflowing the jump tables (-J says to use a 32 bit table) tentative_cc="cc -J" ;; - *-hp-hpux[78]*) - tentative_cc="cc -Wp,-H256000" - host_makefile_frag="config/mh-hpux8" - ;; *-hp-hpux*) tentative_cc="cc -Wp,-H256000" - host_makefile_frag="config/mh-hpux" ;; *-*-hiux*) tentative_cc="cc -Wp,-H256000" - host_makefile_frag="config/mh-hpux" ;; rs6000-*-lynxos*) # /bin/cc is less than useful for our purposes. Always use GCC @@ -1128,25 +1145,15 @@ case "${host}" in *-*-sysv4*) host_makefile_frag="config/mh-sysv4" ;; - *-*-sysv*) - host_makefile_frag="config/mh-sysv" - ;; esac fi -rm -f mh-frag -if test -n "${host_makefile_frag}" ; then - for f in ${host_makefile_frag} - do - cat ${srcdir}/$f >> mh-frag - done - host_makefile_frag=mh-frag -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*) + i[[3456]]86-*-netware*) target_makefile_frag="config/mt-netware" ;; powerpc-*-netware*) @@ -1155,19 +1162,23 @@ case "${target}" in *-*-linux*) target_makefile_frag="config/mt-linux" ;; - *-*-aix4.[3456789]* | *-*-aix[56789].*) + *-*-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= +alphaieee_frag=/dev/null case $target in alpha*-*-*) # This just makes sure to use the -mieee option to build target libs. @@ -1179,7 +1190,7 @@ 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= +ospace_frag=/dev/null case "${enable_target_optspace}:${target}" in yes:*) ospace_frag="config/mt-ospace" @@ -1197,15 +1208,6 @@ case "${enable_target_optspace}:${target}" in ;; esac -rm -f mt-frag -if test -n "${target_makefile_frag}${alphaieee_frag}${ospace_frag}" ; then - for f in ${target_makefile_frag} ${alphaieee_frag} ${ospace_frag} - do - cat ${srcdir}/$f >> mt-frag - done - target_makefile_frag=mt-frag -fi - # Set with_gnu_as and with_gnu_ld as appropriate. # # This is done by determining whether or not the appropriate directory @@ -1282,9 +1284,6 @@ case "${host}" in ;; esac -# This will go away when we start subconfigures from the Makefile. -withoptions="${withoptions} ${extra_host_args}" - # 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. @@ -1304,7 +1303,284 @@ if test -z "${CC}" && test "${build}" = "${host}" ; then fi fi -# post-target: +# 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. + + BISON=${BISON-bison} + CC=${CC-${host_alias}-gcc} + CFLAGS=${CFLAGS-"-g -O2"} + CXX=${CXX-${host_alias}-c++} + CXXFLAGS=${CXXFLAGS-"-g -O2"} + CC_FOR_BUILD=${CC_FOR_BUILD-gcc} + CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc} + CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++} + GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj} + 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. + # Of course, these are different reasonable default values, originally + # specified directly in the Makefile. + # We don't export, so that autoconf can do its job. + # Note that all these settings are above the fragment inclusion point + # 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 + + # 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 + +# 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. + +# Make the links. +configlinks="${links}" +if test -r ./config.status ; then + mv -f ./config.status ./config.back +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 + +# Create a .gdbinit file which runs the one in srcdir +# and tells GDB to look there for source files. + +if test -r ${srcdir}/.gdbinit ; then + case ${srcdir} in + .) ;; + *) cat > ./.gdbinit < Makefile.tem -rm -f Makefile -mv -f Makefile.tem Makefile case "${host}" in *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; esac -sed -e "s/@RPATH_ENVVAR@/${RPATH_ENVVAR}/" Makefile > Makefile.tem -rm -f Makefile -mv -f Makefile.tem Makefile # Record target_configdirs and the configure arguments for target and # build configuration in Makefile. @@ -1383,13 +1653,24 @@ 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. + 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 - all_build_modules=all-build-libiberty - configure_build_modules=configure-build-libiberty + 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= @@ -1401,6 +1682,11 @@ for module in ${configdirs} ; do 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'` @@ -1413,6 +1699,11 @@ for module in ${target_configdirs} ; do 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 done # Determine whether gdb needs tk/tcl or not. @@ -1422,90 +1713,118 @@ done # so we should be able to put the 'maybe's in unconditionally and # 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" case "$enable_gdbtk" in no) GDB_TK="" ;; + yes) + GDB_TK="${gdb_tk}" ;; *) - GDB_TK="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui" ;; + # Only add the dependency on gdbtk when GDBtk is part of the gdb + # distro. Eventually someone will fix this and move Insight, nee + # gdbtk to a separate directory. + if test -d ${srcdir}/gdb/gdbtk ; then + GDB_TK="${gdb_tk}" + else + GDB_TK="" + fi + ;; esac # Create the 'maybe dependencies'. This uses a temporary file. 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 done -sed -e '/@maybe_dependencies@/r maybedep.tmp' \ - -e 's/@maybe_dependencies@//' Makefile > Makefile.tem -rm -f Makefile -mv -f Makefile.tem Makefile -rm -f maybedep.tmp +maybe_dependencies=maybedep.tmp +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 + sub-packages for the host, target or build + machine, or of any sub-packages at all]) + # 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 || for item in ${build_configdirs} ; do case ${olditem} in "") ;; - *) echo "\$(BUILD_SUBDIR)/${item}/Makefile: \$(BUILD_SUBDIR)/${olditem}/Makefile" >> serdep.tmp ;; + *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;; esac olditem=${item} done olditem= +test "x${enable_serial_configure}" = xno || +test "x${enable_serial_host_configure}" = xno || for item in ${configdirs} ; do case ${olditem} in "") ;; - *) echo "${item}/Makefile: ${olditem}/Makefile" >> serdep.tmp ;; + *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;; esac olditem=${item} done olditem= +test "x${enable_serial_configure}" = xno || +test "x${enable_serial_target_configure}" = xno || for item in ${target_configdirs} ; do case ${olditem} in "") ;; - *) echo "\$(TARGET_SUBDIR)/${item}/Makefile: \$(TARGET_SUBDIR)/${olditem}/Makefile" >> serdep.tmp ;; + *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;; esac olditem=${item} done -sed -e '/@serialization_dependencies@/r serdep.tmp' \ - -e 's/@serialization_dependencies@//' Makefile > Makefile.tem -rm -f Makefile -mv -f Makefile.tem Makefile -rm -f serdep.tmp - -# Base args. Strip norecursion, cache-file, srcdir, host, build, target. -# These are the ones we might not want to pass down to subconfigures. -baseargs=`echo "${arguments}" | \ - sed -e 's/--no[^ ]*//' \ - -e 's/--cache[a-z-]*=[^ ]*//' \ - -e 's/--sr[a-z-]*=[^ ]*//' \ - -e 's/--ho[a-z-]*=[^ ]*//' \ - -e 's/--bu[a-z-]*=[^ ]*//' \ - -e 's/--ta[a-z-]*=[^ ]*//'` +serialization_dependencies=serdep.tmp +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/ *$//'` # For the build-side libraries, we just need to pretend we're native, # and not use the same cache file. Multilibs are neither needed nor # desired. -buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}" +build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}" # For host modules, accept cache file option, or specification as blank. case "${cache_file}" in "") # empty cache_file_option="" ;; -/* | [A-Za-z]:[\\/]* ) # absolute path +/* | [[A-Za-z]]:[[\\/]]* ) # absolute path cache_file_option="--cache-file=${cache_file}" ;; *) # relative path cache_file_option="--cache-file=../${cache_file}" ;; esac -hostargs="${cache_file_option} ${buildopt} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}" +host_configargs="${cache_file_option} --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}" -targargs=${baseargs} +target_configargs=${baseargs} # Passing a --with-cross-host argument lets the target libraries know # whether they are being built with a cross-compiler or being built @@ -1513,22 +1832,22 @@ targargs=${baseargs} # sorts of decisions they want to make on this basis. Please consider # this option to be deprecated. FIXME. if test x${is_cross_compiler} = xyes ; then - targargs="--with-cross-host=${host_alias} ${targargs}" + target_configargs="--with-cross-host=${host_alias} ${target_configargs}" fi # Default to --enable-multilib. if test x${enable_multilib} = x ; then - targargs="--enable-multilib ${targargs}" + target_configargs="--enable-multilib ${target_configargs}" fi # Pass --with-newlib if appropriate. Note that target_configdirs has # changed from the earlier setting of with_newlib. if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then - targargs="--with-newlib ${targargs}" + target_configargs="--with-newlib ${target_configargs}" fi # Pass the appropriate --host, --build, and --cache-file arguments. -targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}" +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 @@ -1562,7 +1881,7 @@ fi FLAGS_FOR_TARGET= case " $target_configdirs " in *" newlib "*) - case " $targargs " in + case " $target_configargs " in *" --with-newlib "*) case "$target" in *-cygwin*) @@ -1593,7 +1912,7 @@ case " $target_configdirs " in fi case "${target}-${is_cross_compiler}" in - i[3456]86-*-linux*-no) + i[[3456]]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 / /'` @@ -1632,14 +1951,9 @@ elif test -d ${srcdir}/gcc; then elif test "$host" = "$target"; then CC_FOR_TARGET='$(CC)' else - CC_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}` + CC_FOR_TARGET=`echo gcc | sed "${program_transform_name}"` fi -# On Canadian crosses, configure reads CC_FOR_TARGET from Makefile, -# if Makefile exists. Prevent $(FLAGS_FOR_TARGET) from being duplicated. -case $CC_FOR_TARGET in -*' $(FLAGS_FOR_TARGET)') ;; -*) CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; -esac +CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' if test "x${GCJ_FOR_TARGET+set}" = xset; then : @@ -1648,12 +1962,9 @@ elif test -d ${srcdir}/gcc; then elif test "$host" = "$target"; then GCJ_FOR_TARGET='gcj' else - GCJ_FOR_TARGET=`echo gcj | sed -e 's/x/x/' ${program_transform_name}` + GCJ_FOR_TARGET=`echo gcj | sed "${program_transform_name}"` fi -case $GCJ_FOR_TARGET in -*' $(FLAGS_FOR_TARGET)') ;; -*) GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; -esac +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' @@ -1673,20 +1984,14 @@ elif test "$host" = "$target"; then CXX_FOR_TARGET='$(CXX)' RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} else - CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}` + CXX_FOR_TARGET=`echo c++ | sed "${program_transform_name}"` RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} fi -case $CXX_FOR_TARGET in -*' $(FLAGS_FOR_TARGET)') ;; -*) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; -esac -case $RAW_CXX_FOR_TARGET in -*' $(FLAGS_FOR_TARGET)') ;; -*) RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; -esac +CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' +RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' -qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` -qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` +qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'` +qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'` # We want to defer the evaluation of `cmd`s and shell variables in # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for @@ -1694,45 +1999,131 @@ qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` # quotes, but we still have to duplicate `$'s so that shell variables # can be expanded by the nested make as shell variables, not as make # macros. -qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'` -qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'` - -# BASE_CC_FOR_TARGET is the actual program file of CC_FOR_TARGET, -# for use in dependencies. Replace $$r with a relative -# path if it's present. -set dummy $CC_FOR_TARGET; cc_for_target_first_word=$2 -BASE_CC_FOR_TARGET=`echo "$cc_for_target_first_word" | sed -e 's,[$][$]r,.,'` - -sedtemp=sed.$$ -cat >$sedtemp < Makefile.tem -rm -f Makefile $sedtemp -mv -f Makefile.tem Makefile +qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'` +qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'` + +# Wrap CC_FOR_TARGET and friends, for certain types of builds. +CC_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}" +GCJ_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}" +CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}" +RAW_CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}" +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} +AC_SUBST_FILE(host_makefile_frag) +AC_SUBST_FILE(target_makefile_frag) +AC_SUBST_FILE(alphaieee_frag) +AC_SUBST_FILE(ospace_frag) + +# Miscellanea: directories, flags, etc. +AC_SUBST(SET_LIB_PATH) +AC_SUBST(RPATH_ENVVAR) +AC_SUBST(BUILD_PREFIX) +AC_SUBST(BUILD_PREFIX_1) +AC_SUBST(configlinks) +AC_SUBST(enable_shared) +AC_SUBST(enable_threads) +AC_SUBST(enable_version_specific_runtime_libs) +AC_SUBST(gcc_version_trigger) +AC_SUBST(gcc_version) +AC_SUBST(tooldir) +AC_SUBST(build_tooldir) +AC_SUBST(GDB_TK) +AC_SUBST(gxx_include_dir) +AC_SUBST(libstdcxx_incdir) + +# Build module lists & subconfigure args. +AC_SUBST(build_subdir) +AC_SUBST(build_configargs) +AC_SUBST(configure_build_modules) +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) +AC_SUBST(CC_FOR_BUILD) +AC_SUBST(LEX) +AC_SUBST(MAKEINFO) +AC_SUBST(YACC) +AC_SUBST(config_shell) + +# Host tools. +NCN_STRICT_CHECK_TOOL(AR, ar) +NCN_STRICT_CHECK_TOOL(AS, as) +NCN_STRICT_CHECK_TOOL(DLLTOOL, dlltool) +NCN_STRICT_CHECK_TOOL(LD, ld) +NCN_STRICT_CHECK_TOOL(NM, nm) +NCN_STRICT_CHECK_TOOL(RANLIB, ranlib, :) +NCN_STRICT_CHECK_TOOL(WINDRES, windres) +NCN_STRICT_CHECK_TOOL(OBJCOPY, objcopy) +NCN_STRICT_CHECK_TOOL(OBJDUMP, objdump) +AC_SUBST(CC) +AC_SUBST(CXX) +AC_SUBST(CFLAGS) +AC_SUBST(CXXFLAGS) +AC_SUBST(DEFAULT_YACC) +AC_SUBST(DEFAULT_LEX) +AC_SUBST(DEFAULT_M4) + +# Target tools. +NCN_STRICT_CHECK_TARGET_TOOL(AR_FOR_TARGET, ar) +NCN_STRICT_CHECK_TARGET_TOOL(AS_FOR_TARGET, as) +NCN_STRICT_CHECK_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool) +NCN_STRICT_CHECK_TARGET_TOOL(LD_FOR_TARGET, ld) +NCN_STRICT_CHECK_TARGET_TOOL(NM_FOR_TARGET, nm) +NCN_STRICT_CHECK_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :) +NCN_STRICT_CHECK_TARGET_TOOL(WINDRES_FOR_TARGET, windres) + +AC_SUBST(GCC_FOR_TARGET) +AC_SUBST(FLAGS_FOR_TARGET) +AC_SUBST(CC_FOR_TARGET) +AC_SUBST(GCJ_FOR_TARGET) +AC_SUBST(CXX_FOR_TARGET) +AC_SUBST(RAW_CXX_FOR_TARGET) +AC_SUBST(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE) +AC_SUBST(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE) + +# Fix up target tools. +if test "x${build}" = "x${host}" ; then + # In this case, the newly built tools can and should be used, + # so we override the results of the autoconf tests. + # This should really only happen when the tools are actually being built, + # but that's a further refinement. The new build scheme, where + # tools are built into a structure paralleling where they're installed, + # should also eliminate all of this cleanly. + AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)" + AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)" + DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)" + LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)" + NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)" + RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)" + WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)" +fi +# Certain tools may need extra flags. +AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target} +RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target} +NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} -# +AC_OUTPUT(Makefile)