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.

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