1*72ae6981SMasatake YAMATO# 2*72ae6981SMasatake YAMATO# This is a Makefile.am read by the Autotools. 3*72ae6981SMasatake YAMATO# GNU Make is needed. 4*72ae6981SMasatake YAMATO# 5*72ae6981SMasatake YAMATO# Copyright (c) 2017, Masatake YAMMATO 6*72ae6981SMasatake YAMATO# Copyright (c) 2017, Red Hat, Inc. 7*72ae6981SMasatake YAMATO# 8*72ae6981SMasatake YAMATO# This source code is released for free distribution under the terms 9*72ae6981SMasatake YAMATO# of the GNU General Public License version 2 or (at your option) any 10*72ae6981SMasatake YAMATO# later version. 11*72ae6981SMasatake YAMATO# 12*72ae6981SMasatake YAMATO 13*72ae6981SMasatake YAMATO# Note: RST2MAN, RST2HTML, RST2PDF, and RST2MAN_OPTIONS are defined by configure.ac 14*72ae6981SMasatake YAMATORST2MAN_FLAGS = $(RST2MAN_OPTIONS) 15*72ae6981SMasatake YAMATORST2HTML_FLAGS = 16*72ae6981SMasatake YAMATORST2PDF_FLAGS = 17*72ae6981SMasatake YAMATODOCS_DIR = ../docs/man 18*72ae6981SMasatake YAMATO 19*72ae6981SMasatake YAMATOSUFFIXES = .rst .html .pdf .in 20*72ae6981SMasatake YAMATO 21*72ae6981SMasatake YAMATO# The man_MANS or dist_man_MANS requires conventional file names for man files. 22*72ae6981SMasatake YAMATO# For example `$(basename $(files))` is not accepted. 23*72ae6981SMasatake YAMATOGEN_IN_MAN_FILES = \ 24*72ae6981SMasatake YAMATO ctags.1 \ 25*72ae6981SMasatake YAMATO ctags-optlib.7 \ 26*72ae6981SMasatake YAMATO ctags-incompatibilities.7 \ 27*72ae6981SMasatake YAMATO ctags-client-tools.7 \ 28*72ae6981SMasatake YAMATO ctags-faq.7 \ 29*72ae6981SMasatake YAMATO \ 30*72ae6981SMasatake YAMATO ctags-lang-gdscript.7 \ 31*72ae6981SMasatake YAMATO ctags-lang-iPythonCell.7 \ 32*72ae6981SMasatake YAMATO ctags-lang-julia.7 \ 33*72ae6981SMasatake YAMATO ctags-lang-python.7 \ 34*72ae6981SMasatake YAMATO ctags-lang-tcl.7 \ 35*72ae6981SMasatake YAMATO ctags-lang-verilog.7 \ 36*72ae6981SMasatake YAMATO ctags-lang-inko.7 \ 37*72ae6981SMasatake YAMATO ctags-lang-r.7 \ 38*72ae6981SMasatake YAMATO ctags-lang-rmarkdown.7 \ 39*72ae6981SMasatake YAMATO ctags-lang-sql.7 \ 40*72ae6981SMasatake YAMATO ctags-lang-elm.7 \ 41*72ae6981SMasatake YAMATO \ 42*72ae6981SMasatake YAMATO readtags.1 \ 43*72ae6981SMasatake YAMATO tags.5 \ 44*72ae6981SMasatake YAMATO \ 45*72ae6981SMasatake YAMATO $(NULL) 46*72ae6981SMasatake YAMATO 47*72ae6981SMasatake YAMATOman_pages = $(GEN_IN_MAN_FILES) 48*72ae6981SMasatake YAMATOman_in_files = $(addsuffix .in,$(man_pages)) 49*72ae6981SMasatake YAMATOrst_files = $(addsuffix .rst,$(man_pages)) 50*72ae6981SMasatake YAMATOhtml_pages = $(addsuffix .html,$(man_pages)) 51*72ae6981SMasatake YAMATOpdf_pages = $(addsuffix .pdf,$(man_pages)) 52*72ae6981SMasatake YAMATOdoc_files = $(addprefix $(DOCS_DIR)/,$(rst_files)) 53*72ae6981SMasatake YAMATO 54*72ae6981SMasatake YAMATO# for automake 55*72ae6981SMasatake YAMATO# generate man pages only when rst2man is installed 56*72ae6981SMasatake YAMATOif HAVE_RST2MAN 57*72ae6981SMasatake YAMATOman_MANS = $(man_pages) 58*72ae6981SMasatake YAMATOendif 59*72ae6981SMasatake YAMATOEXTRA_DIST = README $(addsuffix .rst.in,$(GEN_IN_MAN_FILES)) $(man_in_files) 60*72ae6981SMasatake YAMATOCLEANFILES = $(man_pages) $(addsuffix .rst,$(GEN_IN_MAN_FILES)) $(html_pages) $(pdf_pages) 61*72ae6981SMasatake YAMATOMAINTAINERCLEANFILES = $(man_in_files) 62*72ae6981SMasatake YAMATO 63*72ae6981SMasatake YAMATO.PHONY: man man-in html pdf update-docs clean-docs 64*72ae6981SMasatake YAMATO 65*72ae6981SMasatake YAMATOall-am: update-docs 66*72ae6981SMasatake YAMATO 67*72ae6981SMasatake YAMATOman: $(man_pages) 68*72ae6981SMasatake YAMATOman-in: $(man_in_files) 69*72ae6981SMasatake YAMATOhtml: $(html_pages) 70*72ae6981SMasatake YAMATOpdf: $(pdf_pages) 71*72ae6981SMasatake YAMATO 72*72ae6981SMasatake YAMATO# use `[@]` not to be replaced by automake 73*72ae6981SMasatake YAMATOREPLACE_CONF_VARS = sed \ 74*72ae6981SMasatake YAMATO -e s/[@]CTAGS_NAME_EXECUTABLE[@]/ctags/g \ 75*72ae6981SMasatake YAMATO -e s/[@]ETAGS_NAME_EXECUTABLE[@]/etags/g \ 76*72ae6981SMasatake YAMATO -e s/[@]VERSION[@]/$(VERSION)/g 77*72ae6981SMasatake YAMATO 78*72ae6981SMasatake YAMATOrst2man_verbose = $(rst2man_verbose_@AM_V@) 79*72ae6981SMasatake YAMATOrst2man_verbose_ = $(rst2man_verbose_@AM_DEFAULT_V@) 80*72ae6981SMasatake YAMATOrst2man_verbose_0 = @echo RST2MAN " $@"; 81*72ae6981SMasatake YAMATO 82*72ae6981SMasatake YAMATOrst2html_verbose = $(rst2html_verbose_@AM_V@) 83*72ae6981SMasatake YAMATOrst2html_verbose_ = $(rst2html_verbose_@AM_DEFAULT_V@) 84*72ae6981SMasatake YAMATOrst2html_verbose_0 = @echo RST2HTML " $@"; 85*72ae6981SMasatake YAMATO 86*72ae6981SMasatake YAMATOrst2pdf_verbose = $(rst2pdf_verbose_@AM_V@) 87*72ae6981SMasatake YAMATOrst2pdf_verbose_ = $(rst2pdf_verbose_@AM_DEFAULT_V@) 88*72ae6981SMasatake YAMATOrst2pdf_verbose_0 = @echo RST2MAN " $@"; 89*72ae6981SMasatake YAMATO 90*72ae6981SMasatake YAMATOsed_verbose = $(sed_verbose_@AM_V@) 91*72ae6981SMasatake YAMATOsed_verbose_ = $(sed_verbose_@AM_DEFAULT_V@) 92*72ae6981SMasatake YAMATOsed_verbose_0 = @echo SED " $@"; 93*72ae6981SMasatake YAMATO 94*72ae6981SMasatake YAMATOrm_verbose = $(rm_verbose_@AM_V@) 95*72ae6981SMasatake YAMATOrm_verbose_ = $(rm_verbose_@AM_DEFAULT_V@) 96*72ae6981SMasatake YAMATOrm_verbose_0 = @echo RM " $@"; 97*72ae6981SMasatake YAMATO 98*72ae6981SMasatake YAMATO# 99*72ae6981SMasatake YAMATO# generate man 100*72ae6981SMasatake YAMATO# 101*72ae6981SMasatake YAMATO# generate *.in to be distributed 102*72ae6981SMasatake YAMATO%.in: %.rst.in 103*72ae6981SMasatake YAMATOif HAVE_RST2MAN 104*72ae6981SMasatake YAMATO $(rst2man_verbose)$(RST2MAN) $(RST2MAN_FLAGS) $< > $@ 105*72ae6981SMasatake YAMATOelse 106*72ae6981SMasatake YAMATO $(error Cannot make $@: rst2man is not installed) 107*72ae6981SMasatake YAMATOendif 108*72ae6981SMasatake YAMATO 109*72ae6981SMasatake YAMATO%: %.in 110*72ae6981SMasatake YAMATO $(sed_verbose)$(REPLACE_CONF_VARS) < $< > $@ 111*72ae6981SMasatake YAMATO 112*72ae6981SMasatake YAMATO# 113*72ae6981SMasatake YAMATO# generate HTML and PDF 114*72ae6981SMasatake YAMATO# 115*72ae6981SMasatake YAMATO%.rst: %.rst.in 116*72ae6981SMasatake YAMATO $(sed_verbose)$(REPLACE_CONF_VARS) < $< > $@ 117*72ae6981SMasatake YAMATO 118*72ae6981SMasatake YAMATO%.html: %.rst 119*72ae6981SMasatake YAMATOif HAVE_RST2HTML 120*72ae6981SMasatake YAMATO $(rst2html_verbose)$(RST2HTML) $(RST2HTML_FLAGS) $< > $@ 121*72ae6981SMasatake YAMATOelse 122*72ae6981SMasatake YAMATO $(error Cannot make $@: rst2html is not installed) 123*72ae6981SMasatake YAMATOendif 124*72ae6981SMasatake YAMATO 125*72ae6981SMasatake YAMATO%.pdf: %.rst 126*72ae6981SMasatake YAMATOif HAVE_RST2PDF 127*72ae6981SMasatake YAMATO $(rst2pdf_verbose)$(RST2PDF) $(RST2PDF_FLAGS) $< -o $@ 128*72ae6981SMasatake YAMATOelse 129*72ae6981SMasatake YAMATO $(error Cannot make $@: rst2pdf is not installed) 130*72ae6981SMasatake YAMATOendif 131*72ae6981SMasatake YAMATO 132*72ae6981SMasatake YAMATO# 133*72ae6981SMasatake YAMATO# generate $(DOCS_DIR)/*.rst for Sphinx document 134*72ae6981SMasatake YAMATO# 135*72ae6981SMasatake YAMATOupdate-docs: $(doc_files) 136*72ae6981SMasatake YAMATO 137*72ae6981SMasatake YAMATO# Convert the names of man page files (without suffix) to man page citations. 138*72ae6981SMasatake YAMATO# ctags.1 tags.5 ... => ctags(1) tags(5) ... 139*72ae6981SMasatake YAMATOcites := ${subst .,(,${addsuffix ),${man_pages}}} 140*72ae6981SMasatake YAMATO 141*72ae6981SMasatake YAMATO# Convert the man page citations to sed patterns for making hyperlinks. 142*72ae6981SMasatake YAMATO# ctags(1) tags(5) ... 143*72ae6981SMasatake YAMATO# => -e 's/\<ctags(1)/:ref:`& <&>`/g' -e 's/\<ctags(5)/:ref:`& <&>`/g' ... 144*72ae6981SMasatake YAMATOif HAS_GNU_SED 145*72ae6981SMasatake YAMATOreppat := $(foreach m,$(cites),-e 's/\<$(m)/:ref:`& <&>`/g') 146*72ae6981SMasatake YAMATOelse 147*72ae6981SMasatake YAMATOreppat := $(foreach m,$(cites),-e 's/[[:<:]]$(m)/:ref:`& <&>`/g') 148*72ae6981SMasatake YAMATOendif 149*72ae6981SMasatake YAMATO 150*72ae6981SMasatake YAMATO# Delete the line "------" in the first 10 lines of $(DOCS_DIR)/*.rst to 151*72ae6981SMasatake YAMATO# suppress unnecessary section indices. 152*72ae6981SMasatake YAMATO$(DOCS_DIR)/%.rst: %.rst 153*72ae6981SMasatake YAMATO @$(MKDIR_P) $(DOCS_DIR) 154*72ae6981SMasatake YAMATO $(sed_verbose)sed $(reppat) -e '1,10s/^-*$$//' < $< > $@ 155*72ae6981SMasatake YAMATO 156*72ae6981SMasatake YAMATO# remove generated files to be commited (used for `make checkgen`) 157*72ae6981SMasatake YAMATOclean-local: clean-docs 158*72ae6981SMasatake YAMATOclean-docs: 159*72ae6981SMasatake YAMATO $(rm_verbose)rm -f $(man_in_files) $(doc_files) 160