Texinfoの依存関係を表す.dファイルを自動作成する機能を追加
[YACASL2.git] / doc / texinfo.mk
1 .PHONY: texinfo-distclean texinfo-clean texinfo-textmp-clean
2
3 CP := cp
4 DVIPDFMX := dvipdfmx
5 DVIPDFMX_FLAGS ?=
6 ECHO := echo
7 INSTALL-INFO := install-info
8 MAKEINFO_FLAGS ?=
9 MKDIR := mkdir
10 RMR := rm -rf
11 SED := sed
12 TEX := ptex
13 TEXI2DVI := TEX=$(TEX) texi2dvi
14 TEXI2DVI_FLAGS ?= -q --texinfo=@afourpaper
15 MV := mv
16
17 # \includeコマンドで読み込まれるファイル
18 intexi = $(strip $(shell $(SED) -n -e 's/@include \(.*\)/\1/pg' $<))
19
20 # \imageコマンドで読み込まれるファイル
21 imagetexi = $(strip $(shell $(SED) -n -e 's/.*@image{\([^,]*\)\(,[^,]*,[^,]*,[^,]*,\([^,}]*\)\)}.*/\1\3/p' $<))
22
23 # 依存関係を自動生成し、dファイルに格納
24 %.d: %.texi
25         @$(ECHO) '$@ is created by scanning $<.'
26     # texiファイルと出力ファイルの依存関係
27         @$(ECHO) '$(foreach ext,.html _html .pdf .xml .info .txt .d,$(subst .texi,$(ext),$<)): $<' >$@
28     # includeファイルの依存関係
29         $(if $(intexi),@( \
30       $(ECHO) >>$@; \
31       $(ECHO) '# Include Files' >>$@; \
32       $(ECHO) '$(foreach ext,.html _html .info .pdf .xml .txt,$<),$(subst .texi,$(ext),$<): $(intexi)') >>$@)
33   # imageファイルの依存関係
34   # Docbookは未定義
35         $(if $(imagetexi),@( \
36       $(ECHO) >>$@; \
37       $(ECHO) '# Image Files: HTML, HTML split, Info' >>$@; \
38       $(ECHO) '$(foreach ext,.html _html .info,$(subst .texi,$(ext),$<)): $(imagetexi)' >>$@))
39         $(if $(imagetexi),@( \
40       $(ECHO) >>$@; \
41       $(ECHO) '# Imagefiles: DVI -> PDF' >>$@; \
42       $(ECHO) '$(subst .texi,.pdf,$<): $(addsuffix .eps,$(basename $(imagetexi)))' >>$@))
43
44 # 変数TEXITARGETSで指定されたターゲットファイルに対応するdファイルをインクルード
45 # .dファイルからヘッダファイルの依存関係を取得する
46 # ターゲットに clean が含まれている場合は除く
47 ifeq (,$(filter %clean,$(MAKECMDGOALS)))
48   -include $(addsuffix .d,$(basename $(TEXITARGETS)))
49 endif
50
51 %.info: %.texi
52         $(MAKEINFO) $(MAKEINFO_FLAGS) -o $@ $<
53
54 %.html: %.texi
55         $(MAKEINFO) -o $@ --no-split --html --css-include=$(CSS) $<
56
57 %_html: %.texi
58         if test ! -e $@; then $(MKDIR) $@; fi
59         $(CP) $(CSS) $@/
60         $(MAKEINFO) -o $@ --html --css-ref=$(CSS) $<
61
62 %.html %_html: $(CSS)
63
64 %.pdf: %.dvi
65         $(DVIPDFMX) $(DVIPDFMXFLAGS) $<
66
67 %.txt: %.texi
68         $(MAKEINFO) --no-headers --disable-encoding -o $@ $<
69
70 %.xml: %.texi
71         @$(MAKEINFO) --docbook -o $@ $<
72
73 texinfo-distclean: texinfo-clean
74         $(RMR) *_html *.info *.html *.pdf  *.dvi *.txt
75
76 texinfo-clean: texinfo-textmp-clean
77         $(RM) *.d
78
79 texinfo-textmp-clean:
80         $(RM) *.aux *.cp *.cps *.fn *.ky *.log *.pg *.pgs *.tmp *.toc *.tp *.vr