我希望学习如何在我的 makefile 目标的先决条件中重复使用 % 符号,假设目标是
具体来说,我目前拥有以下 makefile:
我希望修改我的Makefile文件,使其在制作
我尝试了以下内容(使用'% /%.tex'指定查找
然而,这会产生以下结果:
所以
如果我将
我对Makefile相当新(经验仅限于修改其他人的Makefile以满足我的需求),从未做过超过绝对基本的Makefile,因此如果有人能给我一个指针,那将有所帮助(我真的不知道在Makefile文档中搜索哪些单词-唯一看起来有希望的是
X.pdf
,先决条件位于 X/X.tex
中。具体来说,我目前拥有以下 makefile:
all: foo.pdf
%.pdf: %.tex
pdflatex $*.tex
我还有一个名为foo.tex
的文件,当我输入make
时,它会通过运行pdflatex foo.tex
来生成foo.pdf
。
现在由于各种原因我无法控制,我的目录结构已经发生了改变:
my_dir
|- Makefile
|- foo
|- foo.tex
我希望修改我的Makefile文件,使其在制作
X.pdf
时查找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
,因为将来我会执行all: foo.pdf bar.pdf
,并且它应该查找foo/foo.tex
和bar/bar.tex
。我对Makefile相当新(经验仅限于修改其他人的Makefile以满足我的需求),从未做过超过绝对基本的Makefile,因此如果有人能给我一个指针,那将有所帮助(我真的不知道在Makefile文档中搜索哪些单词-唯一看起来有希望的是
%
和$*
,但我无法让它们工作)。