[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

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’:


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

[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Ben Elliston on July 10, 2015 using texi2html 1.82.