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.

302 lines
11 KiB

  1. # LaTeX Makefile for dvi, ps, and pdf file creation.
  2. # MAGMA - Laboratoire Leibniz 13-12-2004
  3. # The LATEX variable contains the latex command to use, using LATEXFLAGS
  4. # you can specify additional flags to pass.
  5. TEXPATH = /usr/local/texlive/latest/bin/universal-darwin
  6. LATEX = pdflatex
  7. LATEXFLAGS= -interaction=scrollmode
  8. PDFLATEX = pdflatex
  9. #PDFLATEXFLAGS= --jobname=$(OUTFILE)
  10. PDFLATEXFLAGS=
  11. MAKEINDEX = makeindex
  12. # Specifies the bibliography generation program.
  13. BIBTEX = biber
  14. BIBTEXFLAGS=
  15. # These options are used for generating PostScript files from DVI files.
  16. DVIPS = dvips
  17. DVIPSFLAGSPDF = -P pdf
  18. PS2PDF = ps2pdf
  19. PS2PDFFLAGS =
  20. # Commands for images convertion
  21. FIG2DEV = /usr/bin/fig2dev
  22. GIFTOPNM = giftopnm
  23. PNMTOPNG = pnmtopng
  24. # Useful commands
  25. EGREP = egrep
  26. ECHO = echo
  27. # The variable USEPDFLATEX must equal 1 to use pdflatex for generating pdf file.
  28. USEPDFLATEX = 1
  29. # Tex directory
  30. TEX_DIR = .
  31. # Figures directory for fig to eps or pdf convertion
  32. FIGURE_DIR = figures
  33. # Contain those LaTeX input files which will be passed directly to LaTeX, i.e.
  34. # no include files.
  35. MAIN_TEX_FILES= Main.tex
  36. # Contains include tex file
  37. TEX_FILES= $(wildcard *.tex) \
  38. $(wildcard ./$(TEX_DIR)/*.tex)
  39. # Contains the names of all DVI files to be generated when using the target<.dvi>
  40. # target. Defaults to all files from $(MAIN_TEX_FILES) with their
  41. # extensions changed to target<.dvi>.
  42. DVI_FILES= $(MAIN_TEX_FILES:.tex=.dvi)
  43. # Contains the names of all PostScript resp. PDF files to be generated when
  44. # using the target<.ps> or target<.pdf>.
  45. PS_FILES= $(DVI_FILES:.dvi=.ps)
  46. CMR_FILES= $(DVI_FILES:.dvi=_CMR.pdf)
  47. PDF_FILES= $(DVI_FILES:.dvi=.pdf)
  48. # Contains the names of all eps resp. eps images to be generated when
  49. # using target<.dvi> or target<.ps> or target<.pdf>.
  50. EPSFIGURES = $(patsubst %.fig,%.eps,$(wildcard ./$(FIGURE_DIR)/*.fig)) $(patsubst %.tex,%.eps,$(wildcard ./$(FIGURE_DIR)/*.tex))
  51. PDFFIGURES = $(patsubst %.fig,%.pdf,$(wildcard ./$(FIGURE_DIR)/*.fig))
  52. TODAY= $(shell date +"%Y%m%d_%H%M")
  53. TODAY= $(shell date +"%Y%m%d")
  54. OUTFILE=$(shell basename $(CURDIR))_$(TODAY)
  55. # Contains the names of all configuration and styles to be linked
  56. # from the configuration directory
  57. 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
  58. #LINKS_FILES = mycolor.cfg myColor.sty
  59. LN = ln -sf
  60. HOME = /Users/cshih
  61. # Target definition
  62. #all: $(EPSFIGURES) $(PDFFIGURE)
  63. all: link $(EPSFIGURES) $(PDFFIGURE)
  64. @$(ECHO) "Home directory is $(HOME)"
  65. @$(ECHO) "----------------------------------------------------------------"
  66. @$(ECHO) "EPSFIGURES: $(EPSFIGURES)."
  67. @$(ECHO) "PDFFIGURES: $(PDFFIGURES)."
  68. @$(ECHO) "OUTFILE: $(OUTFILE)."
  69. @$(ECHO) "----------------------------------------------------------------"
  70. # $(MAKE) $(DVI_FILES) $(PS_FILES)
  71. # ./svnlog-gen.sh http://newslabx.csie.ntu.edu.tw/svn/R_Publications/SOCA12 log.tex
  72. # $(MAKE) $(DVI_FILES) $(PS_FILES) $(PDF_FILES)
  73. $(MAKE) $(DVI_FILES) $(PDF_FILES)
  74. %.dvi %.log %.aux %.toc : $(EPSFIGURES) $(TEX_FILES)
  75. $(MAKE) $<
  76. @$(ECHO) "----------------------------------------------------------------"
  77. @$(ECHO) "Running $(LATEX) $* for the first time"
  78. @$(ECHO) "----------------------------------------------------------------"
  79. $(TEXPATH)/$(LATEX) $(LsATEXFLAGS) $* $(LATEXSTDOUT)
  80. # Path beamer to be sure to have navigation bar
  81. @if $(EGREP) -q "No file .*nav" $*.log && $(EGREP) -q "beamer" $*.log; then \
  82. $(ECHO) "----------------------------------------------------------------"; \
  83. $(ECHO) "Running $(LATEX) again to include navigation bar"; \
  84. $(ECHO) "----------------------------------------------------------------"; \
  85. $(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT); \
  86. fi; \
  87. # end beamer
  88. @if $(EGREP) -q "Rerun to get .*references right" $*.log; then \
  89. $(ECHO) "----------------------------------------------------------------"; \
  90. $(ECHO) "Running $(LATEX) again to get references right"; \
  91. $(ECHO) "----------------------------------------------------------------"; \
  92. $(TEXPATH)/$(LATEX) $(LATEXFLAGS) $* $(LATEXSTDOUT) ; \
  93. fi
  94. @if $(EGREP) -q '\\bib(data|cite)' $*.aux; then \
  95. $(ECHO) "----------------------------------------------------------------"; \
  96. $(ECHO) "Making Bibliography using $(BIBTEX)"; \
  97. $(ECHO) "----------------------------------------------------------------"; \
  98. $(TEXPATH)/$(BIBTEX) $(BIBTEXFLAGS) $*; \
  99. if [ -f $*.bbl ]; then \
  100. $(ECHO) "----------------------------------------------------------------"; \
  101. $(ECHO) "Running $(LATEX) again to include bibliography"; \
  102. $(ECHO) "----------------------------------------------------------------"; \
  103. $(TEXPATH)/$(LATEX) $(LATEXFLAGS) $* $(LATEXSTDOUT); \
  104. fi; \
  105. fi
  106. @-count=5;\
  107. while $(EGREP) -q "Rerun to get .*(references|citations) (right|correct)" $*.log && [ $$count -gt 0 ]; do \
  108. $(ECHO) "----------------------------------------------------------------"; \
  109. $(ECHO) "Rerunning $(LATEX), max. $$count times left"; \
  110. $(ECHO) "----------------------------------------------------------------"; \
  111. $(TEXPATH)/$(LATEX) $(LATEXFLAGS) $* $(LATEXSTDOUT); \
  112. count=`expr $$count - 1`; \
  113. done
  114. # Generate pdf file with pdflatex
  115. ifdef USEPDFLATEX
  116. %.pdf : $(TEX_FILES)
  117. $(MAKE) $<
  118. @$(ECHO) "----------------------------------------------------------------"
  119. @$(ECHO) "Running $(PDFLATEX) for the first time..."
  120. @$(ECHO) "----------------------------------------------------------------"
  121. $(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT)
  122. # Path beamer to be sure to have navigation bar
  123. @if $(EGREP) -q "No file .*nav" $*.log && $(EGREP) -q "beamer" $*.log; then \
  124. $(ECHO) "----------------------------------------------------------------"; \
  125. $(ECHO) "Running $(PDFLATEX) again to include navigation bar"; \
  126. $(ECHO) "----------------------------------------------------------------"; \
  127. $(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT); \
  128. fi; \
  129. # end beamer
  130. @if $(EGREP) -q "Rerun to get .*references right" $*.log; then \
  131. $(ECHO) "----------------------------------------------------------------"; \
  132. $(ECHO) "Running $(PDFLATEX) again to get references right"; \
  133. $(ECHO) "----------------------------------------------------------------"; \
  134. $(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT) ; \
  135. fi
  136. @if $(EGREP) -q '\\bib(data|cite)' $*.aux; then \
  137. $(ECHO) "----------------------------------------------------------------"; \
  138. $(ECHO) "Making Bibliography using $(BIBTEX)"; \
  139. $(ECHO) "----------------------------------------------------------------"; \
  140. $(TEXPATH)/$(BIBTEX) $(BIBTEXFLAGS) $*; \
  141. if [ -f $*.bbl ]; then \
  142. $(ECHO) "----------------------------------------------------------------"; \
  143. $(ECHO) "Running $(PDFLATEX) again to include bibliography"; \
  144. $(ECHO) "----------------------------------------------------------------"; \
  145. $(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT); \
  146. fi; \
  147. fi
  148. @-count=5; \
  149. while $(EGREP) -q "Rerun to get .*(references|citations) (right|correct)" $*.log && [ $$count -gt 0 ]; do \
  150. $(ECHO) "----------------------------------------------------------------"; \
  151. $(ECHO) "Rerunning $(PDFLATEX), max. $$count times left"; \
  152. $(ECHO) "----------------------------------------------------------------"; \
  153. $(TEXPATH)/$(PDFLATEX) $(PDFLATEXFLAGS) $* $(LATEXSTDOUT); \
  154. count=`expr $$count - 1`; \
  155. done; \
  156. cp -f $(PDF_FILES) ~/Dropbox/2Reads/$(OUTFILE).pdf; \
  157. $(ECHO) "-------- DONE --------"
  158. # Generate pdf file with dvi and dvips
  159. else
  160. %.pdf : %.ps
  161. @if [ -s $< ] ; then \
  162. $(ECHO) "----------------------------------------------------------------"; \
  163. $(ECHO) "Generating PDF file $@"; \
  164. $(ECHO) "----------------------------------------------------------------"; \
  165. $(TEXPATH)/$(PS2PDF) $(PS2PDFFLAGS) $< $@; \
  166. else \
  167. $(ECHO) "----------------------------------------------------------------"; \
  168. $(ECHO) "Skipped creating $@: $< does not exist or is empty"; \
  169. $(ECHO) "----------------------------------------------------------------"; \
  170. fi
  171. endif
  172. %.ps : %.dvi
  173. @if [ -s $< ] ; then \
  174. $(ECHO) "----------------------------------------------------------------"; \
  175. $(ECHO) "Generating PS file $@"; \
  176. $(ECHO) "----------------------------------------------------------------"; \
  177. $(TEXPATH)/$(DVIPS) $(DVIPSFLAGSPDF) $< -o $*.ps ; \
  178. else \
  179. $(ECHO) "----------------------------------------------------------------"; \
  180. $(ECHO) "Skipped creating $@: $< does not exist or is empty"; \
  181. $(ECHO) "----------------------------------------------------------------"; \
  182. fi
  183. cmr: $(PDF_FILES)
  184. @$(ECHO) "----------------------------------------------------------------"
  185. @$(ECHO) "Make CMR Ready for IEEE"
  186. @$(ECHO) "----------------------------------------------------------------"
  187. gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dEmbedAllFonts=true -dSubsetFonts=true -sOutputFile=$(CMR_FILES) -f $(PDF_FILES)
  188. # ps2pdf14 -dPDFSETTINGS=/prepress $(PDF_FILES) $(CMR_FILES)
  189. cleanepsfig:
  190. -rm -f $(FIGURE_DIR)/*.eps $(FIGURE_DIR)/*.bak
  191. cleanpdffig:
  192. -rm -f $(FIGURE_DIR)/*.pdf $(FIGURE_DIR)/*.bak
  193. #cleanfig: cleanepsfig cleanpdffig
  194. cleanfig:
  195. -rm -f $(PDFFIGURES) $(EPSFIGURES)
  196. cleanbiber:
  197. rm -rf `biber --cache`
  198. clean: cleanfig cleanbiber
  199. rsync -Cuavz $(PDF_FILES) ~/Dropbox/2Reads/$(OUTFILE).pdf
  200. -rm -f $(TEX_DIR)/*.aux
  201. -rm -f *.dvi *.ps *.pdf
  202. -rm -f *.aux *.log *.toc *.out
  203. -rm -f *.lof *.lot *.loa *.lol
  204. -rm -f *.nav *.snm *.vrb
  205. -rm -f *.idx *.ind *.ilg *.glo *.gls *.bbl *.blg
  206. -rm -f $(LINKS_FILES)
  207. %.eps : %.fig
  208. @$(ECHO) "----------------------------------------------------------------"
  209. @$(ECHO) "Convert $*.fig to $*.eps and $*.pdf"
  210. @$(ECHO) "----------------------------------------------------------------"
  211. $(FIG2DEV) -L eps $*.fig $*.eps
  212. @if [ -f $*.pdf ]; then \
  213. $(ECHO) "$*.pdf is there"; \
  214. rm -f $*.pdf; \
  215. fi
  216. epstopdf $*.eps
  217. %.pdf : %.fig %.eps
  218. @$(ECHO) "----------------------------------------------------------------"
  219. @$(ECHO) "Convert $*.eps to $*.pdf"
  220. @$(ECHO) "----------------------------------------------------------------"
  221. if [ -f $*.eps ]; then \
  222. epstopdf $*.eps \
  223. else \
  224. $(FIG2DEV) -L pdf -P $*.fig $*.pdf \
  225. fi
  226. help:
  227. @$(ECHO) "Usage: make <target>[.dvi,.ps,.pdf]"
  228. @$(ECHO) "Options:"
  229. @$(ECHO) " - make help display this message"
  230. @$(ECHO) " - make clean remove all intermediate generated file"
  231. @$(ECHO) " - make cleanfig remove all intermediate figures"
  232. link: $(LINKS_FILES)
  233. bibliography.bib:
  234. $(LN) $(HOME)/notes/bibDB/bibliography.bib .
  235. MySetting.tex:
  236. $(LN) $(HOME)/notes/tex_config/MySetting.tex .
  237. latex8.bst:
  238. $(LN) $(HOME)/notes/tex_config/latex8.bst .
  239. latex8.sty:
  240. $(LN) $(HOME)/notes/tex_config/latex8.sty .
  241. latex8_unsrt.bst:
  242. $(LN) $(HOME)/notes/tex_config/latex8_unsrt.bst .
  243. myColor.sty:
  244. $(LN) $(HOME)/notes/tex_config/myColor.sty .
  245. svn-multi.sty:
  246. $(LN) $(HOME)/notes/tex_config/svn-multi.sty .
  247. prelim2e.sty:
  248. $(LN) $(HOME)/notes/tex_config/prelim2e.sty .
  249. mycolor.cfg:
  250. $(LN) $(HOME)/notes/tex_config/mycolor.cfg .
  251. ntu_techrpt_cover.sty:
  252. $(LN) $(HOME)/notes/tex_config/ntu_techrpt_cover.sty .
  253. coverart.eps:
  254. $(LN) $(HOME)/notes/tex_config/figures/coverart.eps ./figures/.
  255. ieeeconf.cls:
  256. $(LN) $(HOME)/notes/tex_config/ieeeconf.cls .
  257. IEEEtran.cls:
  258. $(LN) $(HOME)/notes/tex_config/IEEEtran.cls .