基本情報処理試験のフォルダを変更し、2018年春の分を追加
[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         $(SED) -i '' -e 's%<img src="\([^"]*\)" *[^>]*>%<object type="image/svg+xml" data="\1">&</object>%g' $@
57
58 %_html: %.texi
59         if test ! -e $@; then $(MKDIR) $@; fi
60         $(CP) $(CSS) $@/
61         $(MAKEINFO) -o $@ --html --css-ref=$(CSS) $<
62         $(SED) -i '' -e 's%<img src="\([^"]*\)" *[^>]*>%<object type="image/svg+xml" data="\1">&</object>%g' $@
63
64 %.html %_html: $(CSS)
65
66 %.pdf: %.dvi
67         $(DVIPDFMX) $(DVIPDFMXFLAGS) $<
68
69 %.txt: %.texi
70         $(MAKEINFO) --no-headers --disable-encoding -o $@ $<
71
72 %.xml: %.texi
73         @$(MAKEINFO) --docbook -o $@ $<
74
75 texinfo-distclean: texinfo-clean
76         $(RMR) *_html *.info *.html *.pdf  *.dvi *.txt
77
78 texinfo-clean: texinfo-textmp-clean
79         $(RM) *.d
80
81 texinfo-textmp-clean:
82         $(RM) *.aux *.cp *.cps *.fn *.ky *.log *.pg *.pgs *.tmp *.toc *.tp *.vr