Makefile for <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span class="E">E</span>X</span></span>
Update:TeXLive doesn't have it, but it have a tool texi2dvi with the same function (at least it also support -b and -p parameters).
You don't know how many times you should run the command latex, so it's hard to write a Makefile for LATEX
But I've found texify today. It can automatically calls the commands needed including latex/pdflatex, bibtex, etc., with needed times, and ships with almost all tex distributions.
Here's an example for my "Makefile" file (Note: don't forget to define RMRF, ACROREAD & PREVIEW for your environment):
LATEX = texify PARAMS = -b DVIPDF = dvipdfmx MAINNAME = myarticle SRCS = $(MAINNAME).tex \ chapter1.tex \ chapter2.tex DVIFILE = $(MAINNAME).dvi PDFFILE = $(MAINNAME).pdf all: $(PDFFILE) $(PDFFILE): $(DVIFILE) $(DVIPDF) $(DVIFILE) $(DVIFILE): $(SRCS) $(LATEX) $(PARAMS) $(MAINNAME).tex preview: $(DVIFILE) $(PREVIEW) $(DVIFILE) read: $(PDFFILE) $(ACROREAD) $(PDFFILE) clean: $(RMRF) *.toc *.out *.aux *.log *.bak cleanall: clean $(RMRF) $(PDFFILE) $(DVIFILE) .PHONY: clean cleanall all
For pdflatex files, beamer slides for example, use texify -p, here's the Makefile:
LATEX = texify -p PARAMS = -b MAINNAME = myarticle SRCS = $(MAINNAME).tex \ chapter1.tex \ chapter2.tex PDFFILE = $(MAINNAME).pdf all: $(PDFFILE) $(PDFFILE): $(SRCS) $(LATEX) $(PARAMS) $(MAINNAME).tex read: $(PDFFILE) $(ACROREAD) $(PDFFILE) clean: $(RMRF) *.toc *.out *.aux *.log *.bak cleanall: clean $(RMRF) $(PDFFILE) $(DVIFILE) .PHONY: clean cleanall all
If you need gbk2uni for Chinese support, change the line
$(LATEX) $(PARAMS) $(MAINNAME).tex
into (Note: don't forget to define GBK2UNI):
$(LATEX) $(PARAMS) $(MAINNAME).tex $(GBK2UNI) $(MAINNAME).out $(LATEX) $(PARAMS) $(MAINNAME).tex
That's it!