From: Nathanael Nerode <neroden@twcny.rr.com>
To: gcc-patches@gcc.gnu.org, binutils@sources.redhat.com,
gdb-patches@sources.redhat.com, aoliva@redhat.com
Subject: [toplevel patch] Macroize build_subdir & target_subdir, newest version
Date: Mon, 17 Mar 2003 14:45:00 -0000 [thread overview]
Message-ID: <20030317144503.GA16592@doctormoo> (raw)
This looks overengineered, I realize. However,
* it works with the current autoconf2.13
* it is designed to be 'future-proof' against autoconf 2.5x
That's the source of the overengineering.
Tested on i686-pc-linux-gnu.
* config/acx.m4: Introduce _GCC_TOPLEV_NONCANONICAL_BUILD,
_GCC_TOPLEV_NONCANOICAL_HOST, _GCC_TOPLEV_NONCANONICAL_TARGET,
GCC_TOPLEV_SUBDIRS.
* configure.in: Use GCC_TOPLEV_SUBDIRS.
Index: config/acx.m4
===================================================================
RCS file: /cvs/gcc/gcc/config/acx.m4,v
retrieving revision 1.2
diff -u -r1.2 acx.m4
--- config/acx.m4 28 Dec 2002 17:57:00 -0000 1.2
+++ config/acx.m4 17 Mar 2003 14:40:52 -0000
@@ -1,6 +1,67 @@
# Autoconf M4 include file defining utility macros for complex Canadian
# cross builds.
+dnl ####
+dnl # _GCC_TOPLEV_NONCANONICAL_BUILD
+dnl # $build_alias or canonical $build if blank.
+dnl # Used when we would use $build_alias, but empty is not OK.
+AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_BUILD],
+[AC_REQUIRE([AC_CANONICAL_BUILD]) []dnl
+case ${build_alias} in
+ "") build_noncanonical=${build} ;;
+ *) build_noncanonical=${build_alias} ;;
+esac
+]) []dnl # _GCC_TOPLEV_NONCANONICAL_BUILD
+
+dnl ####
+dnl # _GCC_TOPLEV_NONCANONICAL_HOST
+dnl # $host_alias, or $build_noncanonical if blank.
+dnl # Used when we would use $host_alias, but empty is not OK.
+AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_HOST],
+[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl
+case ${host_alias} in
+ "") host_noncanonical=${build_noncanonical} ;;
+ *) host_noncanonical=${host_alias} ;;
+esac
+]) []dnl # _GCC_TOPLEV_NONCANONICAL_HOST
+
+dnl ####
+dnl # _GCC_TOPLEV_NONCANONICAL_TARGET
+dnl # $target_alias or $host_noncanonical if blank.
+dnl # Used when we would use $target_alias, but empty is not OK.
+AC_DEFUN([_GCC_TOPLEV_NONCANONICAL_TARGET],
+[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_HOST]) []dnl
+case ${target_alias} in
+ "") target_noncanonical=${host_noncanonical} ;;
+ *) target_noncanonical=${target_alias} ;;
+esac
+]) []dnl # _GCC_TOPLEV_NONCANONICAL_TARGET
+
+dnl ####
+dnl # GCC_TOPLEV_SUBDIRS
+dnl # GCC & friends build 'build', 'host', and 'target' tools. These must
+dnl # be separated into three well-known subdirectories of the build directory:
+dnl # build_subdir, host_subdir, and target_subdir. The values are determined
+dnl # here so that they can (theoretically) be changed in the future. They
+dnl # were previously reproduced across many different files.
+dnl #
+dnl # This logic really amounts to very little with autoconf 2.13; it will
+dnl # amount to a lot more with autoconf 2.5x.
+AC_DEFUN([GCC_TOPLEV_SUBDIRS],
+[AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_TARGET]) []dnl
+AC_REQUIRE([_GCC_TOPLEV_NONCANONICAL_BUILD]) []dnl
+# Prefix 'build-' so this never conflicts with target_subdir.
+build_subdir="build-${build_noncanonical}"
+# Not really a subdirectory, but here for completeness.
+host_subdir=.
+# No prefix.
+target_subir=${target_noncanonical}
+AC_SUBST([build_subdir]) []dnl
+AC_SUBST([host_subdir]) []dnl
+AC_SUBST([target_subdir]) []dnl
+]) []dnl # GCC_TOPLEV_SUBDIRS
+
+
####
# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM
# or AC_INIT.
Index: configure.in
===================================================================
RCS file: /cvs/gcc/gcc/configure.in,v
retrieving revision 1.228
diff -u -r1.228 configure.in
--- configure.in 12 Mar 2003 20:40:49 -0000 1.228
+++ configure.in 17 Mar 2003 14:41:03 -0000
@@ -179,9 +179,8 @@
is_cross_compiler=yes
fi
-# We always want to use the same name for this directory, so that dejagnu
-# can reliably find it.
-target_subdir=${target_alias}
+# Find the build and target subdirs.
+GCC_TOPLEV_SUBDIRS
if test ! -d ${target_subdir} ; then
if mkdir ${target_subdir} ; then true
@@ -191,9 +190,6 @@
fi
fi
-build_prefix=build-
-build_subdir=${build_prefix}${build_alias}
-
if test x"${build_alias}" != x"${host}" ; then
if test ! -d ${build_subdir} ; then
if mkdir ${build_subdir} ; then true
@@ -1981,7 +1977,6 @@
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)
@@ -1996,7 +1991,6 @@
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)
next reply other threads:[~2003-03-17 14:45 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-17 14:45 Nathanael Nerode [this message]
2003-05-31 21:58 ` Alexandre Oliva
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030317144503.GA16592@doctormoo \
--to=neroden@twcny.rr.com \
--cc=aoliva@redhat.com \
--cc=binutils@sources.redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox