Next: Distribution Patches, Up: Distributions
The tar file for version m.n of program foo
should be
named foo-m.n.tar. It should unpack into a
subdirectory named foo-m.n. Tar files should not
unpack into files in the current directory, because this is inconvenient
if the user happens to unpack into a directory with other files in it.
Here is how the Makefile for Bison creates the tar file. This method is good for other programs.
dist: bison.info echo bison-`sed -e '/version_string/!d' \ -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname -rm -rf `cat .fname` mkdir `cat .fname` dst=`cat .fname`; for f in $(DISTFILES); do \ ln $(srcdir)/$$f $$dst/$$f || { echo copying $$f; \ cp -p $(srcdir)/$$f $$dst/$$f ; } \ done tar --gzip -chf `cat .fname`.tar.gz `cat .fname` -rm -rf `cat .fname` .fname
Source files that are symbolic links to other file systems cannot be
installed in the temporary directory using ln
, so use cp
if ln
fails.
Using Automake is a good way to take care of writing the dist
target.