bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: auxdir and multiple configure.ac's


From: Bruno Haible
Subject: Re: auxdir and multiple configure.ac's
Date: Sun, 10 May 2009 16:55:50 +0200
User-agent: KMail/1.9.9

Ralf Wildenhues wrote:
> > >    sed_rewrite_old_files="\
> > > +    s,^lib/,$cached_sourcebase/,
> > >      s,^build-aux/,$auxdir/,
> > >      s,^doc/,$cached_docbase/,
> > > -    s,^lib/,$cached_sourcebase/,
> > >      s,^m4/,$cached_m4base/,
> > >      s,^tests/,$cached_testsbase/,
> > >      s,^tests=lib/,$cached_testsbase/,
> > >      s,^top/,,"
> > 
> > This patch looks like a nop. ...
> 
> I think Simon meant that if, say, $auxdir matches "^lib/", then the
> order of the substitutions is relevant.

Ah! Thanks for explaining again. Simon, sorry for not understanding
immediately.

> One way to avoid potential ordering issues is to use a construct like this:
>   t clear
>   :clear
>   s,^build-aux/,quuxl$auxdir/,
>   s,^lib/,quuxl$cached_sourcebase/,
>   ...
>   t fixup
>   b
>   :fixup
>   s,^quuxl,,

The same thing will also work without the conditional branches. I'm
applying this:

2009-05-10  Bruno Haible  <address@hidden>

        * gnulib-tool (func_import, func_create_testdir, copy-file): Change
        sed_rewrite_old_files, sed_rewrite_new_files, sed_rewrite_files so that
        it rewrites every file name only once.
        Reported by Simon Josefsson. Helped by Ralf Wildenhues.

*** gnulib-tool.orig    2009-05-10 15:20:20.000000000 +0200
--- gnulib-tool 2009-05-10 15:18:41.000000000 +0200
***************
*** 2917,2938 ****
      func_append old_files " m4/gnulib-tool.m4"
    fi
  
    sed_rewrite_old_files="\
!     s,^build-aux/,$auxdir/,
!     s,^doc/,$cached_docbase/,
!     s,^lib/,$cached_sourcebase/,
!     s,^m4/,$cached_m4base/,
!     s,^tests/,$cached_testsbase/,
!     s,^tests=lib/,$cached_testsbase/,
!     s,^top/,,"
    sed_rewrite_new_files="\
!     s,^build-aux/,$auxdir/,
!     s,^doc/,$docbase/,
!     s,^lib/,$sourcebase/,
!     s,^m4/,$m4base/,
!     s,^tests/,$testsbase/,
!     s,^tests=lib/,$testsbase/,
!     s,^top/,,"
  
    # Create directories.
    { echo "$sourcebase"
--- 2917,2941 ----
      func_append old_files " m4/gnulib-tool.m4"
    fi
  
+   rewritten='%REWRITTEN%'
    sed_rewrite_old_files="\
!     s,^build-aux/,$rewritten$auxdir/,
!     s,^doc/,$rewritten$cached_docbase/,
!     s,^lib/,$rewritten$cached_sourcebase/,
!     s,^m4/,$rewritten$cached_m4base/,
!     s,^tests/,$rewritten$cached_testsbase/,
!     s,^tests=lib/,$rewritten$cached_testsbase/,
!     s,^top/,$rewritten,
!     s,^$rewritten,,"
    sed_rewrite_new_files="\
!     s,^build-aux/,$rewritten$auxdir/,
!     s,^doc/,$rewritten$docbase/,
!     s,^lib/,$rewritten$sourcebase/,
!     s,^m4/,$rewritten$m4base/,
!     s,^tests/,$rewritten$testsbase/,
!     s,^tests=lib/,$rewritten$testsbase/,
!     s,^top/,$rewritten,
!     s,^$rewritten,,"
  
    # Create directories.
    { echo "$sourcebase"
***************
*** 3883,3895 ****
      echo "$files" | sed -e 's/^/  /'
    fi
  
    sed_rewrite_files="\
!     s,^build-aux/,$auxdir/,
!     s,^doc/,$docbase/,
!     s,^lib/,$sourcebase/,
!     s,^m4/,$m4base/,
!     s,^tests/,$testsbase/,
!     s,^top/,,"
  
    # Create directories.
    for f in $files; do echo $f; done \
--- 3886,3900 ----
      echo "$files" | sed -e 's/^/  /'
    fi
  
+   rewritten='%REWRITTEN%'
    sed_rewrite_files="\
!     s,^build-aux/,$rewritten$auxdir/,
!     s,^doc/,$rewritten$docbase/,
!     s,^lib/,$rewritten$sourcebase/,
!     s,^m4/,$rewritten$m4base/,
!     s,^tests/,$rewritten$testsbase/,
!     s,^top/,$rewritten,
!     s,^$rewritten,,"
  
    # Create directories.
    for f in $files; do echo $f; done \
***************
*** 4715,4727 ****
      test -n "$docbase" || docbase="doc"
      test -n "$testsbase" || testsbase="tests"
      test -n "$auxdir" || auxdir="build-aux"
      sed_rewrite_files="\
!       s,^build-aux/,$auxdir/,
!       s,^doc/,$docbase/,
!       s,^lib/,$sourcebase/,
!       s,^m4/,$m4base/,
!       s,^tests/,$testsbase/,
!       s,^top/,,"
      if test -d "$dest"; then
        destdir="$dest"
        g=`echo "$f" | sed -e "$sed_rewrite_files"`
--- 4720,4734 ----
      test -n "$docbase" || docbase="doc"
      test -n "$testsbase" || testsbase="tests"
      test -n "$auxdir" || auxdir="build-aux"
+     rewritten='%REWRITTEN%'
      sed_rewrite_files="\
!       s,^build-aux/,$rewritten$auxdir/,
!       s,^doc/,$rewritten$docbase/,
!       s,^lib/,$rewritten$sourcebase/,
!       s,^m4/,$rewritten$m4base/,
!       s,^tests/,$rewritten$testsbase/,
!       s,^top/,$rewritten,
!       s,^$rewritten,,"
      if test -d "$dest"; then
        destdir="$dest"
        g=`echo "$f" | sed -e "$sed_rewrite_files"`




reply via email to

[Prev in Thread] Current Thread [Next in Thread]