555
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

303 lines
11 KiB

# LaTeX Makefile for dvi, ps, and pdf file creation.
# MAGMA - Laboratoire Leibniz 13-12-2004
# The LATEX variable contains the latex command to use, using LATEXFLAGS
# you can specify additional flags to pass.
TEXPATH = /usr/local/texlive/latest/bin/universal-darwin
TEXPATH = $(dir $(shell which $(LATEX)))
LATEX = pdflatex
LATEXFLAGS= -interaction=scrollmode
PDFLATEX = pdflatex
#PDFLATEXFLAGS= --jobname=$(OUTFILE)
PDFLATEXFLAGS=
MAKEINDEX = makeindex
# Specifies the bibliography generation program.
BIBTEX = biber
BIBTEXFLAGS=
# These options are used for generating PostScript files from DVI files.
DVIPS = dvips
DVIPSFLAGSPDF = -P pdf
PS2PDF = ps2pdf
PS2PDFFLAGS =
# Commands for images convertion
FIG2DEV = /usr/bin/fig2dev
GIFTOPNM = giftopnm
PNMTOPNG = pnmtopng
# Useful commands
EGREP = egrep
ECHO = echo
# The variable USEPDFLATEX must equal 1 to use pdflatex for generating pdf file.
USEPDFLATEX = 1
# Tex directory
TEX_DIR = .
# Figures directory for fig to eps or pdf convertion
FIGURE_DIR = figures
# Contain those LaTeX input files which will be passed directly to LaTeX, i.e.
# no include files.
MAIN_TEX_FILES= Main.tex
# Contains include tex file
TEX_FILES= $(wildcard *.tex) \
$(wildcard ./$(TEX_DIR)/*.tex)
# Contains the names of all DVI files to be generated when using the target<.dvi>
# target. Defaults to all files from $(MAIN_TEX_FILES) with their
# extensions changed to target<.dvi>.
DVI_FILES= $(MAIN_TEX_FILES:.tex=.dvi)
# Contains the names of all PostScript resp. PDF files to be generated when
# using the target<.ps> or target<.pdf>.
PS_FILES= $(DVI_FILES:.dvi=.ps)
CMR_FILES= $(DVI_FILES:.dvi=_CMR.pdf)
PDF_FILES= $(DVI_FILES:.dvi=.pdf)
# Contains the names of all eps resp. eps images to be generated when
# using target<.dvi> or target<.ps> or target<.pdf>.
EPSFIGURES = $(patsubst %.fig,%.eps,$(wildcard ./$(FIGURE_DIR)/*.fig)) $(patsubst %.tex,%.eps,$(wildcard ./$(FIGURE_DIR)/*.tex))
PDFFIGURES = $(patsubst %.fig,%.pdf,$(wildcard ./$(FIGURE_DIR)/*.fig))
TODAY= $(shell date +"%Y%m%d_%H%M")
TODAY= $(shell date +"%Y%m%d")
OUTFILE=$(shell basename $(CURDIR))_$(TODAY)
# Contains the names of all configuration and styles to be linked
# from the configuration directory
LINKS_FILES = bibliography.bib MySetting.tex latex8.bst latex8.sty latex8_unsrt.bst myColor.sty ntu_techrpt_cover.sty mycolor.cfg coverart.eps svn-multi.sty prelim2e.sty ieeeconf.cls IEEEtran.cls
#LINKS_FILES = mycolor.cfg myColor.sty
LN = ln -sf
HOME = /Users/cshih
# Target definition
#all: $(EPSFIGURES) $(PDFFIGURE)
all: link $(EPSFIGURES) $(PDFFIGURE)
@$(ECHO) "Home directory is $(HOME)"
@$(ECHO) "----------------------------------------------------------------"
@$(ECHO) "EPSFIGURES: $(EPSFIGURES)."
@$(ECHO) "PDFFIGURES: $(PDFFIGURES)."
@$(ECHO) "OUTFILE: $(OUTFILE)."
@$(ECHO) "----------------------------------------------------------------"
# $(MAKE) $(DVI_FILES) $(PS_FILES)
# ./svnlog-gen.sh http://newslabx.csie.ntu.edu.tw/svn/R_Publications/SOCA12 log.tex
# $(MAKE) $(DVI_FILES) $(PS_FILES) $(PDF_FILES)
$(MAKE) $(DVI_FILES) $(PDF_FILES)
%.dvi %.log %.aux %.toc : $(EPSFIGURES) $(TEX_FILES)
$(MAKE) $<
@$(ECHO) "----------------------------------------------------------------"
@$(ECHO) "Running $(LATEX) $* for the first time"
@$(ECHO) "----------------------------------------------------------------"
$(TEXPATH)/$(LATEX) $(LsATEXFLAGS) $* $(LATEXSTDOUT)
# Path beamer to be sure to have navigation bar
@if $(EGREP) -q "No file .*nav" $*.log && $(EGREP) -q "beamer" $*.log; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Running $(LATEX) again to include navigation bar"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT); \
fi; \
# end beamer
@if $(EGREP) -q "Rerun to get .*references right" $*.log; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Running $(LATEX) again to get references right"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(LATEX) $(LATEXFLAGS) $* $(LATEXSTDOUT) ; \
fi
@if $(EGREP) -q '\\bib(data|cite)' $*.aux; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Making Bibliography using $(BIBTEX)"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(BIBTEX) $(BIBTEXFLAGS) $*; \
if [ -f $*.bbl ]; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Running $(LATEX) again to include bibliography"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(LATEX) $(LATEXFLAGS) $* $(LATEXSTDOUT); \
fi; \
fi
@-count=5;\
while $(EGREP) -q "Rerun to get .*(references|citations) (right|correct)" $*.log && [ $$count -gt 0 ]; do \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Rerunning $(LATEX), max. $$count times left"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(LATEX) $(LATEXFLAGS) $* $(LATEXSTDOUT); \
count=`expr $$count - 1`; \
done
# Generate pdf file with pdflatex
ifdef USEPDFLATEX
%.pdf : $(TEX_FILES)
$(MAKE) $<
@$(ECHO) "----------------------------------------------------------------"
@$(ECHO) "Running $(PDFLATEX) for the first time..."
@$(ECHO) "----------------------------------------------------------------"
$(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT)
# Path beamer to be sure to have navigation bar
@if $(EGREP) -q "No file .*nav" $*.log && $(EGREP) -q "beamer" $*.log; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Running $(PDFLATEX) again to include navigation bar"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT); \
fi; \
# end beamer
@if $(EGREP) -q "Rerun to get .*references right" $*.log; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Running $(PDFLATEX) again to get references right"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT) ; \
fi
@if $(EGREP) -q '\\bib(data|cite)' $*.aux; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Making Bibliography using $(BIBTEX)"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(BIBTEX) $(BIBTEXFLAGS) $*; \
if [ -f $*.bbl ]; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Running $(PDFLATEX) again to include bibliography"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT); \
fi; \
fi
@-count=5; \
while $(EGREP) -q "Rerun to get .*(references|citations) (right|correct)" $*.log && [ $$count -gt 0 ]; do \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Rerunning $(PDFLATEX), max. $$count times left"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT); \
count=`expr $$count - 1`; \
done; \
cp -f $(PDF_FILES) ~/Dropbox/2Reads/$(OUTFILE).pdf; \
$(ECHO) "-------- DONE --------"
# Generate pdf file with dvi and dvips
else
%.pdf : %.ps
@if [ -s $< ] ; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Generating PDF file $@"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(PS2PDF) $(PS2PDFFLAGS) $< $@; \
else \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Skipped creating $@: $< does not exist or is empty"; \
$(ECHO) "----------------------------------------------------------------"; \
fi
endif
%.ps : %.dvi
@if [ -s $< ] ; then \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Generating PS file $@"; \
$(ECHO) "----------------------------------------------------------------"; \
$(TEXPATH)/$(DVIPS) $(DVIPSFLAGSPDF) $< -o $*.ps ; \
else \
$(ECHO) "----------------------------------------------------------------"; \
$(ECHO) "Skipped creating $@: $< does not exist or is empty"; \
$(ECHO) "----------------------------------------------------------------"; \
fi
cmr: $(PDF_FILES)
@$(ECHO) "----------------------------------------------------------------"
@$(ECHO) "Make CMR Ready for IEEE"
@$(ECHO) "----------------------------------------------------------------"
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dEmbedAllFonts=true -dSubsetFonts=true -sOutputFile=$(CMR_FILES) -f $(PDF_FILES)
# ps2pdf14 -dPDFSETTINGS=/prepress $(PDF_FILES) $(CMR_FILES)
cleanepsfig:
-rm -f $(FIGURE_DIR)/*.eps $(FIGURE_DIR)/*.bak
cleanpdffig:
-rm -f $(FIGURE_DIR)/*.pdf $(FIGURE_DIR)/*.bak
#cleanfig: cleanepsfig cleanpdffig
cleanfig:
-rm -f $(PDFFIGURES) $(EPSFIGURES)
cleanbiber:
rm -rf `biber --cache`
clean: cleanfig cleanbiber
rsync -Cuavz $(PDF_FILES) ~/Dropbox/2Reads/$(OUTFILE).pdf
-rm -f $(TEX_DIR)/*.aux
-rm -f *.dvi *.ps *.pdf
-rm -f *.aux *.log *.toc *.out
-rm -f *.lof *.lot *.loa *.lol
-rm -f *.nav *.snm *.vrb
-rm -f *.idx *.ind *.ilg *.glo *.gls *.bbl *.blg
-rm -f $(LINKS_FILES)
%.eps : %.fig
@$(ECHO) "----------------------------------------------------------------"
@$(ECHO) "Convert $*.fig to $*.eps and $*.pdf"
@$(ECHO) "----------------------------------------------------------------"
$(FIG2DEV) -L eps $*.fig $*.eps
@if [ -f $*.pdf ]; then \
$(ECHO) "$*.pdf is there"; \
rm -f $*.pdf; \
fi
epstopdf $*.eps
%.pdf : %.fig %.eps
@$(ECHO) "----------------------------------------------------------------"
@$(ECHO) "Convert $*.eps to $*.pdf"
@$(ECHO) "----------------------------------------------------------------"
if [ -f $*.eps ]; then \
epstopdf $*.eps \
else \
$(FIG2DEV) -L pdf -P $*.fig $*.pdf \
fi
help:
@$(ECHO) "Usage: make <target>[.dvi,.ps,.pdf]"
@$(ECHO) "Options:"
@$(ECHO) " - make help display this message"
@$(ECHO) " - make clean remove all intermediate generated file"
@$(ECHO) " - make cleanfig remove all intermediate figures"
link: $(LINKS_FILES)
bibliography.bib:
$(LN) $(HOME)/notes/bibDB/bibliography.bib .
MySetting.tex:
$(LN) $(HOME)/notes/tex_config/MySetting.tex .
latex8.bst:
$(LN) $(HOME)/notes/tex_config/latex8.bst .
latex8.sty:
$(LN) $(HOME)/notes/tex_config/latex8.sty .
latex8_unsrt.bst:
$(LN) $(HOME)/notes/tex_config/latex8_unsrt.bst .
myColor.sty:
$(LN) $(HOME)/notes/tex_config/myColor.sty .
svn-multi.sty:
$(LN) $(HOME)/notes/tex_config/svn-multi.sty .
prelim2e.sty:
$(LN) $(HOME)/notes/tex_config/prelim2e.sty .
mycolor.cfg:
$(LN) $(HOME)/notes/tex_config/mycolor.cfg .
ntu_techrpt_cover.sty:
$(LN) $(HOME)/notes/tex_config/ntu_techrpt_cover.sty .
coverart.eps:
$(LN) $(HOME)/notes/tex_config/figures/coverart.eps ./figures/.
ieeeconf.cls:
$(LN) $(HOME)/notes/tex_config/ieeeconf.cls .
IEEEtran.cls:
$(LN) $(HOME)/notes/tex_config/IEEEtran.cls .