(Авто) сделать зависимость между несколькими make-файлами - PullRequest
2 голосов
/ 05 января 2012

Мне интересно, возможно ли это вообще?Вот ситуация:

Мой проект использует automake для построения своих целей.Топ-каталог содержит обычные configure.ac и Makefile.am.Среди прочего, Makefile.am содержит переменную SUBDIRS, в которой перечислены подкаталоги, важными для моего вопроса являются каталоги doc и include.Makefile каталога include выглядит следующим образом:

nobase_include_HEADERS = <lot-of-headers>

, поэтому он в основном устанавливает заголовки.Make-файл в doc должен генерировать html-документацию из этих файлов:

doxygen-stamp: Doxyfile
    $(DOXYGEN) $<
    echo "timestamp for Doxyfile" > $@

all-local: doxygen-stamp

Пока все работает нормально, но если я изменю любой из заголовков в include, документация все еще будетна сегодняшний день - потому что я не перечислил их как зависимости.Я хотел бы иметь цель doxygen-stamp, которая будет перестраиваться после изменения заголовков без повторного ввода с перечислением всех заголовков в качестве зависимостей.Возможно ли это, и если да, то как?

Ответы [ 2 ]

1 голос
/ 09 января 2012

В этом случае намекают на использование одного Makefile - хотя вы можете разделить его, используя инструкцию automake include (см. Также раздел 7.3 «Альтернативный подход к подкаталогам» руководства am).Поэтому:

#can't use nobase_
include_HEADERS = include/foo.h include/bar.h

doc/doxygen-stamp: ${include_HEADERS}
0 голосов
/ 05 января 2012

Я думаю, что если вы сделаете doxygen-stamp также зависящим от '$ (top_srcdir) / include / *. H' (или .hpp или чего-либо еще), он будет перестроен, когда doxygen-stamp устарел относительно любого файла .h в каталоге include.

doxygen-stamp: Doxyfile $(top_srcdir)/include/*.h
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...