Алексей Махоткин

домашняя страница

Automake

Go to the first, previous, next, last section, table of contents.


Когда не хватает возможностей Automake

Неявная семантика копирования, которую использует Automake, означает, что многие проблемы могут быть решены простым добавлением нескольких целей для make и правил для `Makefile.in’. Automake будет игнорировать эти добавления.

Сначала – несколько предостережений. Несмотря на то, что вы можете переопределить любую цель, используемую Automake, делать это все же не рекомендуется, особенно в каталоге верхнего уровня неплоского пакета. Однако же, различные полезные цели имеют разновидность, `local’-цель, которую и можно указать в вашем `Makefile.in’. Automake дополнит стандартные цели этими, заданными пользователем, целями.

К целям, поддерживающим локальную версию относятся: all, info, dvi, check, install-data, install-exec, uninstall и различные цели clean (mostlyclean, clean, distclean и maintainer-clean). Заметьте, что в этом списке нет целей uninstall-exec-local или uninstall-data-local; есть только uninstall-local. Нет никакого смысла в удалении только данных или только исполняемых файлов.

Например, вот один из способов установить файл в каталог `/etc’:

install-data-local:
        $(INSTALL_DATA) $(srcdir)/afile /etc/afile

Некоторые цели также позволяют после своего выполнения другие цели, которые называются `зацепками, или ловушками (hook)’. Зацепка имеет то же имя, что и соответствующая цель, но с суффиксом `-hook’. Цели, разрешающие использовать зацепки – это install-data, install-exec, dist и distcheck.

Например, вот как создать жесткую ссылку на установленную программу:

install-exec-hook:
        ln $(bindir)/program $(bindir)/proglink


Go to the first, previous, next, last section, table of contents.

Comments