У меня есть куча текстовых файлов в каталоге 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
.
Я провел весь день, пытаясь выучитьвнутри Makeciles, но в конце концов я сдался.Вот что у меня уже есть:
# 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
в основной рецепт сборки, файлы не будут переустанавливаться, если они не существуют в целевом каталоге.
В идеале я бы хотел, чтобы цель создавала файлы справки.и один для их установки, а третий (называется «помощь»), который зависит от этих двух.Я думаю, что это даст мне большую гибкость.
Кто-нибудь может дать мне несколько советов о том, как этого добиться?
Приветствия,