我想知道这是否可行。情况如下:
我的项目使用automake来构建目标。顶级目录包含通常的configure.ac
和Makefile.am
。除其他外,Makefile.am
包含列出子目录的SUBDIRS
变量,对我的问题很重要的是doc
和include
目录。 include
目录的makefile如下所示:
nobase_include_HEADERS = <lot-of-headers>
所以它基本上安装了标题。 doc
中的makefile应该从这些文件中生成html文档:
doxygen-stamp: Doxyfile
$(DOXYGEN) $<
echo "timestamp for Doxyfile" > $@
all-local: doxygen-stamp
到目前为止一切正常,但如果我更改include
中的任何标题,文档仍然是最新的 - 因为我没有将它们列为依赖项。我希望拥有一个doxygen-stamp
- 目标,一旦标题更改而再次将所有标题列为依赖项,则重建目标。这是可能的,如果可能,怎么样?
答案 0 :(得分:1)
在这种情况下,将使用单个Makefile进行暗示 - 尽管您可以使用automake include
指令将其拆分(另请参见“手册”中的第7.3节“子目录的替代方法”)。因此:
#can't use nobase_
include_HEADERS = include/foo.h include/bar.h
doc/doxygen-stamp: ${include_HEADERS}
答案 1 :(得分:-1)
我认为如果你使doxygen-stamp也依赖于'$(top_srcdir)/ include / * .h'(或.hpp或其他),当doxygen-stamp相对于任何.h文件过期时它会重建在include目录中。
doxygen-stamp: Doxyfile $(top_srcdir)/include/*.h