Blame Documentation/Makefile

Packit Service b7b338
# Guard against environment variables
Packit Service b7b338
MAN1_TXT =
Packit Service b7b338
TECH_DOCS =
Packit Service b7b338
ARTICLES =
Packit Service b7b338
SP_ARTICLES =
Packit Service b7b338
Packit Service b7b338
MAN1_TXT += $(filter-out \
Packit Service b7b338
		$(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
Packit Service b7b338
		$(wildcard nvme-*.txt))
Packit Service b7b338
MAN1_TXT += nvme.txt
Packit Service b7b338
MAN_TXT = $(MAN1_TXT)
Packit Service b7b338
MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
Packit Service b7b338
MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
Packit Service b7b338
Packit Service b7b338
DOC_HTML = $(MAN_HTML) $(OBSOLETE_HTML)
Packit Service b7b338
Packit Service b7b338
API_DOCS = 
Packit Service b7b338
SP_ARTICLES += $(API_DOCS)
Packit Service b7b338
SP_ARTICLES += $(TECH_DOCS)
Packit Service b7b338
Packit Service b7b338
ifneq ($(findstring $(MAKEFLAGS),s),s)
Packit Service b7b338
ifndef V
Packit Service b7b338
	QUIET_ASCIIDOC  = @echo '   ' ASCIIDOC $@;
Packit Service b7b338
	QUIET_XMLTO     = @echo '   ' XMLTO $@;
Packit Service b7b338
	QUIET_DB2TEXI   = @echo '   ' DB2TEXI $@;
Packit Service b7b338
	QUIET_MAKEINFO  = @echo '   ' MAKEINFO $@;
Packit Service b7b338
	QUIET_DBLATEX   = @echo '   ' DBLATEX $@;
Packit Service b7b338
	QUIET_XSLTPROC  = @echo '   ' XSLTPROC $@;
Packit Service b7b338
	QUIET_GEN       = @echo '   ' GEN $@;
Packit Service b7b338
	QUIET_LINT      = @echo '   ' LINT $@;
Packit Service b7b338
	QUIET_STDERR    = 2> /dev/null
Packit Service b7b338
	QUIET_SUBDIR0   = +@subdir=
Packit Service b7b338
	QUIET_SUBDIR1   = ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
Packit Service b7b338
			$(MAKE) $(PRINT_DIR) -C $$subdir
Packit Service b7b338
	export V
Packit Service b7b338
endif
Packit Service b7b338
endif
Packit Service b7b338
Packit Service b7b338
DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT))
Packit Service b7b338
Packit Service b7b338
ASCIIDOC = asciidoc
Packit Service b7b338
ASCIIDOC_EXTRA =
Packit Service b7b338
ASCIIDOC_DOCBOOK = docbook
Packit Service b7b338
ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA)
Packit Service b7b338
TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
Packit Service b7b338
MANPAGE_XSL = manpage-normal.xsl
Packit Service b7b338
XMLTO = xmlto
Packit Service b7b338
XMLTO_EXTRA = --skip-validation
Packit Service b7b338
INSTALL ?= install
Packit Service b7b338
RM ?= rm -f
Packit Service b7b338
MAN_REPO = ../../nvme-manpages
Packit Service b7b338
Packit Service b7b338
ASCIIDOC_HTML = xhtml11
Packit Service b7b338
ASCIIDOC_CONF = -f asciidoc.conf
Packit Service b7b338
Packit Service b7b338
ifdef USE_ASCIIDOCTOR
Packit Service b7b338
ASCIIDOC = asciidoctor
Packit Service b7b338
ASCIIDOC_CONF =
Packit Service b7b338
ASCIIDOC_HTML = xhtml5
Packit Service b7b338
ASCIIDOC_DOCBOOK = docbook5
Packit Service b7b338
ASCIIDOC_EXTRA += -acompat-mode
Packit Service b7b338
ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
Packit Service b7b338
ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
Packit Service b7b338
ASCIIDOC_EXTRA += -amansource='NVMe'
Packit Service b7b338
ASCIIDOC_EXTRA += -amanmanual='NVMe Manual'
Packit Service b7b338
endif
Packit Service b7b338
Packit Service b7b338
ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF)
Packit Service b7b338
TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
Packit Service b7b338
Packit Service b7b338
MAKEINFO = makeinfo
Packit Service b7b338
INSTALL_INFO = install-info
Packit Service b7b338
DOCBOOK2X_TEXI = docbook2x-texi
Packit Service b7b338
DBLATEX = dblatex
Packit Service b7b338
ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex
Packit Service b7b338
ifndef PERL_PATH
Packit Service b7b338
	PERL_PATH = /usr/bin/perl
