root/doc/texinfo.mk

/* [<][>][^][v][top][bottom][index][help] */
.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
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
        $(MAKEINFO) -o $@ --no-split --html --css-include=$(CSS) $<
        $(SED) -i'.org' -e 's%<img src="\([^"]*\)" *[^>]*>%<object type="image/svg+xml" data="\1">&</object>%g' $@
        $(RM) $@.org

%_html: %.texi
        if test ! -e $@; then $(MKDIR) $@; fi
        $(CP) $(CSS) $@/
        $(MAKEINFO) -o $@ --html --css-ref=$(CSS) $<
        $(SED) -i'.org' -e 's%<img src="\([^"]*\)" *[^>]*>%<object type="image/svg+xml" data="\1">&</object>%g' $@/*.html
        $(RM) $@/*.html.org

%.html %_html: $(CSS)

%.pdf: %.dvi
        $(DVIPDFMX) $(DVIPDFMXFLAGS) $<

%.txt: %.texi
        $(MAKEINFO) --no-headers --disable-encoding -o $@ $<

%.xml: %.texi
        @$(MAKEINFO) --docbook -o $@ $<

texinfo-distclean: texinfo-clean
        $(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

/* [<][>][^][v][top][bottom][index][help] */