(自动)在多个makefile之间建立依赖关系

时间:2012-01-05 10:19:04

标签: makefile automake

我想知道这是否可行。情况如下:

我的项目使用automake来构建目标。顶级目录包含通常的configure.acMakefile.am。除其他外,Makefile.am包含列出子目录的SUBDIRS变量,对我的问题很重要的是docinclude目录。 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 - 目标,一旦标题更改再次将所有标题列为依赖项,则重建目标。这是可能的,如果可能,怎么样?

2 个答案:

答案 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