X.pdfターゲットがで、前提条件が であると仮定して、makefile ターゲットの前提条件で % 記号を再利用する方法を学びたいと思いX/X.texます。
詳しく説明すると、現在、次のようなメイクファイルがあります。
all: foo.pdf
%.pdf: %.tex
pdflatex $*.tex
さらにファイルfoo.texがあり、入力makeするとfoo.pdf、実行して作成されますpdflatex foo.tex。
現在、制御できないさまざまな理由により、ディレクトリ構造が変更されました。
my_dir
|- Makefile
|- foo
|- foo.tex
X.pdfMakefile を変更して、make を試みるときにファイルを検索するようにしたいと考えていますX/X.tex。
私は次のことを試しました (私は '%/%.tex' を入れて、 を探すように指示しましたfoo/foo.tex):
all: foo.pdf
%.pdf: %/%.tex
pdflatex $*/$*.tex
ただし、これにより次の結果が得られます。
No rule to make target `foo.pdf', needed by `all'. Stop.
そう%.pdf: $*/$*.texです。
を に変更する%/%.texとfoo/%.tex、期待どおりに動作しますが、そこにハードコーディングしたくありませんfoo。将来的には、andall: foo.pdf bar.pdfを探す必要があるからです。foo/foo.texbar/bar.tex
私は Makefiles にかなり慣れていません (私のニーズに合わせて他の人を変更することに限定された経験)、絶対に基本的なもの以上のことをしたことがないので、誰かが私に役立つポインターを与えることができれば (私は本当に知りません) Makefile のドキュメントで検索する単語 - 有望に見えたのは%とだけでし$*た。これは機能しませんでした)。