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

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