Packit Service b7b338
endif
Packit Service b7b338
Packit Service b7b338
ifdef DOCBOOK_XSL_172
Packit Service b7b338
MANPAGE_XSL = manpage-1.72.xsl
Packit Service b7b338
else
Packit Service b7b338
	ifndef ASCIIDOC_ROFF
Packit Service b7b338
	endif
Packit Service b7b338
endif
Packit Service b7b338
ifdef MAN_BOLD_LITERAL
Packit Service b7b338
XMLTO_EXTRA += -m manpage-bold-literal.xsl
Packit Service b7b338
endif
Packit Service b7b338
ifdef DOCBOOK_SUPPRESS_SP
Packit Service b7b338
XMLTO_EXTRA += -m manpage-suppress-sp.xsl
Packit Service b7b338
endif
Packit Service b7b338
Packit Service b7b338
ifndef MAN_BASE_URL
Packit Service b7b338
MAN_BASE_URL = file://$(htmldir)/
Packit Service b7b338
endif
Packit Service b7b338
XMLTO_EXTRA +=
Packit Service b7b338
Packit Service b7b338
ifdef GNU_ROFF
Packit Service b7b338
XMLTO_EXTRA +=
Packit Service b7b338
endif
Packit Service b7b338
Packit Service b7b338
SHELL_PATH ?= $(SHELL)
Packit Service b7b338
# Shell quote;
Packit Service b7b338
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
Packit Service b7b338
Packit Service b7b338
ifdef DEFAULT_PAGER
Packit Service b7b338
DEFAULT_PAGER_SQ = $(subst ','\'',$(DEFAULT_PAGER))
Packit Service b7b338
endif
Packit Service b7b338
Packit Service b7b338
ifdef DEFAULT_EDITOR
Packit Service b7b338
DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR))
Packit Service b7b338
endif
Packit Service b7b338
Packit Service b7b338
QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
Packit Service b7b338
QUIET_SUBDIR1  =
Packit Service b7b338
Packit Service b7b338
ifneq ($(findstring $(MAKEFLAGS),w),w)
Packit Service b7b338
PRINT_DIR = --no-print-directory
Packit Service b7b338
else # "make -w"
Packit Service b7b338
NO_SUBDIR = :
Packit Service b7b338
endif
Packit Service b7b338
Packit Service b7b338
DESTDIR =
Packit Service b7b338
PREFIX ?= /usr/local
Packit Service b7b338
Packit Service b7b338
all: man html
Packit Service b7b338
Packit Service b7b338
html: $(DOC_HTML)
Packit Service b7b338
Packit Service b7b338
man: man1
Packit Service b7b338
man1: $(DOC_MAN1)
Packit Service b7b338
Packit Service b7b338
install-no-build:
Packit Service b7b338
	$(INSTALL) -d -m 755 $(DESTDIR)$(PREFIX)/share/man/man1
Packit Service b7b338
	$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(PREFIX)/share/man/man1
Packit Service b7b338
Packit Service b7b338
install: install-man
Packit Service b7b338
Packit Service b7b338
install-man: man
Packit Service b7b338
	$(INSTALL) -d -m 755 $(DESTDIR)$(PREFIX)/share/man/man1
