[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Keeping track of dependencies for a large program is tedious and
error-prone. Many edits require the programmer to update dependencies,
but for some changes, such as adding a #include
to an existing
header, the change is large enough that he simply refuses (or does it
incorrectly). To fix this problem, Automake supports automatic
dependency tracking.
The implementation of automatic dependency tracking in Automake 1.4
requires gcc
and GNU make
. These programs are only
required for maintainers; the ‘Makefile’s generated by make
dist
are completely portable. If you can’t use gcc
or GNU
make
for your project, then you are simply out of luck; you have
to disable dependency tracking.
Automake 1.5 will include a completely new dependency tracking
implementation. This new implementation will work with any compiler and
any version of make
.
Another limitation of the current scheme is that the dependencies
included into the portable ‘Makefile’s by make dist
are
derived from the current build environment. First, this means that you
must use make all
before you can meaningfully run make
dist
(otherwise the dependencies won’t have been created). Second,
this means that any files not built in your current tree will not have
dependencies in the distributed ‘Makefile’s. The new
implementation will avoid both of these shortcomings as well.
Automatic dependency tracking is on by default; you don’t have to do
anything special to get it. To turn it off, either run
automake -i
instead of plain automake
, or put
‘no-dependencies’ into the ‘AUTOMAKE_OPTIONS’ macro in each
‘Makefile.am’.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Ben Elliston on July 10, 2015 using texi2html 1.82.