From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15609 invoked by alias); 28 Dec 2002 04:01:33 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 15514 invoked from network); 28 Dec 2002 04:01:30 -0000 Received: from unknown (HELO mailout6-0.nyroc.rr.com) (24.92.226.177) by 209.249.29.67 with SMTP; 28 Dec 2002 04:01:30 -0000 Received: from doctormoo (syr-24-24-16-193.twcny.rr.com [24.24.16.193]) by mailout6-0.nyroc.rr.com (8.11.6/RoadRunner 1.20) with ESMTP id gBS411k25942; Fri, 27 Dec 2002 23:01:01 -0500 (EST) Received: from neroden by doctormoo with local (Exim 3.36 #1 (Debian)) id 18S88V-0000pE-00; Fri, 27 Dec 2002 22:59:43 -0500 Date: Fri, 27 Dec 2002 20:03:00 -0000 To: gcc-patches@gcc.gnu.org, gdb-patches@sources.redhat.com, binutils@sources.redhat.com, dj@redhat.com Subject: (top level patch) Autoconfiscate. (Woo!) Message-ID: <20021228035943.GA3173@doctormoo> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i From: Nathanael Nerode X-SW-Source: 2002-12/txt/msg00698.txt.bz2 This autoconfiscates the top level. Tested on i686-pc-linux-gnu, produced a Makefile with only trivial differences from before. Cross to i386-cygwin produced a Makefile with only trivial differences too. Canadian cross (host=i386-cygwin, target=powerpc-eabisim) produced a Makefile with no significant differences. There was a set of spurious differences: I didn't have all the "i386-cygwin-foo" and "powerpc-eabi-foo" tools in place. Autoconf actually checks to see if they're present, and if they're not, defaults to the unprefixed 'foo' tools. The old script defaulted to the "i386-cygwin-foo" tools even if they didn't exist. I can reproduce the old behavior if people actually want it (it's all handled by a couple of macros in acx.m4). Note that this does not do (nearly) all possible autoconfiscation cleanups; a lot of stuff is left as shell code which could be done in a more 'autoconfy' manner. But this is a huge enough patch as it is, and it's safer to do this first, so I can deal with the other changes one at a time. The diff to configure.in is a little confusing; in addition to the insertion of autoconf macros, there's an immense amount of quoting for [ and ], and several large insertions of code from the old 'configure'. Sorry. Generated file diffs are omitted. (toplevel) * configure.in: Convert to autoconf script. Blow away lots of now-redundant Makefile fragment references. * configure: Generate using Autoconf 2.13. * Makefile.tpl: Rewrite to reflect autoconfiscation. * Makefile.in: Regenerate. (config) * acx.m4: New file. * mh-a68bsd, mh-aix386, mh-apollo68, mh-delta88, mh-hp300, mh-hpux, mh-hpux8, mh-irix5, mh-irix6, mh-ncrsvr43, mh-openedition, mh-riscos, mh-sysv: Delete. * mh-cxux, mh-dgux386, mh-interix, mh-lynxrs6k, mh-ncr3000, mh-necv4, mh-sco, mh-solaris, mh-sysv4, mh-sysv5, mt-v810: Simplify. Index: Makefile.tpl =================================================================== RCS file: /cvs/gcc/gcc/Makefile.tpl,v retrieving revision 1.23 diff -u -r1.23 Makefile.tpl --- Makefile.tpl 24 Dec 2002 17:24:41 -0000 1.23 +++ Makefile.tpl 28 Dec 2002 03:02:03 -0000 @@ -372,6 +372,10 @@ .PHONY: all #### host and target specific makefile fragments come in here. +@target_makefile_frag@ +@alphaieee_frag@ +@ospace_frag@ +@host_makefile_frag@ ### # Flags to pass down to all sub-makes. @@ -643,7 +647,7 @@ local-distclean: -rm -f Makefile config.status config.cache mh-frag mt-frag - -rm -f multilib.out multilib.ts multilib.tmp + -rm -f multilib.out multilib.ts multilib.tmp maybedep.tmp serdep.tmp -if [ "$(TARGET_SUBDIR)" != "." ]; then \ rm -rf $(TARGET_SUBDIR); \ else true; fi @@ -1413,14 +1417,13 @@ $(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def cd $(srcdir) && autogen Makefile.def -# with the gnu make, this is done automatically. - -host_makefile_frag=@host_makefile_frag@ -target_makefile_frag=@target_makefile_frag@ - -Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger) - $(SHELL) ./config.status - +# Rebuilding Makefile. +Makefile: Makefile.in configure $(gcc_version_trigger) + $(SHELL) ./config.status --recheck + +# Rebuilding configure. +configure: configure.in + cd $(srcdir) && autoconf # .NOEXPORT: Index: config/acx.m4 =================================================================== RCS file: config/acx.m4 diff -N config/acx.m4 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ config/acx.m4 28 Dec 2002 03:02:10 -0000 @@ -0,0 +1,83 @@ +# Autoconf M4 include file defining utility macros for complex Canadian +# cross builds. + +#### +# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM +# or AC_INIT. +# These demand that AC_CANONICAL_SYSTEM be called beforehand. +AC_DEFUN([_NCN_TOOL_PREFIXES], +[ncn_tool_prefix= +test -n "$host_alias" && ncn_tool_prefix=$host_alias- +ncn_target_tool_prefix= +test -n "$target_alias" && ncn_target_tool_prefix=$target_alias- +]) []dnl # _NCN_TOOL_PREFIXES + +#### +# NCN_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like AC_CHECK_TOOL, but tries a prefix of the target, not the host. +# Code is pretty much lifted from autoconf2.53. + +AC_DEFUN([NCN_CHECK_TARGET_TOOL], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +if test -n "$ncn_target_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2], + [${ncn_target_tool_prefix}$2], , [$4]) +fi +if test -z "$ac_cv_prog_$1" ; then + ncn_ct_$1=$$1 + AC_CHECK_PROG([ncn_ct_$1], [$2], [$2], [$3], [$4]) + $1=$ncn_ct_$1 +else + $1="$ac_cv_prog_$1" +fi +]) []dnl # NCN_CHECK_TARGET_TOOL + + +#### +# NCN_STRICT_CHECK_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like AC_CHECK_TOOL, but requires the prefix if build!=host. + +AC_DEFUN([NCN_STRICT_CHECK_TOOL], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +if test -n "$ncn_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_tool_prefix}$2], + [${ncn_tool_prefix}$2], , [$4]) +fi +if test -z "$ac_cv_prog_$1" ; then + if test $build = $host ; then + ncn_ct_$1=$$1 + AC_CHECK_PROG([ncn_ct_$1], [$2], [$2], [$3], [$4]) + $1=$ncn_ct_$1 + else + $1="$3" + fi +else + $1="$ac_cv_prog_$1" +fi +]) []dnl # NCN_STRICT_CHECK_TOOL + + +#### +# NCN_STRICT_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like NCN_CHECK_TARGET_TOOL, but requires the prefix if build!=target. + +AC_DEFUN([NCN_STRICT_CHECK_TARGET_TOOL], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +if test -n "$ncn_target_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2], + [${ncn_target_tool_prefix}$2], , [$4]) +fi +if test -z "$ac_cv_prog_$1" ; then + if test $build = $target ; then + ncn_ct_$1=$$1 + AC_CHECK_PROG([ncn_ct_$1], [$2], [$2], [$3], [$4]) + $1=$ncn_ct_$1 + else + $1="$3" + fi +else + $1="$ac_cv_prog_$1" +fi +]) []dnl # NCN_STRICT_CHECK_TARGET_TOOL + + Index: config/mh-a68bsd =================================================================== RCS file: config/mh-a68bsd diff -N config/mh-a68bsd --- config/mh-a68bsd 19 Apr 2002 17:26:07 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,2 +0,0 @@ -RANLIB=true -BISON=yacc Index: config/mh-aix386 =================================================================== RCS file: config/mh-aix386 diff -N config/mh-aix386 --- config/mh-aix386 4 Sep 1999 15:08:48 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1 +0,0 @@ -RANLIB = @: Index: config/mh-apollo68 =================================================================== RCS file: config/mh-apollo68 diff -N config/mh-apollo68 --- config/mh-apollo68 13 May 2002 21:14:13 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1 +0,0 @@ -RANLIB=true Index: config/mh-cxux =================================================================== RCS file: /cvs/gcc/gcc/config/mh-cxux,v retrieving revision 1.4 diff -u -r1.4 mh-cxux --- config/mh-cxux 30 Apr 2002 03:30:21 -0000 1.4 +++ config/mh-cxux 28 Dec 2002 03:02:10 -0000 @@ -1,7 +1,5 @@ # Configuration for Harris CX/UX 7 (and maybe 6), based on sysv4 configuration. -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cq Index: config/mh-delta88 =================================================================== RCS file: config/mh-delta88 diff -N config/mh-delta88 --- config/mh-delta88 4 Sep 1999 15:08:48 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,4 +0,0 @@ -RANLIB = true - - - Index: config/mh-dgux386 =================================================================== RCS file: /cvs/gcc/gcc/config/mh-dgux386,v retrieving revision 1.5 diff -u -r1.5 mh-dgux386 --- config/mh-dgux386 13 May 2002 21:14:13 -0000 1.5 +++ config/mh-dgux386 28 Dec 2002 03:02:10 -0000 @@ -1,6 +1,3 @@ -# from mh-sysv4 -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cr Index: config/mh-hp300 =================================================================== RCS file: config/mh-hp300 diff -N config/mh-hp300 --- config/mh-hp300 30 Apr 2002 03:30:21 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,3 +0,0 @@ -# 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 Index: config/mh-hpux =================================================================== RCS file: config/mh-hpux diff -N config/mh-hpux --- config/mh-hpux 30 Apr 2002 03:30:22 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1 +0,0 @@ -RANLIB = true Index: config/mh-hpux8 =================================================================== RCS file: config/mh-hpux8 diff -N config/mh-hpux8 --- config/mh-hpux8 30 Apr 2002 03:30:22 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1 +0,0 @@ -RANLIB = true Index: config/mh-interix =================================================================== RCS file: /cvs/gcc/gcc/config/mh-interix,v retrieving revision 1.3 diff -u -r1.3 mh-interix --- config/mh-interix 19 Apr 2002 17:26:08 -0000 1.3 +++ config/mh-interix 28 Dec 2002 03:02:10 -0000 @@ -1,6 +1,5 @@ # The shell may not be in /bin. SHELL = sh -RANLIB = true # We also need to override LIBGCC2_DEBUG_CFLAGS so libgcc2 will be # built without debugging information Index: config/mh-irix5 =================================================================== RCS file: config/mh-irix5 diff -N config/mh-irix5 --- config/mh-irix5 30 Apr 2002 03:30:22 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,2 +0,0 @@ -# Makefile changes for SGI's running IRIX-5.x. -RANLIB = true Index: config/mh-irix6 =================================================================== RCS file: config/mh-irix6 diff -N config/mh-irix6 --- config/mh-irix6 30 Apr 2002 03:30:22 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,2 +0,0 @@ -# Makefile changes for SGI's running IRIX-6.x. -RANLIB = true Index: config/mh-lynxrs6k =================================================================== RCS file: /cvs/gcc/gcc/config/mh-lynxrs6k,v retrieving revision 1.3 diff -u -r1.3 mh-lynxrs6k --- config/mh-lynxrs6k 19 Apr 2002 17:26:08 -0000 1.3 +++ config/mh-lynxrs6k 28 Dec 2002 03:02:10 -0000 @@ -1,5 +1,2 @@ -# LynxOS running on the rs6000 doesn't have ranlib -RANLIB = true - # /bin/sh is too buggy, so use /bin/bash instead. SHELL = /bin/bash Index: config/mh-ncr3000 =================================================================== RCS file: /cvs/gcc/gcc/config/mh-ncr3000,v retrieving revision 1.4 diff -u -r1.4 mh-ncr3000 --- config/mh-ncr3000 30 Apr 2002 03:30:22 -0000 1.4 +++ config/mh-ncr3000 28 Dec 2002 03:02:10 -0000 @@ -1,6 +1,4 @@ # Host configuration file for an NCR 3000 (i486/SVR4) system. -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cq Index: config/mh-ncrsvr43 =================================================================== RCS file: config/mh-ncrsvr43 diff -N config/mh-ncrsvr43 --- config/mh-ncrsvr43 30 Apr 2002 03:30:22 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,3 +0,0 @@ -# Host configuration file for an NCR 3000 (i486/SVR43) system. - -RANLIB = true Index: config/mh-necv4 =================================================================== RCS file: /cvs/gcc/gcc/config/mh-necv4,v retrieving revision 1.4 diff -u -r1.4 mh-necv4 --- config/mh-necv4 30 Apr 2002 03:30:22 -0000 1.4 +++ config/mh-necv4 28 Dec 2002 03:02:10 -0000 @@ -1,6 +1,4 @@ # Host Makefile fragment for NEC MIPS SVR4. -RANLIB = true - # NEC -lX11 needs some other libraries. X11_EXTRA_LIBS = -lsocket -lnsl Index: config/mh-openedition =================================================================== RCS file: config/mh-openedition diff -N config/mh-openedition --- config/mh-openedition 19 Apr 2002 17:26:08 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1 +0,0 @@ -RANLIB = true Index: config/mh-riscos =================================================================== RCS file: config/mh-riscos diff -N config/mh-riscos --- config/mh-riscos 19 Apr 2002 17:26:08 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,3 +0,0 @@ -# This is for a MIPS running RISC/os 4.52C. - -RANLIB = true Index: config/mh-sco =================================================================== RCS file: /cvs/gcc/gcc/config/mh-sco,v retrieving revision 1.4 diff -u -r1.4 mh-sco --- config/mh-sco 30 Apr 2002 03:30:22 -0000 1.4 +++ config/mh-sco 28 Dec 2002 03:02:10 -0000 @@ -1,4 +1,3 @@ -RANLIB = true # You may need this if you don't have bison. # BISON = yacc -Sm10400 Index: config/mh-solaris =================================================================== RCS file: /cvs/gcc/gcc/config/mh-solaris,v retrieving revision 1.3 diff -u -r1.3 mh-solaris --- config/mh-solaris 30 Apr 2002 03:30:22 -0000 1.3 +++ config/mh-solaris 28 Dec 2002 03:02:10 -0000 @@ -1,5 +1,2 @@ # Makefile changes for Suns running Solaris 2 - -RANLIB = true - X11_EXTRA_LIBS = -lnsl -lsocket Index: config/mh-sysv =================================================================== RCS file: config/mh-sysv diff -N config/mh-sysv --- config/mh-sysv 30 Apr 2002 03:30:22 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1 +0,0 @@ -RANLIB = true Index: config/mh-sysv4 =================================================================== RCS file: /cvs/gcc/gcc/config/mh-sysv4,v retrieving revision 1.4 diff -u -r1.4 mh-sysv4 --- config/mh-sysv4 30 Apr 2002 03:30:22 -0000 1.4 +++ config/mh-sysv4 28 Dec 2002 03:02:10 -0000 @@ -1,5 +1,3 @@ -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cr Index: config/mh-sysv5 =================================================================== RCS file: /cvs/gcc/gcc/config/mh-sysv5,v retrieving revision 1.3 diff -u -r1.3 mh-sysv5 --- config/mh-sysv5 30 Apr 2002 03:30:22 -0000 1.3 +++ config/mh-sysv5 28 Dec 2002 03:02:10 -0000 @@ -1,5 +1,3 @@ -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cr Index: config/mt-v810 =================================================================== RCS file: /cvs/gcc/gcc/config/mt-v810,v retrieving revision 1.2 diff -u -r1.2 mt-v810 --- config/mt-v810 4 Sep 1999 15:08:48 -0000 1.2 +++ config/mt-v810 28 Dec 2002 03:02:10 -0000 @@ -1,4 +1,3 @@ CC_FOR_TARGET = ca732 -ansi AS_FOR_TARGET = as732 AR_FOR_TARGET = ar732 -RANLIB_FOR_TARGET = true Index: configure.in =================================================================== RCS file: /cvs/gcc/gcc/configure.in,v retrieving revision 1.199 diff -u -r1.199 configure.in --- configure.in 28 Dec 2002 00:59:52 -0000 1.199 +++ configure.in 28 Dec 2002 03:43:44 -0000 @@ -1,19 +1,3 @@ -#! /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. # @@ -32,29 +16,114 @@ # 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_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 + +case "${progname}" in +/* | [[A-Za-z]]:[[\\/]]* ) ;; +*/*) ;; +*) + PATH=$PATH:${PWD=`${PWDCMD-pwd}`} ; export PATH + ;; +esac + +# Export original configure arguments for use by sub-configures. +TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@" +export 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="--with-gcc-version-trigger=$gcc_version_trigger $ac_configure_args" + ;; + esac + fi fi ### To add a new directory to the tree, first choose whether it is a target @@ -124,18 +193,11 @@ ################################################################################ -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 @@ -243,17 +305,17 @@ 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*) @@ -293,7 +355,7 @@ *-*-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*) @@ -448,13 +510,13 @@ # 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 @@ -473,13 +535,13 @@ # 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 @@ -497,24 +559,24 @@ ;; 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-*-*) @@ -612,9 +674,9 @@ ;; 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}" @@ -700,7 +762,7 @@ 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 @@ -712,11 +774,11 @@ ;; # 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 @@ -741,12 +803,12 @@ ..) ;; # 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 @@ -958,16 +1020,18 @@ # 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 @@ -976,8 +1040,8 @@ # 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" @@ -989,7 +1053,6 @@ host_makefile_frag="config/mh-cxux" ;; m88k-motorola-sysv*) - host_makefile_frag="config/mh-delta88" ;; mips*-dec-ultrix*) tentative_cc="cc -Wf,-XNg1000" @@ -1000,21 +1063,12 @@ 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" ;; @@ -1032,26 +1086,23 @@ # 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 @@ -1060,28 +1111,21 @@ 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*) @@ -1105,17 +1149,11 @@ # 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 @@ -1129,26 +1167,15 @@ *-*-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*) @@ -1157,7 +1184,7 @@ *-*-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. @@ -1173,7 +1200,7 @@ ;; esac -alphaieee_frag= +alphaieee_frag=/dev/null case $target in alpha*-*-*) # This just makes sure to use the -mieee option to build target libs. @@ -1185,7 +1212,7 @@ # 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" @@ -1203,15 +1230,6 @@ ;; 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 @@ -1288,9 +1306,6 @@ ;; 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. @@ -1310,7 +1325,255 @@ 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. + 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" + 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 + 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. + case "${CC}" in + *gcc) + 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* + ;; + 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. @@ -1443,11 +1700,8 @@ ; 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. @@ -1478,21 +1732,18 @@ 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 +serialization_dependencies=serdep.tmp +AC_SUBST_FILE(serialization_dependencies) # 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-]*=[^ ]*//'` +baseargs=`echo "${ac_configure_args}" | \ + 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-]]*=[[^ ]]*//'` # 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 @@ -1503,7 +1754,7 @@ 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}" ;; @@ -1599,7 +1850,7 @@ 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 / /'` @@ -1640,12 +1891,7 @@ else CC_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${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 : @@ -1656,10 +1902,7 @@ else GCJ_FOR_TARGET=`echo gcj | sed -e 's/x/x/' ${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' @@ -1682,17 +1925,11 @@ CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${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 @@ -1700,8 +1937,8 @@ # 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'` +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}" @@ -1711,38 +1948,120 @@ 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}" -sedtemp=sed.$$ -cat >$sedtemp < Makefile.tem -rm -f Makefile $sedtemp -mv -f Makefile.tem Makefile +# 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. +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(DLLTOOL, dlltool) +AC_CHECK_TOOL(LD, ld) +AC_CHECK_TOOL(NM, nm) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(WINDRES, windres) +AC_CHECK_TOOL(OBJCOPY, objcopy) +AC_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_CHECK_TARGET_TOOL(AR_FOR_TARGET, ar) +NCN_CHECK_TARGET_TOOL(AS_FOR_TARGET, as) +NCN_CHECK_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool) +NCN_CHECK_TARGET_TOOL(LD_FOR_TARGET, ld) +NCN_CHECK_TARGET_TOOL(NM_FOR_TARGET, nm) +NCN_CHECK_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :) +NCN_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)