From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16707 invoked by alias); 27 Jun 2003 03:36:46 -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 16626 invoked from network); 27 Jun 2003 03:36:45 -0000 Received: from unknown (HELO ms-smtp-03.nyroc.rr.com) (24.92.226.153) by sources.redhat.com with SMTP; 27 Jun 2003 03:36:45 -0000 Received: from doctormoo (syr-24-24-16-119.twcny.rr.com [24.24.16.119]) by ms-smtp-03.nyroc.rr.com (8.12.5/8.12.2) with ESMTP id h5R3ais4015549; Thu, 26 Jun 2003 23:36:45 -0400 (EDT) Received: from neroden by doctormoo with local (Exim 3.36 #1 (Debian)) id 19Vk2T-00005D-00; Thu, 26 Jun 2003 23:36:41 -0400 Date: Fri, 27 Jun 2003 03:36:00 -0000 To: gcc-patches@gcc.gnu.org Cc: gdb-patches@sources.redhat.com, binutils@sources.redhat.com Subject: [toplevel patch] Clean up config-lang.in handling Message-ID: <20030627033640.GA27042@doctormoo> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i From: Nathanael Nerode X-SW-Source: 2003-06/txt/msg00806.txt.bz2 There are some stylistic cleanups, plus the 'big change' of sourcing the config-lang.in files rather than 'sed'ing them. Note that 'subdirs' is no longer used anywhere (it was a remnant from the Cygnus configure file). Tested on i686-pc-linux-gnu. Also tested with --enable-languages=c, --enable-languages="c,c++", --enable-languages="all,treelang", --enable-languages="java", etc. There's some preexisting trouble if people use more than a , to separate languages, but it's unrelated. I may try to get to it later. * configure.in: Clean up config-lang.in handling. Delete useless assignment to "subdirs". * configure: Regenerate. Index: configure.in =================================================================== RCS file: /cvs/gcc/gcc/configure.in,v retrieving revision 1.242 diff -u -r1.242 configure.in --- configure.in 26 Jun 2003 20:18:34 -0000 1.242 +++ configure.in 27 Jun 2003 03:31:52 -0000 @@ -755,24 +755,24 @@ # 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 # front ends it requires, even if some are required indirectly. -for lang in ${srcdir}/gcc/*/config-lang.in .. -do - case $lang in +for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do + case ${lang_frag} in ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${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` - for other in $this_lang_requires - do + # From the config-lang.in, get $language, $lang_requires + language= + lang_requires= + . ${lang_frag} + for other in ${lang_requires} ; do case ,${enable_languages}, in *,$other,*) ;; *,all,*) ;; - *,$lang_alias,*) - echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2 - enable_languages="$enable_languages,$other" + *,$language,*) + echo " \`$other' language required by \`$language'; enabling" 1>&2 + enable_languages="${enable_languages},${other}" ;; esac done @@ -780,35 +780,44 @@ esac done -subdirs= -for lang in ${srcdir}/gcc/*/config-lang.in .. -do - case $lang in +for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do + case ${lang_frag} in ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. ${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` - if test "x$lang_alias" = x - then - echo "$lang doesn't set \$language." 1>&2 + # From the config-lang.in, get $language, $target_libs, + # $lang_dirs, and $build_by_default + language= + target_libs= + lang_dirs= + build_by_default= + . ${lang_frag} + if test "x$language" = x ; then + echo "${lang_frag} doesn't set \$language." 1>&2 exit 1 fi - case ${build_by_default},${enable_languages}, in - *,$lang_alias,*) add_this_lang=yes ;; - no,*) add_this_lang=no ;; - *,all,*) add_this_lang=yes ;; + case ,${enable_languages}, in + *,${language},*) + # Language was explicitly selected; include it. + add_this_lang=yes + ;; + *,all,*) + # 'all' was selected; include 'default' languages. + case ${build_by_default} in + no) add_this_lang=no ;; + *) add_this_lang=yes ;; + esac + ;; *) add_this_lang=no ;; esac - if test x"${add_this_lang}" = xyes; then - : - else - eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\" - fi + case ${add_this_lang} in + no) + # Remove language-dependent dirs. + eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\" + ;; + esac ;; esac done -- Nathanael Nerode http://home.twcny.rr.com/nerode/neroden/fdl.html