13.2 What goes in
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
|
|