summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-02-25 14:38:22 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-02-25 20:23:30 +0100
commitc99835be113fd4c86ef413993d67e52206a1188d (patch)
tree708c197b1539fdaba88ab824ae8d2485e5ddfa34 /doc
parent040cf12502ba3c57b16e1e0ad899f8ed7b7a1365 (diff)
downloadautomake-c99835be113fd4c86ef413993d67e52206a1188d.tar.gz
docs: improve 'dist-hook' documentation
* doc/automake.texi (The dist Hook): Explicitly document the fact that the dist-hook should account for the case where the source tree is read-only, mostly for the benefit of distcheck. Since we are at it, do some minor unrelated rewordings, and remove obsolescent advice. Motivated by the discussion on automake bug#10878. * tests/disthook.test: New test. * tests/disthook-perms.test: Delete as obsolete. * tests/list-of-tests.mk: Adjust.
Diffstat (limited to 'doc')
-rw-r--r--doc/automake.texi35
1 files changed, 23 insertions, 12 deletions
diff --git a/doc/automake.texi b/doc/automake.texi
index c2c2a21c9..3bb365b7d 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -8420,24 +8420,35 @@ nodist_foo_SOURCES = do-not-distribute.c
Occasionally it is useful to be able to change the distribution before
it is packaged up. If the @code{dist-hook} rule exists, it is run
-after the distribution directory is filled, but before the actual tar
-(or shar) file is created. One way to use this is for distributing
-files in subdirectories for which a new @file{Makefile.am} is overkill:
+after the distribution directory is filled, but before the actual
+distribution archives are created. One way to use this is for
+removing unnecessary files that get recursively included by specifying
+a directory in @code{EXTRA_DIST}:
@example
+EXTRA_DIST = doc
dist-hook:
- mkdir $(distdir)/random
- cp -p $(srcdir)/random/a1 $(srcdir)/random/a2 $(distdir)/random
+ rm -rf `find $(distdir)/doc -type d -name .svn`
@end example
-Another way to use this is for removing unnecessary files that get
-recursively included by specifying a directory in EXTRA_DIST:
-
-@example
-EXTRA_DIST = doc
-
+@c The caveates described here should be documented in 'disthook.test'.
+@noindent
+Note that the @code{dist-hook} recipe shouldn't assume that the regular
+files in the distribution directory are writable; this might not be the
+case if one is packaging from a read-only source tree, or when a
+@code{make distcheck} is being done. For similar reasons, the recipe
+shouldn't assume that the subdirectories put into the distribution
+directory as effect of having them listed in @code{EXTRA_DIST} are
+writable. So, if the @code{dist-hook} recipe wants to modify the
+content of an existing file (or @code{EXTRA_DIST} subdirectory) in the
+distribution directory, it should explicitly to make it writable first:
+
+@example
+EXTRA_DIST = README doc
dist-hook:
- rm -rf `find $(distdir)/doc -type d -name .svn`
+ chmod u+w $(distdir)/README $(distdir)/doc
+ echo "Distribution date: `date`" >> README
+ rm -f $(distdir)/doc/HACKING
@end example
@vindex distdir