From c9b0d32ca302a70e451abe085bcb80116df7324b Mon Sep 17 00:00:00 2001 From: j8takagi Date: Sat, 23 Nov 2013 23:59:37 +0900 Subject: [PATCH] =?utf8?q?eukuleides=E7=94=A8Makefile=E3=81=AEclean?= =?utf8?q?=E3=82=BF=E3=83=BC=E3=82=B2=E3=83=83=E3=83=88=E3=81=AA=E3=81=A9?= =?utf8?q?=E3=81=AE=E5=8B=95=E4=BD=9C=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- eukleides_mk/eukleides.mk | 8 ++++--- latex_mk/latex.mk | 49 +++++++++++++++++++++------------------ 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/eukleides_mk/eukleides.mk b/eukleides_mk/eukleides.mk index f5781b5..f5e56d9 100644 --- a/eukleides_mk/eukleides.mk +++ b/eukleides_mk/eukleides.mk @@ -3,6 +3,8 @@ EPSTOPDF = epstopdf # ImageMagick CONVERT = convert +eukfiles = $(wildcard *.euk) + %.eps: %.euk $(EUKLEIDES) $< @@ -16,7 +18,7 @@ CONVERT = convert $(CONVERT) $< $@ eukleides-clean: - $(RM) $(subst .euk,.png,*.eps) + $(if $(eukfiles),$(RM) $(subst .euk,.eps,$(eukfiles))) -eukleides-distclean: - $(RM) $(subst .euk,.pdf,*.euk) $(subst .euk,.png,*.euk) $(subst .euk,.jpeg,*.euk) +eukleides-distclean: eukleides-clean + $(if $(eukfiles), $(RM) $(subst .euk,.pdf,$(eukfiles)) $(subst .euk,.png,$(eukfiles)) $(subst .euk,.jpeg,$(eukfiles))) diff --git a/latex_mk/latex.mk b/latex_mk/latex.mk index 07625dc..19aadc1 100644 --- a/latex_mk/latex.mk +++ b/latex_mk/latex.mk @@ -70,25 +70,25 @@ BIB_INT := .bbl .blg .SECONDARY: $(wildcard $(addsuffix $(TEX_INT) $(IND_INT) $(BIB_INT) .d,*)) -# \tableofcontents命令 +# \tableofcontents命令をTeXファイルから検索する toc = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\tableofcontents/!s/.*\(\\tableofcontents\).*/\1/p' $<) -# \listoffigures命令 +# \listoffigures命令をTeXファイルから検索する lof = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\listoffigures/!s/.*\(\\listoffigures\).*/\1/p' $<) -# \listoftables命令 +# \listoftables命令をTeXファイルから検索する lot = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\listoftables/!s/.*\(\\listoftables\).*/\1/p' $<) -# \makeindex命令 +# \makeindex命令をTeXファイルから検索する makeindex = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\makeindex/!s/.*\(\\makeindex\).*/\1/p' $<) -# \bibliography命令で読み込まれる文献データベースファイル +# \bibliography命令で読み込まれる文献データベースファイルをTeXファイルから検索する bibdb = $(addsuffix .bib,$(basename $(strip $(shell \ $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\bibliography/!s/\\bibliography\(\[[^]]*\]\)\{0,1\}{\([^}]*\)}/&\n/p' $< $(intex) | \ $(SED) -e 's/.*{\([^}]*\)}.*/\1/' | \ $(SED) -e 's/,/ /g')))) -# hyperrefパッケージ読み込み +# hyperrefパッケージ読み込みをTeXファイルから検索する hyperref = $(shell $(SED) -n -e '/^.*[^\]\{0,1\}%.*\\usepackage\(\[[^]]*\]\)\{0,1\}{hyperref}/!s/.*\(\\usepackage\)\(\[[^]]*\]\)\{0,1\}\({hyperref}\).*/\1\3/p' $<) # ファイル名から拡張子を除いた部分 @@ -174,6 +174,10 @@ MENDEXFLAG ?= LATEXCMD = $(LATEX) -interaction=batchmode $(LATEXFLAG) $(TEXFILE) COMPILE.tex = $(ECHO) $(LATEXCMD); $(LATEXCMD) >/dev/null 2>&1 || ($(CAT) $(LOGFILE); exit 1) +# DVI -> PDF +DVIPDFCMD = $(DVIPDFMX) $(DVIPDFMXFLAG) $(DVIFILE) +COMPILE.dvi = $(ECHO) $(DVIPDFCMD); $(DVIPDFCMD) 2>&1 | $(CAT) >>$(LOGFILE) || $(CAT) + # 索引中間ファイル(.ind)作成 MENDEXCMD = $(MENDEX) $(MENDEXFLAG) $(IDXFILE) COMPILE.idx = $(ECHO) $(MENDEXCMD); $(MENDEXCMD) >/dev/null 2>&1 || ($(CAT) $(ILGFILE); exit 1) @@ -217,30 +221,31 @@ ingraphics = $(strip $(shell \ @$(ECHO) '$(DFILE): $(TEXFILE)' >$@ $(if $(INTERFILES),@( \ $(ECHO); \ - $(ECHO) '$(DVIFILE): $(TEXFILE)'; \ - $(ECHO) ' @$$(MAKE) -s $(INTERFILES_PREV)'; \ + $(ECHO) '$(DVIFILE):: $(INTERFILES_PREV)'; \ $(ECHO) ' @$$(COMPILE.tex)'; \ + $(ECHO); \ + $(ECHO) '$(DVIFILE):: $(AUXFILE)'; \ $(ECHO) ' @$$(COMPILES.tex)'; \ ) >>$@) # 画像ファイルの依存関係 $(if $(ingraphics),@( \ $(ECHO); \ $(ECHO) '# IncludeGraphic Files - .pdf, .jpeg/.jpg, .png with .xbb'; \ - $(ECHO) '$(DVIFILE) $(AUXFILE) $(INTERFILES): $(ingraphics)'; \ + $(ECHO) '$(AUXFILE) $(INTERFILES): $(ingraphics)'; \ $(ECHO); \ - $(ECHO) '$(strip $(DVIFILE) $(AUXFILE) $(INTERFILES)): $(addsuffix .xbb,$(basename $(filter-out %.eps,$(ingraphics))))'; \ + $(ECHO) '$(strip $(AUXFILE) $(INTERFILES)): $(addsuffix .xbb,$(basename $(filter-out %.eps,$(ingraphics))))'; \ ) >>$@) # \includeまたは\input命令で読み込まれるTeXファイルの依存関係 $(if $(intex),@( \ $(ECHO); \ $(ECHO) '# Files called from \include or \input - .tex'; \ - $(ECHO) '$(strip $(DVIFILE) $(AUXFILE) $(INTERFILES)): $(intex)'; \ + $(ECHO) '$(strip $(AUXFILE) $(INTERFILES)): $(intex)'; \ ) >>$@) # 文献処理用ファイルの依存関係 $(if $(bibdb),@( \ $(ECHO); \ $(ECHO) '# Bibliography files: .aux, BIBDB -> .bbl -> .div'; \ - $(ECHO) '$(BBLFILE): $(bibdb) $(AUXFILE)'; \ + $(ECHO) '$(BBLFILE): $(bibdb) $(TEXFILE)'; \ $(ECHO); \ $(ECHO) '$(BBLFILE_PREV): $(BBLFILE)'; \ ) >>$@) @@ -256,12 +261,11 @@ endif %.aux: %.tex @$(COMPILE.tex) -%.dvi: %.tex - @$(COMPILE.tex) +%.dvi: %.aux @$(COMPILES.tex) -%.dvi: %.aux - $(if $(filter-out aux,$(NOFILES)),@$(COMPILE.tex)) +%.dvi: %.tex + @$(COMPILE.tex) @$(COMPILES.tex) # aux_prevファイル作成 @@ -270,7 +274,7 @@ endif # PDFファイル作成 %.pdf: %.dvi - $(DVIPDFMX) $(DVIPDFMXFLAG) $< + @$(COMPILE.dvi) # バウンディング情報ファイル作成 # pdf、jpeg/jpg、pngファイルに対応 @@ -288,28 +292,28 @@ endif # 目次中間ファイル作成 %.toc: %.tex - @$(COMPILE.tex) + @$(MAKE) -s $(AUXFILE) %.toc_prev: %.toc @$(CMPPREV) # 図リスト中間ファイル作成 %.lof: %.tex - @$(COMPILE.tex) + @$(MAKE) -s $(AUXFILE) %.lof_prev: %.lof @$(CMPPREV) # 表リスト中間ファイル作成 %.lot: %.tex - @$(COMPILE.tex) + @$(MAKE) -s $(AUXFILE) %.lot_prev: %.lot @$(CMPPREV) # 索引中間ファイル作成 %.idx: %.tex - @$(COMPILE.tex) + @$(MAKE) -s $(AUXFILE) %.idx_prev: %.idx @$(CMPPREV) @@ -322,6 +326,7 @@ endif # BiBTeX中間ファイル作成 %.bbl: %.tex + @$(MAKE) -s $(AUXFILE) @$(COMPILE.bib) %.bbl_prev: %.bbl @@ -329,7 +334,7 @@ endif # hyperref中間ファイル作成 %.out: %.tex - @$(COMPILE.tex) + @$(MAKE) -s $(AUXFILE) %.out_prev: %.out @$(CMPPREV) -- 2.18.0