next up previous contents
Next: Примеры Up: Утилита Automake Previous: Введение   Contents

Основные идеи

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 .



2004-06-22