ターゲットがX.pdf
であり、プリレクサイトがX/X.tex
であると仮定して、メイクファイルターゲットのプリクエイトで%記号を再利用する方法を知りたいと思います。詳述するとサブディレクトリ名としてMakefile prerequesiteを再利用パーセント
、私は現在のようなので、メイクファイルを持っている:
all: foo.pdf
%.pdf: %.tex
pdflatex $*.tex
私はさらにファイルfoo.tex
を持っている、と私はmake
を入力すると、それはpdflatex foo.tex
を実行してfoo.pdf
を行います。私は制御することはできません様々な理由のために今
は、私のディレクトリ構造が変更されました:
my_dir
|- Makefile
|- foo
|- foo.tex
私は、ファイル
X/X.tex
ことが
X.pdf
を作るしようとすると、それが見えるように、私のMakefileを修正したいと思います
。
私は(私は入れてみましたfoo/foo.tex
を探すために、それを伝えるために '%/%をTEX。')以下を試してみました:
all: foo.pdf
%.pdf: %/%.tex
pdflatex $*/$*.tex
しかし、この利回り:
No rule to make target `foo.pdf', needed by `all'. Stop.
がそう%.pdf: $*/$*.tex
。
私はfoo/%.tex
に%/%.tex
を変更した場合は期待どおりに動作しますが、将来的には、私はall: foo.pdf bar.pdf
をやると、それはfoo/foo.tex
とbar/bar.tex
を探す必要がありますので、私は、そこにハードコードfoo
にしたくありません。
私はMakefile(自分のニーズに他の人を変更することに限られています)にはかなり新しく、誰かが私に助けとなるポインタを与えることができるなら絶対的に基本的なものを行ったことはありません有望なものは%
と$*
だったが、私はうまく動作しなかった。)
これは、これよりも困難です。ワイルドカードを扱うことは、Makeが著しく悪いことの一つです。それはできますが、それは醜いので、@ wisentの解決策があなたの目的には十分であれば、おそらくそれに付随するべきです。 – Beta