From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31151 invoked by alias); 17 Mar 2003 14:45:11 -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 31001 invoked from network); 17 Mar 2003 14:45:10 -0000 Received: from unknown (HELO ms-smtp-01.nyroc.rr.com) (24.92.226.148) by sources.redhat.com with SMTP; 17 Mar 2003 14:45:10 -0000 Received: from doctormoo (syr-24-24-17-145.twcny.rr.com [24.24.17.145]) by ms-smtp-01.nyroc.rr.com (8.12.5/8.12.2) with ESMTP id h2HEj867005288; Mon, 17 Mar 2003 09:45:08 -0500 (EST) Received: from neroden by doctormoo with local (Exim 3.36 #1 (Debian)) id 18uvrM-0004Ym-00; Mon, 17 Mar 2003 09:45:04 -0500 Date: Mon, 17 Mar 2003 14:45:00 -0000 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 Message-ID: <20030317144503.GA16592@doctormoo> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.3i From: Nathanael Nerode X-SW-Source: 2003-03/txt/msg00362.txt.bz2 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)