Packit Service b7b338
	$(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(PREFIX)/share/man/man1
Packit Service b7b338
Packit Service b7b338
docdep_prereqs = \
Packit Service b7b338
	cmd-list.made $(cmds_txt)
Packit Service b7b338
Packit Service b7b338
doc.dep : $(docdep_prereqs) $(wildcard *.txt) build-docdep.perl
Packit Service b7b338
	$(QUIET_GEN)$(RM) $@+ $@ && \
Packit Service b7b338
	$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
-include doc.dep
Packit Service b7b338
Packit Service b7b338
cmds_txt = cmds-ancillaryinterrogators.txt \
Packit Service b7b338
	cmds-ancillarymanipulators.txt \
Packit Service b7b338
	cmds-mainporcelain.txt \
Packit Service b7b338
	cmds-plumbinginterrogators.txt \
Packit Service b7b338
	cmds-plumbingmanipulators.txt \
Packit Service b7b338
	cmds-synchingrepositories.txt \
Packit Service b7b338
	cmds-synchelpers.txt \
Packit Service b7b338
	cmds-purehelpers.txt \
Packit Service b7b338
	cmds-foreignscminterface.txt
Packit Service b7b338
Packit Service b7b338
$(cmds_txt): cmd-list.made
Packit Service b7b338
Packit Service b7b338
cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
Packit Service b7b338
	$(QUIET_GEN)$(RM) $@ && \
Packit Service b7b338
	$(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \
Packit Service b7b338
	date >$@
Packit Service b7b338
Packit Service b7b338
clean:
Packit Service b7b338
	$(RM) *.xml *.xml+ *.html+
Packit Service b7b338
	$(RM) *.texi *.texi+ *.texi++ nvme.info nvmeman.info
Packit Service b7b338
	$(RM) *.pdf
Packit Service b7b338
	$(RM) howto-index.txt howto/*.html doc.dep
Packit Service b7b338
	$(RM) technical/*.html technical/api-index.txt
Packit Service b7b338
	$(RM) $(cmds_txt) *.made
Packit Service b7b338
	$(RM) manpage-base-url.xsl
Packit Service b7b338
	$(RM) *~
Packit Service b7b338
Packit Service b7b338
clobber: clean
Packit Service b7b338
	$(RM) *.html *.1
Packit Service b7b338
Packit Service b7b338
%.1 : %.xml
Packit Service b7b338
	$(QUIET_XMLTO)$(RM) $@ && \
Packit Service b7b338
	$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
Packit Service b7b338
Packit Service b7b338
%.xml : %.txt 
Packit Service b7b338
	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
Packit Service b7b338
	$(TXT_TO_XML) -d manpage -o $@+ $< && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
user-manual.xml: user-manual.txt user-manual.conf
Packit Service b7b338
	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
Packit Service b7b338
	$(TXT_TO_XML) -d article -o $@+ $< && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
technical/api-index.txt: technical/api-index-skel.txt \
Packit Service b7b338
	technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
Packit Service b7b338
	$(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh
Packit Service b7b338
Packit Service b7b338
XSLT = docbook.xsl
Packit Service b7b338
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
Packit Service b7b338
Packit Service b7b338
nvme.info: user-manual.texi
Packit Service b7b338
	$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
Packit Service b7b338
Packit Service b7b338
user-manual.texi: user-manual.xml
Packit Service b7b338
	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
Packit Service b7b338
	$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
Packit Service b7b338
	$(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
Packit Service b7b338
	rm $@++ && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
user-manual.pdf: user-manual.xml
Packit Service b7b338
	$(QUIET_DBLATEX)$(RM) $@+ $@ && \
Packit Service b7b338
	$(DBLATEX) -o $@+ -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty $< && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
nvmeman.texi: $(MAN_XML) cat-texi.perl
Packit Service b7b338
	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
Packit Service b7b338
	($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \
Packit Service b7b338
		--to-stdout $(xml) &&) true) > $@++ && \
Packit Service b7b338
	$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
Packit Service b7b338
	rm $@++ && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
nvmeman.info: nvmeman.texi
Packit Service b7b338
	$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
Packit Service b7b338
Packit Service b7b338
$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
Packit Service b7b338
	$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
Packit Service b7b338
	$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
Packit Service b7b338
	$(QUIET_GEN)$(RM) $@+ $@ && \
Packit Service b7b338
	'$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@+ && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
WEBDOC_DEST = /pub/software/scm/nvme/docs
Packit Service b7b338
Packit Service b7b338
$(MAN_HTML): %.html : %.txt
Packit Service b7b338
	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
Packit Service b7b338
	$(TXT_TO_HTML) -d manpage -o $@+ $< && \
Packit Service b7b338
	mv $@+ $@
Packit Service b7b338
Packit Service b7b338
quick-install: quick-install-man
Packit Service b7b338
Packit Service b7b338
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
Packit Service b7b338
	$(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
Packit Service b7b338
Packit Service b7b338
install-webdoc : html
Packit Service b7b338
	'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
Packit Service b7b338
Packit Service b7b338
require-manrepo::
Packit Service b7b338
	@if test ! -d $(MAN_REPO); \
Packit Service b7b338
	then echo "nvme-manpages repository must exist at $(MAN_REPO)"; exit 1; fi
Packit Service b7b338
Packit Service b7b338
quick-install-man: require-manrepo
Packit Service b7b338
	'$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(mandir)
Packit Service b7b338
Packit Service b7b338
print-man1:
Packit Service b7b338
	@for i in $(MAN1_TXT); do echo $$i; done
Packit Service b7b338
Packit Service b7b338
.PHONY: FORCE