The Autodist is a source distribution management system that allows powerful mechanisms to define what is included in and excluded from a distribution, and what license the distribution is released under. It is also used to create the actual distribution source packages. Autodist allows distribution management in file, directory and file content level. Different distributions may include different portions of files, for example, excluding certain features from certain distributions. It is always guaranteed that anything not defined for the distribution, is removed automatically (files, file content, directories), thus ensuring that nothing is accidentally included in the distribution.
The Autodist creates 'Makefile.am' files from 'Makefile.ad' files and 'configure.ac' file from one or more 'configure.ad' files. Any other file ending with '.ad' suffix will also be processed. The processed file will have the '.ad' suffix removed (see Preparing source tree). Autodist also creates and packages the distribution using common GNU distribution creation process, specifically `make dist'. Autodist, however, controls this process and during packaging phase the Autodist processes all files in the distribution (other than '*.ad' files, which has already been processed earlier by Autodist). The resulted package is a processed source distribution package, processed according to the rules specified in the distribution file(s) (see Creating distribution).
Any file in the source tree may use distdefs (distribution defines (see Distdefines)) which are defined in the distributions. When distribution is packaged only the files, directories and file content that is either outside of any distdef, or inside the defined distdefs will be included in the distribution. Any other file, directory or content in the file will be removed. It is guaranteed, if a file, a directory or a piece of file content is not inside a defined distdef it will not be delivered to the distribution.
Any file, 'Makefile.am', 'configure.ac', or source file processed with Autodist is always compliant with the tools needed to process them. All files can also be processed with the corresponding tools even before processing them with Autodist. This makes it possible, for example, to compile sources before they have been processed, and undefined lines are removed. The distdefs are respected in source files by the preprocessor.
Autodist is not a binary packaging system. It is specifically used to create source distributions. A binary packaging system, however can be hooked to the distribution creation process, if needed.