# .blg: BiBTeXログ
LOGEXT := .log .ilg .blg
-ALLINTERFILES = $(addprefix *,.aux $(LATEXINTEXT) $(LOGEXT) .fls .d .*_prev)
+ALLINTEXT := .aux .dvi $(LATEXINTEXT) $(LOGEXT) .fls .d .*_prev
# make完了後、中間ファイルを残す
-.SECONDARY: $(wildcard ALLINTERFILES)
+.SECONDARY: $(foreach t,$(TEXTARGETS),$(addprefix $(basename $t),$(ALLINTEXT)))
# ファイル名から拡張子を除いた部分
BASE = $(basename $<)
# $(BASE).texで読み込まれる中間ファイルを$(BASE).flsから取得する
# .idxは、.indへ置換
-LATEXINTERFILES = \
+LATEXINTFILES = \
$(sort $(subst .idx,.ind, \
$(filter $(addprefix $(BASE),$(LATEXINTEXT)),$(INPUTFILES) $(OUTPUTFILES)) \
))
-LATEXINTERFILES_PREV = $(addsuffix _prev,$(LATEXINTERFILES))
+LATEXINTFILES_PREV = $(addsuffix _prev,$(LATEXINTFILES))
-# TeXファイル - .tex
+# 分割され、\includeや\inputで読み込まれるTeXファイル - .tex
TEXFILES = $(filter %.tex,$(INPUTFILES))
# 対応する画像ファイルの拡張子
))
# そのほかの読み込みファイル
-OTHERFILES = \
- $(sort $(filter-out %.aux $(LATEXINTERFILES) $(TEXFILES) $(GRAPHICFILES),$(INPUTFILES)))
+OTHERFILES = $(sort $(filter-out %.aux $(LATEXINTFILES) $(TEXFILES) $(GRAPHICFILES),$(INPUTFILES)))
# \bibliography命令で読み込まれる文献データベースファイルをTeXファイルから検索する
BIBDB = $(BIBDBre)
($(SED) -n -e '/^Output written on toc_hyperref.dvi/,$$p' $(BASE).log; exit 1)
# ターゲットファイルと必須ファイルを比較し、内容が異なる場合はターゲットファイルの内容を必須ファイルに置き換える
-CMPPREV = $(CMP) $@ $< || $(CP) -p -v $< $@
+CMPPREV = $(CMP) $@ $< && $(ECHO) '$@ is up to date.' || $(CP) -p -v $< $@
######################################################################
# .dファイルの生成と読み込み
# 依存関係を.dファイルに書き出す
%.d: %.fls
+ # 変数の展開
+ @$(ECHO) "extract LATEXINTFILES:$(LATEXINTFILES) TEXFILES:$(TEXFILES) GRAPHICFILES:$(GRAPHICFILES) BIBDB:$(BIBDB)"
# .dファイルの依存関係
@$(ECHO) '$(BASE).d: $(BASE).tex $(BASE).fls' >$@
+ # 中間ファイルの依存関係
+ $(if $(sort $(LATEXINTFILES) $(BIBDB)),@( \
+ $(ECHO); \
+ $(ECHO) '# LaTeX Intermediate Files'; \
+ $(ECHO) '$(BASE).dvi:: $(sort $(LATEXINTFILES_PREV) $(if $(BIBDB),$(BASE).bbl_prev))'; \
+ $(ECHO) ' @$$(COMPILE.tex)'; \
+ $(ECHO); \
+ $(ECHO) '$(BASE).dvi:: $(BASE).aux'; \
+ $(ECHO) ' @$$(COMPILES.tex)'; \
+ ) >>$@)
# \includeまたは\input命令で読み込まれるTeXファイルの依存関係
$(if $(TEXFILES),@( \
$(ECHO); \
$(ECHO) '# Files called from \include or \input - .tex'; \
$(ECHO) '$(BASE).aux: $(TEXFILES)'; \
) >>$@)
- # そのほかのファイル(TEXMFROOT以外にあるスタイルファイルなど)の依存関係
- $(if $(OTHERFILES),@( \
- $(ECHO); \
- $(ECHO) '# Other files'; \
- $(ECHO) '$(BASE).aux: $(OTHERFILES)'; \
- ) >>$@)
# 画像ファイルの依存関係
$(if $(GRAPHICFILES),@( \
$(ECHO); \
$(ECHO) '# Bibliography files: .aux, BIBDB -> .bbl -> .div'; \
$(ECHO) '$(BASE).bbl: $(BIBDB) $(BASE).tex'; \
) >>$@)
- # 中間ファイルの依存関係
- $(if $(sort $(LATEXINTERFILES) $(BIBDB)),@( \
- $(ECHO); \
- $(ECHO) '# LaTeX Intermediate Files'; \
- $(ECHO) '$(BASE).dvi:: $(sort $(LATEXINTERFILES_PREV) $(if $(BIBDB),$(BASE).bbl_prev))'; \
- $(ECHO) ' @$$(COMPILE.tex)'; \
+ # そのほかのファイル(TEXMFROOT以外にあるスタイルファイルなど)の依存関係
+ $(if $(OTHERFILES),@( \
$(ECHO); \
- $(ECHO) '$(BASE).dvi:: $(BASE).aux'; \
- $(ECHO) ' @$$(COMPILES.tex)'; \
+ $(ECHO) '# Other files'; \
+ $(ECHO) '$(BASE).aux: $(OTHERFILES)'; \
) >>$@)
@$(ECHO) '$@ is generated by scanning $(BASE).tex and $(BASE).fls.'
# 中間ファイルの削除
tex-clean:
- $(RM) $(ALLINTERFILES)
+ $(RM) $(addprefix *,$(ALLINTEXT))
$(RM) -r $(FLSDIR)
ifeq (,$(filter %.dvi,$(TEXTARGETS)))
$(RM) *.dvi