是否有一种方法来定义全局Makefile(隐式)规则?



我可以通过运行make test来编译c程序test.c,即使目录中没有Makefile。这是因为make有内置的隐式规则。

我想对LaTeX文件做同样的事情。我想在没有Makefile的目录下输入make test.pdf, make将搜索test.tex并构建pdf。

我已经知道如何定义模式规则。我想知道是否有可能定义全局模式规则,这样我就不需要将Makefile复制到我有Tex文件的任何地方。

您可以定义名为MAKEFILES的环境变量,它将隐式列出包含的MAKEFILES。这将做你想做的,例如:

$ ls
foo.tex  implicit.mk
$ make foo.pdf
make: *** No rule to make target 'foo.pdf'.  Stop.
$ cat implicit.mk
%.pdf: %.tex
echo Make $@ from $<
$ export MAKEFILES=implicit.mk
$ make -s foo.pdf
Make foo.pdf from foo.tex