| Autoconf, Automake, and Libtool | ||
|---|---|---|
| <<< Previous | Rolling Distribution Tarballs | Next >>> |
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 [1] 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
|
| [1] | Probably numbered 1.5. |
| <<< Previous | Home | Next >>> |
| Rolling Distribution Tarballs | Up | The distcheck rule |