我可以通过运行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