-INPUTFILES = \
- $(sort $(filter-out $(BASE).tex $(BASE).aux, \
- $(shell \
- $(SED) -n -e 's/^INPUT \(.\{1,\}\)/\1/gp' $(BASE).fls | \
- $(GREP) -v `$(KPSEWHICH) -expand-var '$$TEXMFROOT'` \
- )))
-
-# $(BASE).texで使われるLaTeX中間ファイル
+# 取得は、1回のmake実行につき1回だけ行われる
+INPUTFILES = $(INPUTFILESre)
+
+INPUTFILESre = $(eval INPUTFILES := \
+ $(sort $(filter-out $(BASE).tex $(BASE).aux, $(shell \
+ $(SED) -n -e 's/^INPUT \(.\{1,\}\)/\1/p' $(BASE).fls | \
+ $(GREP) -v `$(KPSEWHICH) -expand-var '$$TEXMFROOT'` \
+ ))))
+
+# .flsファイルから、OUTPUTファイルを取得。ただし、$TEXMFDISTのファイルを除く
+# 取得は、1回のmake実行につき1回だけ行われる
+OUTPUTFILES = $(OUTFILESre)
+
+OUTFILESre = $(eval OUTPUTFILES := \
+ $(sort $(filter-out $(BASE).aux $(BASE).dvi $(BASE).log,$(shell \
+ $(SED) -n -e 's/^OUTPUT \(.\{1,\}\)/\1/p' $(BASE).fls | \
+ $(GREP) -v `$(KPSEWHICH) -expand-var '$$TEXMFROOT'` \
+ ))))
+
+# $(BASE).texで読み込まれる中間ファイルを$(BASE).flsから取得する
+# .idxは、.indへ置換