Hello,

On Wed, Jan 04, 2006 at 06:12:11PM +0100, Sander Niemeijer wrote:
> distdir: $(DISTFILES)
>         $(am__remove_distdir)
>         mkdir $(distdir)
> --->    $(mkdir_p) $(distdir)/$(top_srcdir)/data

The problem is caused by the following line in Makefile.am:

        EXTRA_DIST = $(top_srcdir)/data/foo.txt

There are two possible answers:

1)  The patch attached to this mail fixes it.

2)  Please use
        EXTRA_DIST = data/foo.txt
Automake finds the fine in the src tree.

If you are using this in a Makefile.am, then use
        EXTRA_DIST = ../../data/foo.txt
or
        EXTRA_DIST = $(top_builddir)/data/foo.txt
It is a bit counter-intuitive: top_builddir always expands to
a relative path, so the above mkdir works.

Have a nice day,
        Stepan Kasal
2006-01-04  Stepan Kasal  <[EMAIL PROTECTED]>

        * automake.in (handle_dist) <DISTDIRS>: Replace $(top_srcdir) and
          $(srcdir) by $(top_builddir) or $(builddir), respectively.
        * tests/distdir.test: Test for it.

diff -urpN automake.orig/automake.in automake/automake.in
--- automake.orig/automake.in   2006-01-04 20:25:49.000000000 +0100
+++ automake/automake.in        2006-01-04 20:56:44.000000000 +0100
@@ -3635,7 +3635,7 @@ sub handle_dist ()
   $transform{'GETTEXT'} = $seen_gettext && !$seen_gettext_external;
 
   # Prepend $(distdir) to each directory given.
-  my %rewritten = map { s|^\$[({](top_)?srcdir[)}]|\$($1builddir)|;
+  my %rewritten = map { s|^\$[({]((top_)?)srcdir[)}]|\$($1builddir)|;
                        '$(distdir)/' . "$_" => 1 } keys %dist_dirs;
   $transform{'DISTDIRS'} = join (' ', sort keys %rewritten);
 
diff -urpN automake.orig/tests/distdir.test automake/tests/distdir.test
--- automake.orig/tests/distdir.test    2005-05-14 22:28:54.000000000 +0200
+++ automake/tests/distdir.test 2006-01-04 20:57:03.000000000 +0100
@@ -19,20 +19,21 @@
 # Boston, MA 02110-1301, USA.
 
 # Test to make sure subdirs in EXTRA_DIST work.  Also tests to make
-# sure "./" is ignored.
+# sure "./" is ignored and *srcdir is replaced by *builddir.
 
 . ./defs || exit 1
 
 set -e
 
 cat > Makefile.am << 'END'
-EXTRA_DIST = foo/bar ./joe
+EXTRA_DIST = foo/bar ./joe $(top_srcdir)/woo/doo $(srcdir)/dada
 END
 
 $ACLOCAL
 $AUTOMAKE
 
 grep '\$(mkdir_p).*\.' Makefile.in && exit 1
+grep '\$(mkdir_p).*srcdir' Makefile.in && exit 1
 grep '\$(mkdir_p).*foo' Makefile.in
 
 # Check to make sure `foo' isn't made in build directory.

Reply via email to