Next: Distribution Patches, Up: Distributions [Contents][Index]
All packages should provide tar files for the distribution of their
releases. 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.