【发布时间】:2011-01-09 08:05:40
【问题描述】:
我在help_pages/ 目录中有一堆文本文件,全部以reST 格式。我正在尝试向我的 GNU make Makefile 添加一些规则:
- 通过一个应用程序运行
help_pages目录(和子目录)中扩展名为“.rst”的每个文件,该应用程序会生成一个有效的html 文件(现在我只使用rst2html)。李> - 将这些输出 html 文件复制到目标目录,再现存在于
help_pages目录中的目录结构。
因此,例如,help_pages/some/dir/foo.rst 将首先转换为 help_pages/some/dir/foo.html,然后复制到 public/help/some/dir/foo.html。
我花了一整天的时间试图了解 Makefile 的内部结构,但最后我放弃了。这是我已经拥有的:
# Directory that the .rst files reside in:
HELP_DIR=help_pages
# use 'find' to locate all such files:
HELP_SRCS=$(shell find $(HELP_DIR) -name "*.rst")
# work out what path the intermediate files would be
HELP_TARGETS=$(HELP_SRCS:.rst=.html)
# do the translation.
$(HELP_TARGETS): %.html: %.rst
rst2html $< $@
help: $(HELP_TARGETS)
.phony:
help
这种工作 - .rst 文件被翻译成 .html 文件,但我不知道如何将它们安装到最终的目标目录中。如果我在主构建配方中添加cp 命令,如果目标目录中不存在这些文件,则不会重新安装它们。
理想情况下,我想要一个目标来制作帮助文件,一个来安装它们,第三个(称为“帮助”)依赖于这两个文件。我认为这会给我最大的灵活性。
谁能给我一些关于如何实现这一目标的提示?
干杯,
【问题讨论】:
标签: makefile restructuredtext gnu-make