X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=doc%2Ftexinfo.mk;h=37ff54a0c6d1692ddbc587aa37ee6b01e30dac9a;hp=d709e5ce22d00fe59ba59f65c8bd649f77f29992;hb=7fbde1700bbe9d8f779033ad3b842d3dceb3e1c6;hpb=ae808cc2bedb58811df3ff223f116f7499e7e16e;ds=sidebyside diff --git a/doc/texinfo.mk b/doc/texinfo.mk index d709e5c..37ff54a 100644 --- a/doc/texinfo.mk +++ b/doc/texinfo.mk @@ -1,27 +1,71 @@ .PHONY: texinfo-distclean texinfo-clean texinfo-textmp-clean +.INTERMEDIATE: *.org + CP := cp DVIPDFMX := dvipdfmx +DVIPDFMX_FLAGS ?= +ECHO := echo INSTALL-INFO := install-info +MAKEINFO_FLAGS ?= MKDIR := mkdir RMR := rm -rf +SED := sed TEX := ptex TEXI2DVI := TEX=$(TEX) texi2dvi - -DVIPDFMX_FLAGS ?= -MAKEINFO_FLAGS ?= TEXI2DVI_FLAGS ?= -q --texinfo=@afourpaper +MV := mv + +# \includeコマンドで読み込まれるファイル +intexi = $(strip $(shell $(SED) -n -e 's/@include \(.*\)/\1/pg' $<)) + +# \imageコマンドで読み込まれるファイル +imagetexi = $(strip $(shell $(SED) -n -e 's/.*@image{\([^,]*\)\(,[^,]*,[^,]*,[^,]*,\([^,}]*\)\)}.*/\1\3/p' $<)) + +# 依存関係を自動生成し、dファイルに格納 +%.d: %.texi + @$(ECHO) '$@ is created by scanning $<.' + # texiファイルと出力ファイルの依存関係 + @$(ECHO) '$(foreach ext,.html _html .pdf .xml .info .txt .d,$(subst .texi,$(ext),$<)): $<' >$@ + # includeファイルの依存関係 + $(if $(intexi),@( \ + $(ECHO) >>$@; \ + $(ECHO) '# Include Files' >>$@; \ + $(ECHO) '$(foreach ext,.html _html .info .pdf .xml .txt,$<),$(subst .texi,$(ext),$<): $(intexi)') >>$@) + # imageファイルの依存関係 + # Docbookは未定義 + $(if $(imagetexi),@( \ + $(ECHO) >>$@; \ + $(ECHO) '# Image Files: HTML, HTML split, Info' >>$@; \ + $(ECHO) '$(foreach ext,.html _html .info,$(subst .texi,$(ext),$<)): $(imagetexi)' >>$@)) + $(if $(imagetexi),@( \ + $(ECHO) >>$@; \ + $(ECHO) '# Imagefiles: DVI -> PDF' >>$@; \ + $(ECHO) '$(subst .texi,.pdf,$<): $(addsuffix .eps,$(basename $(imagetexi)))' >>$@)) + +# 変数TEXITARGETSで指定されたターゲットファイルに対応するdファイルをインクルード +# .dファイルからヘッダファイルの依存関係を取得する +# ターゲットに clean が含まれている場合は除く +ifeq (,$(filter %clean,$(MAKECMDGOALS))) + -include $(addsuffix .d,$(basename $(TEXITARGETS))) +endif %.info: %.texi $(MAKEINFO) $(MAKEINFO_FLAGS) -o $@ $< -%.html: %.texi $(CSS) +%.html: %.texi $(MAKEINFO) -o $@ --no-split --html --css-include=$(CSS) $< + $(SED) -i'.org' -e 's%]*>%&%g' $@ + $(RM) $@.org -%_html: %.texi $(CSS) +%_html: %.texi if test ! -e $@; then $(MKDIR) $@; fi $(CP) $(CSS) $@/ $(MAKEINFO) -o $@ --html --css-ref=$(CSS) $< + $(SED) -i'.org' -e 's%]*>%&%g' $@/*.html + $(RM) $@/*.html.org + +%.html %_html: $(CSS) %.pdf: %.dvi $(DVIPDFMX) $(DVIPDFMXFLAGS) $< @@ -33,9 +77,10 @@ TEXI2DVI_FLAGS ?= -q --texinfo=@afourpaper @$(MAKEINFO) --docbook -o $@ $< texinfo-distclean: texinfo-clean - @$(RMR) *_html *.info *.html *.pdf *.dvi *.txt + $(RMR) *_html *.info *.html *.pdf *.dvi *.txt texinfo-clean: texinfo-textmp-clean + $(RM) *.d texinfo-textmp-clean: - @$(RM) *.aux *.cp *.cps *.fn *.ky *.log *.pg *.pgs *.tmp *.toc *.tp *.vr + $(RM) *.aux *.cp *.cps *.fn *.ky *.log *.pg *.pgs *.tmp *.toc *.tp *.vr