13.2 What goes in

back: introduction to distributions
forward: the distcheck rule
 
fastback: the distcheck rule
up: rolling distribution tarballs
fastforward: installing and uninstalling
top: autoconf, automake, and libtool
contents: table of contents
index: index
about: about this document

Automake tries to make creating a distribution as easy as possible. The rules are set up by default to distribute those things which Automake knows belong in a distribution. For instance, Automake always distributes your `configure' script and your `NEWS' file. All the files Automake automatically distributes are shown by automake --help :

 
 $ automake --help ... Files which are automatically distributed, if found:   ABOUT-GNU         README           config.guess      ltconfig   ABOUT-NLS         THANKS           config.h.bot      ltmain.sh   AUTHORS           TODO             config.h.top      mdate-sh   BACKLOG           acconfig.h       config.sub        missing   COPYING           acinclude.m4     configure         mkinstalldirs   COPYING.LIB       aclocal.m4       configure.in      stamp-h.in   ChangeLog         ansi2knr.1       elisp-comp        stamp-vti   INSTALL           ansi2knr.c       install-sh        texinfo.tex   NEWS              compile          libversion.in     ylwrap ... 

Automake also distributes some files about which it has no built-in knowledge, but about which it learns from your `Makefile.am' . For instance, the source files listed in a `_SOURCES' variable go into the distribution. This is why you ought to list uninstalled header files in the `_SOURCES' variable: otherwise you'll just have to introduce another variable to distribute them -- Automake will only know about them if you tell it.

Not all primaries are distributed by default. The rule is arbitrary, but pretty simple: of all the primaries, only `_TEXINFOS' and `_HEADERS' are distributed by default. (Sources that make up programs and libraries are also distributed by default, but, perhaps confusingly, `_SOURCES' is not considered a primary.)

While there is no rhyme , there is a reason: defaults were chosen based on feedback from users. Typically, `enough' reports of the form `I auto-generate my `_SCRIPTS' . How do I prevent them from ending up in the distribution?' would cause a change in the default.

Although the defaults are adequate in many situations, sometimes you have to distribute files which aren't covered automatically. It is easy to add additional files to a distribution; simply list them in the macro `EXTRA_DIST' . You can list files in subdirectories here. You can also list a directory's name here and the entire contents will be copied into the distribution by make dist . Use this last feature with care. A typical failure is that you'll put a `temporary' file in the directory and then it will end up in the distribution when you forget to remove it. Similarly, version control files, such as a `CVS' subdirectory, can easily end up in a distribution this way.

If a primary is not distributed by default, but in your case it ought to be, you can easily correct it with `EXTRA_DIST' :

 
 EXTRA_DIST = $(bin_SCRIPTS) 

The next major Automake release (28) will have a better method for controlling whether primaries do or do not go into the distribution. In 1.5 you will be able to use the `dist' and `nodist' prefixes to control distribution on a per-variable basis. You will even be able to simultaneously use both prefixes with a given primary to include some files and omit others:

 
 dist_bin_SCRIPTS = distribute-this nodist_bin_SCRIPTS = but-not-this 

This document was generated by Gary V. Vaughan on May, 24 2001 using texi2html


GNU Autoconf, Automake and Libtool
GNU Autoconf, Automake, and Libtool
ISBN: 1578701902
EAN: 2147483647
Year: 2002
Pages: 290

Similar book on Amazon

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net