Hi all, I think I have found a bug in automake.
Attached is an example that reproduces the problem.The problem is triggered by configuring the foo-1.0 package using a full path to configure (or to use a build directory that differs from the source directory) and running a 'make dist'.
If I do e.g. $ tar -zxf foo-1.0.tar.gz $ cd foo-1.0 $ /Users/sander/foo-1.0/configure $ make distI will end up with an empty directory 'Users/sander/foo-1.0/data' in my newly created foo-1.0 package.
The problem seems to come from the creation of directories for each of the EXTRA_DIST entries.
From Makefile.in: --- distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) ---> $(mkdir_p) $(distdir)/$(top_srcdir)/data @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \$(srcdir)/*) file=`echo "$$file" | sed "s|^$ $srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$ $topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \if test -f $$file || test -d $$file; then d=.; else d=$ (srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ ...... ---Since srcdir (and thus also top_srcdir) is derived from the directory component from the call to configure (i.e. the '/Users/sander/ foo-1.0/' part from '/Users/sander/foo-1.0/configure') this will translate into
--- $(mkdir_p) $(distdir)/Users/sander/foo-1.0/data --- which is clearly wrong.Furthermore, I wonder why this directory creation for EXTRA_DIST entries is included in the first place, since a couple of lines below in the Makefile.in we have:
--- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ ---which seems to take care of creation of the directory if it did not already exist.
foo-1.0.tar.gz
Description: GNU Zip compressed data
Best regards, Sander Niemeijer