Automake
читает файл `Makefile.am'
и создает на его основе файл `Makefile.in'
.
Специальные макросы и цели, определенные в
`Makefile.am'
, заставляют
Automake
генерировать более специализированный код; например, макроопределение
`binPROGRAMS'
заставит создать цели для компиляции и компоновки
программ.
Макроопределения и цели из файла `Makefile.am'
копируются в файл `Makefile.in'
без изменений. Это позволяет вам добавлять в генерируемый файл `Makefile.in'
произвольный код. Например, дистрибутив Automake
включает в себя нестандартную
цель cvs-dist
, которую использует человек, сопровождающий Automake
,
для создания дистрибутивов из системы контроля исходного кода.
Заметьте, что расширения GNU make не распознаются программой Automake
.
Использование таких расширений в файле
`Makefile.am'
приведет к ошибкам
или странному поведению программы. Automake
пытается сгруппировать комментарии
к расположенным по соседству целям и макроопределениям.
Цель, определенная в `Makefile.am'
, обычно переопределяет любую цель
с таким же именем, которая была бы автоматически создана Automake
.
Хотя этот прием и работает, старайтесь избегать его использования,
поскольку иногда автоматически созданные цели являются очень важными. Аналогичным
образом макрос, определенный в `Makefile.am'
, будет переопределять
любой макрос, который создает Automake
. Это часто более полезно, чем
возможность переопределения цели. Но будьте осторожны, поскольку многие
из макросов, создаваемых программой Automake
, считаются макросами
только для внутреннего использования, и их имена могут изменяться
в будущих версиях.
При обработке макроопределения Automake
рекурсивно обрабатывает макросы,
на которые есть ссылка в данном макроопределении. Например, если Automake
исследует содержимое fooSOURCES
в следующем определении:
xs = a.c b.c
foo_SOURCES = c.c $(xs) ,
то он будет использовать файлы `a.c', `b.c'
и `c.c'
как содержимое
fooSOURCES
.
Automake
также вводит форму комментария, который не копируется в выходной
файл; все строки, начинающиеся с `', полностью игнорируются Automake
.
Очень часто первая строка файла `Makefile.am'
выглядит следующим образом:
## Process this file with Automake to produce Makefile.in
## Для получения Makefile.in обработайте этот файл
## программой Automake .