# Makefile for ThuThesis # Compiling method: latexmk/xelatex/pdflatex/dvipdfmx METHOD = latexmk # Set opts for latexmk if you use it LATEXMKOPTS = -xelatex # Basename of thesis THESISMAIN = main # Basename of shuji SHUJIMAIN = shuji ifeq ($(MAKE),) override MAKE = make endif ifeq ($(TEXI2DVI),) override TEXI2DVI = texi2dvi endif PACKAGE=thuthesis SOURCES=$(PACKAGE).ins $(PACKAGE).dtx THESISCONTENTS=$(THESISMAIN).tex data/*.tex $(EPS) # NOTE: update this to reflect your local file types. EPS=$(wildcard figures/*.eps) BIBFILE=ref/*.bib SHUJICONTENTS=$(SHUJIMAIN).tex CLSFILES=dtx-style.sty $(PACKAGE).cls $(PACKAGE).cfg # make deletion work on Windows ifdef SystemRoot RM = del /Q SLASH = \\ else RM = rm -f SLASH = / endif .PHONY: all clean distclean dist thesis viewthesis shuji viewshuji doc viewdoc cls FORCE_MAKE all: doc thesis shuji ###### generate cls/cfg cls: $(CLSFILES) $(CLSFILES): $(SOURCES) latex $(PACKAGE).ins ###### for doc viewdoc: doc open $(PACKAGE).pdf doc: $(PACKAGE).pdf ifeq ($(METHOD),xelatex) $(PACKAGE).pdf: $(CLSFILES) xelatex $(PACKAGE).dtx makeindex -s gind.ist -o $(PACKAGE).ind $(PACKAGE).idx makeindex -s gglo.ist -o $(PACKAGE).gls $(PACKAGE).glo xelatex $(PACKAGE).dtx xelatex $(PACKAGE).dtx else ifeq ($(METHOD),pdflatex) $(PACKAGE).pdf: $(CLSFILES) pdflatex $(PACKAGE).dtx makeindex -s gind.ist -o $(PACKAGE).ind $(PACKAGE).idx makeindex -s gglo.ist -o $(PACKAGE).gls $(PACKAGE).glo pdflatex $(PACKAGE).dtx pdflatex $(PACKAGE).dtx else ifeq ($(METHOD),latexmk) $(PACKAGE).pdf: $(CLSFILES) FORCE_MAKE latexmk $(LATEXMKOPTS) $(PACKAGE).dtx else $(PACKAGE).dvi: $(CLSFILES) latex $(PACKAGE).dtx makeindex -s gind.ist -o $(PACKAGE).ind $(PACKAGE).idx makeindex -s gglo.ist -o $(PACKAGE).gls $(PACKAGE).glo latex $(PACKAGE).dtx latex $(PACKAGE).dtx $(PACKAGE).pdf: $(PACKAGE).dvi latex $(PACKAGE).dtx dvipdfmx $(PACKAGE).dvi endif ###### for thesis viewthesis: thesis open $(THESISMAIN).pdf thesis: $(THESISMAIN).pdf ifeq ($(METHOD),xelatex) $(THESISMAIN).pdf: $(CLSFILES) $(THESISCONTENTS) $(THESISMAIN).bbl xelatex $(THESISMAIN).tex xelatex $(THESISMAIN).tex $(THESISMAIN).bbl: $(BIBFILE) xelatex $(THESISMAIN).tex -bibtex $(THESISMAIN) $(RM) $(THESISMAIN).pdf else ifeq ($(METHOD),pdflatex) $(THESISMAIN).pdf: $(CLSFILES) $(THESISCONTENTS) $(THESISMAIN).bbl pdflatex $(THESISMAIN).tex pdflatex $(THESISMAIN).tex $(THESISMAIN).bbl: $(BIBFILE) pdflatex $(THESISMAIN).tex -bibtex $(THESISMAIN) $(RM) $(THESISMAIN).pdf else ifeq ($(METHOD),latexmk) $(THESISMAIN).pdf: $(CLSFILES) FORCE_MAKE latexmk $(LATEXMKOPTS) $(THESISMAIN) else $(THESISMAIN).pdf: $(THESISMAIN).dvi latex $(THESISMAIN).tex dvipdfmx $(THESISMAIN).dvi $(THESISMAIN).dvi: $(CLSFILES) $(THESISCONTENTS) $(THESISMAIN).bbl $(TEXI2DVI) $(THESISMAIN).tex $(THESISMAIN).bbl: $(BIBFILE) $(TEXI2DVI) $(THESISMAIN).tex -bibtex $(THESISMAIN) endif ###### for shuji viewshuji: shuji open $(SHUJIMAIN).pdf shuji: $(SHUJIMAIN).pdf ifeq ($(METHOD),xelatex) $(SHUJIMAIN).pdf: $(CLSFILES) $(SHUJICONTENTS) xelatex $(SHUJIMAIN).tex else ifeq ($(METHOD),pdflatex) $(SHUJIMAIN).pdf: $(CLSFILES) $(SHUJICONTENTS) pdflatex $(SHUJIMAIN).tex else ifeq ($(METHOD),latexmk) $(SHUJIMAIN).pdf: $(CLSFILES) FORCE_MAKE latexmk $(LATEXMKOPTS) $(SHUJIMAIN) else $(SHUJIMAIN).dvi: $(CLSFILES) $(SHUJICONTENTS) $(TEXI2DVI) $(SHUJIMAIN).tex $(SHUJIMAIN).pdf: $(SHUJIMAIN).dvi latex $(SHUJIMAIN).tex dvipdfmx $(SHUJIMAIN).dvi endif clean: latexmk -c $(PACKAGE).dtx $(THESISMAIN) $(SHUJIMAIN) -@$(RM) $(PACKAGE).dvi $(THESISMAIN).dvi $(SHUJIMAIN).dvi -@$(RM) *~ cleanall: clean -@$(RM) $(PACKAGE).pdf $(THESISMAIN).pdf $(SHUJIMAIN).pdf distclean: cleanall -@$(RM) $(CLSFILES) -@$(RM) -r dist dist: @if [ -z "$(version)" ]; then \ echo "Usage: make dist version=[x.y.z | ctan]"; \ else \ gulp build --version=$(version); \ fi