* (top level patch) Autoconfiscate. (Woo!)
@ 2002-12-27 20:03 Nathanael Nerode
2002-12-27 23:07 ` Alexandre Oliva
2002-12-28 7:06 ` Mark Kettenis
0 siblings, 2 replies; 8+ messages in thread
From: Nathanael Nerode @ 2002-12-27 20:03 UTC (permalink / raw)
To: gcc-patches, gdb-patches, binutils, dj
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 <<EOF
+# ${NO_EDIT}
+dir ${srcdir}
+dir .
+source ${srcdir}/.gdbinit
+EOF
+ ;;
+ esac
+fi
+
+# record if we want runtime library stuff installed in libsubdir.
+# Blank means no.
+if test -z "${enable_version_specific_runtime_libs}"; then
+ enable_version_specific_runtime_libs=no
+fi
# Make sure that the compiler is able to generate an executable. If it
# can't, we are probably in trouble. We don't care whether we can run the
@@ -1338,7 +1601,7 @@
case "${host}" in
sparc-sun-solaris2*)
CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`"
- if test "`type $CCBASE | sed 's/^[^/]*//'`" = "/usr/ucb/cc" ; then
+ if test "`type $CCBASE | sed 's/^[[^/]]*//'`" = "/usr/ucb/cc" ; then
could_use=
test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin"
if test -d /opt/cygnus/bin ; then
@@ -1369,18 +1632,12 @@
else
SET_LIB_PATH=
fi
-sed -e "s/@SET_LIB_PATH@/${SET_LIB_PATH}/" Makefile > 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 <<EOF
-s%@GDB_TK@%${GDB_TK}%
-s%@configure_build_modules@%${configure_build_modules}%
-s%@all_build_modules@%${all_build_modules}%
-s%@configure_host_modules@%${configure_host_modules}%
-s%@all_host_modules@%${all_host_modules}%
-s%@check_host_modules@%${check_host_modules}%
-s%@install_host_modules@%${install_host_modules}%
-s%@install_host_modules_nogcc@%${install_host_modules_nogcc}%
-s%@configure_target_modules@%${configure_target_modules}%
-s%@all_target_modules@%${all_target_modules}%
-s%@check_target_modules@%${check_target_modules}%
-s%@install_target_modules@%${install_target_modules}%
-s:@target_configdirs@:${target_configdirs}:
-s%@target_configargs@%${target_configargs}%
-s%@FLAGS_FOR_TARGET@%${FLAGS_FOR_TARGET}%
-s%@CC_FOR_TARGET@%${CC_FOR_TARGET}%
-s%@GCJ_FOR_TARGET@%${GCJ_FOR_TARGET}%
-s%@CXX_FOR_TARGET@%${CXX_FOR_TARGET}%
-s%@RAW_CXX_FOR_TARGET@%${RAW_CXX_FOR_TARGET}%
-s%@CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%${CXX_FOR_TARGET_FOR_RECURSIVE_MAKE}%
-s%@RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%${RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE}%
-s%@target_subdir@%${target_subdir}%
-s%@build_subdir@%${build_subdir}%
-s%@build_configargs@%${build_configargs}%
-s%@gxx_include_dir@%${gxx_include_dir}%
-s%@libstdcxx_incdir@%${libstdcxx_incdir}%
-s%@host_configargs@%${host_configargs}%
-EOF
-sed -f $sedtemp Makefile > 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)
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (top level patch) Autoconfiscate. (Woo!)
2002-12-27 20:03 (top level patch) Autoconfiscate. (Woo!) Nathanael Nerode
@ 2002-12-27 23:07 ` Alexandre Oliva
2002-12-28 7:06 ` Mark Kettenis
1 sibling, 0 replies; 8+ messages in thread
From: Alexandre Oliva @ 2002-12-27 23:07 UTC (permalink / raw)
To: Nathanael Nerode; +Cc: gcc-patches, gdb-patches, binutils, dj
On Dec 28, 2002, Nathanael Nerode <neroden@twcny.rr.com> wrote:
> 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.
This is a mistake. You could end up thinking you built tools for one
platform but that will actually work on your native platform. Please
arrange for host and target tools not to be too smart in this regard,
and actually not go for unprefixed unless we know we don't really need
a cross.
> +# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM
Would you mind renaming the _NCN macros to say _TOPLEV or so? Nothing
personal, it's just... Well... You understand, don't you? :-)
> +# clear some things potentially inherited from environment.
> +
> +enable_threads=no
> +enable_shared=no
> +enable_libstdcxx_v3=yes
I'm not sure this is actually necessary. Traditionally, configure
scripts have taken --with/--enable arguments from the environment too,
even if it's just because such variables are not cleaned up. I don't
really see a reason to override this behavior.
> + PATH=$PATH:${PWD=`${PWDCMD-pwd}`} ; export PATH
Huh? Any idea why we need this? (I realize it's inherited from the
old configure, but it would be nice if we could get rid of this at
some point. It is *so* wrong!)
> +# Export original configure arguments for use by sub-configures.
> +TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@"
> +export TOPLEVEL_CONFIGURE_ARGUMENTS
We probably need some additional quoting here, such that arguments
with shell metacharacters and blanks in arguments don't end up being
mis-interpreted. Problems from this change (still in configure) have
already started showing up, when people used blank as a separator for
--enable-languages.
> -# 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)'
Hmm... I wonder if this can really be taken out. I believe that,
when Makefile runs ./config.status --recheck, it may pass
CC_FOR_TARGET down with $(FLAGS_FOR_TARGET) in the environment. I'm
pretty sure this is the case with ${STAGE_CC_WRAPPER}, because I've
seen the number of occurrences thereof grow overtime. Worth a test,
touching configure so that Makefile reruns it.
None of the changes are show-stoppers, IMHO, even though I consider
the first point quite critical. Anyhow, I think it's reasonable to
address all of these points in separate patches. Please go ahead and
check this patch in. Thanks!
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist Professional serial bug killer
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (top level patch) Autoconfiscate. (Woo!)
2002-12-27 20:03 (top level patch) Autoconfiscate. (Woo!) Nathanael Nerode
2002-12-27 23:07 ` Alexandre Oliva
@ 2002-12-28 7:06 ` Mark Kettenis
2002-12-28 8:24 ` Alexandre Oliva
1 sibling, 1 reply; 8+ messages in thread
From: Mark Kettenis @ 2002-12-28 7:06 UTC (permalink / raw)
To: Nathanael Nerode; +Cc: gcc-patches, gdb-patches, binutils, dj
Nathanael Nerode <neroden@twcny.rr.com> writes:
> This autoconfiscates the top level. Tested on i686-pc-linux-gnu, produced
> a Makefile with only trivial differences from before.
Nothing serious, but...
...I get the following warning when configuring readline:
Configuring in readline
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
configure: loading cache .././config.cache
checking build system type... i386-unknown-freebsd4.7
checking host system type... i386-unknown-freebsd4.7
Beginning configuration for readline-4.3 for i386-unknown-freebsd4.7
We get this warning since the readline subdirectory uses Autoconf
2.50, and toplevel passes --host, but not --build to configure.
Therefore I suspect that we'll see more of these warnings once we
start using Autoconf 2.5x for the other subdirectories too.
Anyway, as far as I can determine, the warning doesn't hurt, but we
might want to get rid of it.
Note that this is probably caused by an earlier patch, and not by this
last autoconfiscate patch, but I didn't notice it before.
Mark
P.S. Why is Makefile.tpl not included in the src CVS tree? It is
included in the gcc CVS tree.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (top level patch) Autoconfiscate. (Woo!)
2002-12-28 7:06 ` Mark Kettenis
@ 2002-12-28 8:24 ` Alexandre Oliva
2002-12-28 10:05 ` Alexandre Oliva
0 siblings, 1 reply; 8+ messages in thread
From: Alexandre Oliva @ 2002-12-28 8:24 UTC (permalink / raw)
To: Mark Kettenis; +Cc: Nathanael Nerode, gcc-patches, gdb-patches, binutils, dj
On Dec 28, 2002, Mark Kettenis <kettenis@chello.nl> wrote:
> Nathanael Nerode <neroden@twcny.rr.com> writes:
>> This autoconfiscates the top level. Tested on i686-pc-linux-gnu, produced
>> a Makefile with only trivial differences from before.
> Nothing serious, but...
> ...I get the following warning when configuring readline:
> Configuring in readline
> configure: WARNING: If you wanted to set the --build type, don't use --host.
> If a cross compiler is detected then cross compile mode will be used.
We can't really help warnings like this from autoconf 2.5x, unless we
check each sub-package's configure to see which autoconf it's using.
The problem is that, in autoconf 2.13, the build platform defaults to
the host platform that is auto-detected, but in autoconf 2.5x, this
was fixed such that it is host that defaults to build that is
auto-detected. So, you get the warning when you specify only --host,
since eventually the backward-compatible behavior in autoconf will be
disabled. Worse yet, if you specify both --build and --host, you'll
get a different warning, since autoconf 2.5x wants this to imply that
we're doing cross-compilation. Fortunately, it checks whether the
--build and --host arguments to see whether they're the same, and
disables this assumption in this case. I heard talk about removing
these backward-compatible features a few months ago; I hope my protest
against it didn't get in too late; it would simply make it impossible
to have a tree like uberbaum unless *every* *single* component in it
switches to the newer version of autoconf.
> Anyway, as far as I can determine, the warning doesn't hurt, but we
> might want to get rid of it.
Ideally, the top-level should pass down to host packages exactly the
same --build, --host and --target flags that were passed to it.
Currently, we attempt to do it, but we fail because buildopt is no
longer set anywhere. Oops :-)
This is a problem, because specifying --build no longer has any effect
on host packages. I don't know whether any package actually relies on
--build these days, but it should be fixed.
> Note that this is probably caused by an earlier patch, and not by this
> last autoconfiscate patch, but I didn't notice it before.
It was probably the autoconfiscate patch that dropped the assignment
of buildopt. Earlier, we used to pass both --build and --host down.
> P.S. Why is Makefile.tpl not included in the src CVS tree? It is
> included in the gcc CVS tree.
It should be there too. Probably just a pilot error.
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist Professional serial bug killer
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (top level patch) Autoconfiscate. (Woo!)
2002-12-28 8:24 ` Alexandre Oliva
@ 2002-12-28 10:05 ` Alexandre Oliva
2002-12-28 10:08 ` Daniel Jacobowitz
0 siblings, 1 reply; 8+ messages in thread
From: Alexandre Oliva @ 2002-12-28 10:05 UTC (permalink / raw)
To: Mark Kettenis; +Cc: Nathanael Nerode, gcc-patches, gdb-patches, binutils, dj
On Dec 28, 2002, Alexandre Oliva <aoliva@redhat.com> wrote:
>> P.S. Why is Makefile.tpl not included in the src CVS tree? It is
>> included in the gcc CVS tree.
> It should be there too. Probably just a pilot error.
Hey, wait! It *is* there. Perhaps you didn't check out the module
file again, so you don't have it? Files in the top level directory
are special, in a certain way. You don't get them when you just
update.
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist Professional serial bug killer
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (top level patch) Autoconfiscate. (Woo!)
2002-12-28 10:05 ` Alexandre Oliva
@ 2002-12-28 10:08 ` Daniel Jacobowitz
2002-12-28 10:34 ` Alexandre Oliva
0 siblings, 1 reply; 8+ messages in thread
From: Daniel Jacobowitz @ 2002-12-28 10:08 UTC (permalink / raw)
To: Alexandre Oliva
Cc: Mark Kettenis, Nathanael Nerode, gcc-patches, gdb-patches, binutils, dj
On Sat, Dec 28, 2002 at 03:59:29PM -0200, Alexandre Oliva wrote:
> On Dec 28, 2002, Alexandre Oliva <aoliva@redhat.com> wrote:
>
> >> P.S. Why is Makefile.tpl not included in the src CVS tree? It is
> >> included in the gcc CVS tree.
>
> > It should be there too. Probably just a pilot error.
>
> Hey, wait! It *is* there. Perhaps you didn't check out the module
> file again, so you don't have it? Files in the top level directory
> are special, in a certain way. You don't get them when you just
> update.
Maybe you don't. I always do. CVS has no idea of a toplevel directory
(or if it does, it doesn't matter here, since src/ is not the toplevel
directory of the repository, but the second level).
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (top level patch) Autoconfiscate. (Woo!)
2002-12-28 10:08 ` Daniel Jacobowitz
@ 2002-12-28 10:34 ` Alexandre Oliva
0 siblings, 0 replies; 8+ messages in thread
From: Alexandre Oliva @ 2002-12-28 10:34 UTC (permalink / raw)
To: Daniel Jacobowitz
Cc: Mark Kettenis, Nathanael Nerode, gcc-patches, gdb-patches, binutils, dj
On Dec 28, 2002, Daniel Jacobowitz <drow@mvista.com> wrote:
> Maybe you don't. I always do.
I'm pretty sure there's something about modules files that enables one
to not get all files in the top level of the checked-out tree, not
even an update (unless you update -d).
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist Professional serial bug killer
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (top level patch) Autoconfiscate. (Woo!)
@ 2002-12-27 23:23 Nathanael Nerode
0 siblings, 0 replies; 8+ messages in thread
From: Nathanael Nerode @ 2002-12-27 23:23 UTC (permalink / raw)
To: gcc-patches, gdb-patches, binutils, aoliva
>> 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.
>
>This is a mistake. You could end up thinking you built tools for one
>platform but that will actually work on your native platform. Please
>arrange for host and target tools not to be too smart in this regard,
>and actually not go for unprefixed unless we know we don't really need
>a cross.
Will start working on this. There are a couple of ways to do it, but
the easiest is to switch over to the STRICT versions included in
acx.m4. Heh.... I'll probably have that patch submitted by
tomorrow; it's simple enough.
>> +# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in
>AC_CANONICAL_SYSTEM
>
>Would you mind renaming the _NCN macros to say _TOPLEV or so? Nothing
>personal, it's just... Well... You understand, don't you? :-)
Heh. Well, there were CYG_ macros, and DJ_ macros, and...
Anyway, once I get them in their 'happiest form', I'm going to submit
them to the autoconf maintainers to become AC_* (and I expect to get
them in, since they're pretty simple). So, that will take care of that
in the long run.
>> +# clear some things potentially inherited from environment.
>> +
>> +enable_threads=no
>> +enable_shared=no
>> +enable_libstdcxx_v3=yes
>
>I'm not sure this is actually necessary. Traditionally, configure
>scripts have taken --with/--enable arguments from the environment too,
>even if it's just because such variables are not cleaned up. I don't
>really see a reason to override this behavior.
OK, will strip. I have to make sure the defaults are correct anyway,
so this will probably come as part of a larger patch to handle
enable_ and with_ stuff in a more autoconfy manner.
>> + PATH=$PATH:${PWD=`${PWDCMD-pwd}`} ; export PATH
>
>Huh? Any idea why we need this? (I realize it's inherited from the
>old configure, but it would be nice if we could get rid of this at
>some point. It is *so* wrong!)
I have absolutely no idea why we need this; I don't think we run any
programs in the toplevel working directory. I'll submit a patch to
delete that.
--Nathanael
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2002-12-28 18:23 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-27 20:03 (top level patch) Autoconfiscate. (Woo!) Nathanael Nerode
2002-12-27 23:07 ` Alexandre Oliva
2002-12-28 7:06 ` Mark Kettenis
2002-12-28 8:24 ` Alexandre Oliva
2002-12-28 10:05 ` Alexandre Oliva
2002-12-28 10:08 ` Daniel Jacobowitz
2002-12-28 10:34 ` Alexandre Oliva
2002-12-27 23:23 Nathanael Nerode
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox