我已經寫了下面的Makefile
:重寫取決於的類型的Makefile變量使
INTERACTION=nonstopmode
all:
make read.pdf > /dev/null
make clean > /dev/null
diagnostic:
INTERACTION=batchmode
make read.pdf
make clean
%.pdf: %.tex biblio.bib
bash makepdf.sh $(INTERACTION) $<
clean:
rm -f *.aux *.log *.bbl *.bak *.blg *.toc *.out *.glg *.glo *.gls *.ist *~ *.*~* *.backup
的Makefile
提供兩種模式:簡單的make文件,該文件不輸出錯誤和警告信息和診斷模式,以便pdflatex
與用戶進行交互以找到問題。
的makepdf.sh
如下所示:
filename=$(basename $2)
filename="${filename%.*}"
pdflatex -interaction=$1 $2
makeglossaries "$filename" 2
makeindex "$filename" 2
pdflatex -interaction=$1 $2
echo $1
不管事實make
或make diagnostic
是否被調用,程序總是在nonstopmode
運行。一個Makefile
變量不能被覆蓋?如果是這樣,這個問題怎麼解決?否則,這段代碼有什麼問題?