ディレクトリに多数のテキスト ファイルがありhelp_pages/
、すべて reST でフォーマットされています。私はGNUにMakefile
いくつかのルールを追加しようとしています:
- 有効なhtmlファイルを吐き出すアプリを介して、拡張子「.rst」のディレクトリ(およびサブディレクトリ)内の各ファイルを実行し
help_pages
ます(現在、私は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
と、ターゲット ディレクトリにファイルが存在しない場合、ファイルは再インストールされません。
理想的には、ヘルプ ファイルを作成するターゲット、それらをインストールするターゲット、およびこれら 2 つに依存する 3 つ目のターゲット (「ヘルプ」と呼ばれる) が必要です。これにより、最大の柔軟性が得られると思います。
これを達成する方法について誰かが私にいくつかのヒントを教えてもらえますか?
乾杯、