make + tex:找不到文件

时间:2013-05-29 03:56:47

标签: makefile tex

我有一个包含以下文件的目录

➜  hrrep git:(master) ✗ ls -l
total 1000
drwxrwxrwx  22 zmjones  staff    748 May 28 23:28 data
-rw-rw-rw-   1 zmjones  staff   7180 May 20 16:17 data.R
drwxrwxrwx   9 zmjones  staff    306 May 28 23:38 figures
-rw-r--r--   1 zmjones  staff  85841 May 28 23:23 hill_jones_hr.bib
-rw-r--r--   1 zmjones  staff  29193 May 28 22:23 hill_jones_hr.tex
-rw-r--r--   1 zmjones  staff    572 May 28 23:46 makefile
-rw-rw-rw-   1 zmjones  staff   9588 May 28 22:47 models.R
drwxrwxrwx   3 zmjones  staff    102 May 28 23:28 papers
drwxrwxrwx   9 zmjones  staff    306 May 28 23:28 tex
-rw-r--r--   1 zmjones  staff   1483 May 20 12:58 un_data.py

这些文件由makefile(使用GNU Make 3.81)

描述
all: ./data/cat_un_data.csv ./data/rep.csv ./figures/*.png ./hj-hr.pdf

./data/cat_un_data.csv: un_data.py #refreshing one will refresh all
        python un_data.py

./data/rep.csv: data.R ./data/cat_un_data.csv
        R CMD BATCH --no-save --no-restore data.R

./figures/*.png: models.R ./data/rep.csv
        R CMD BATCH --no-save --no-restore models.R

TEXMCD := pdflatex -interaction=batchmode

hill_jones_hr.pdf: hill_jones_hr.tex ./figures/*.png
    $(TEXCMD) $<
    ]bibtex *.aux
    $(TEXCMD) $<
    $(TEXCMD) $<
    find . | egrep ".*((\.(aux|log|blg|bbl|out|Rout|Rhistory|DS_Store))|~)$$" | xargs rm
    rm -rf auto

makefile似乎工作正常,直到它到达hll_jones_hr.pdf目标,然后失败并出现错误:

hill_jones_hr.tex
make: hill_jones_hr.tex: No such file or directory
make: *** [hill_jones_hr.pdf] Error 1

我不明白问题是什么。当我手动执行pdflatexbibtex时,文档编译正常。我尝试添加忽略错误标志无济于事。我认为这是我正在犯的一些愚蠢的错误。如果这有什么不同,这个文件夹在Dropbox中。我还尝试将./前缀添加到.tex文件和.pdf目标中;错误是一样的。

2 个答案:

答案 0 :(得分:3)

问题是没有定义$(TEXCMD)变量,所以你的命令是:

$(TEXCMD) $<

正在扩展到$<或只是文件名,这本身并不是合法的命令。

答案 1 :(得分:0)

使用./hill_jones_hr.tex代替hill_jones_hr.tex,然后重试。