2013-05-06 22:40:14 +04:00
i n c l u d e . . / . . / s c r i p t s / M a k e f i l e . i n c l u d e
2012-09-28 21:47:07 +04:00
i n c l u d e . . / c o n f i g / u t i l i t i e s . m a k
2009-05-30 14:38:51 +04:00
MAN1_TXT = \
$( filter-out $( addsuffix .txt, $( ARTICLES) $( SP_ARTICLES) ) , \
$( wildcard perf-*.txt) ) \
perf.txt
MAN5_TXT =
MAN7_TXT =
MAN_TXT = $( MAN1_TXT) $( MAN5_TXT) $( MAN7_TXT)
2012-02-06 19:17:23 +04:00
_MAN_XML = $( patsubst %.txt,%.xml,$( MAN_TXT) )
_MAN_HTML = $( patsubst %.txt,%.html,$( MAN_TXT) )
2009-05-30 14:38:51 +04:00
2012-02-06 19:17:23 +04:00
MAN_XML = $( addprefix $( OUTPUT) ,$( _MAN_XML) )
MAN_HTML = $( addprefix $( OUTPUT) ,$( _MAN_HTML) )
2009-05-30 14:38:51 +04:00
ARTICLES =
# with their own formatting rules.
SP_ARTICLES =
API_DOCS = $( patsubst %.txt,%,$( filter-out technical/api-index-skel.txt technical/api-index.txt, $( wildcard technical/api-*.txt) ) )
SP_ARTICLES += $( API_DOCS)
SP_ARTICLES += technical/api-index
2012-02-06 19:17:23 +04:00
_DOC_HTML = $( _MAN_HTML)
_DOC_HTML += $( patsubst %,%.html,$( ARTICLES) $( SP_ARTICLES) )
DOC_HTML = $( addprefix $( OUTPUT) ,$( _DOC_HTML) )
2009-05-30 14:38:51 +04:00
2012-02-06 19:17:23 +04:00
_DOC_MAN1 = $( patsubst %.txt,%.1,$( MAN1_TXT) )
_DOC_MAN5 = $( patsubst %.txt,%.5,$( MAN5_TXT) )
_DOC_MAN7 = $( patsubst %.txt,%.7,$( MAN7_TXT) )
DOC_MAN1 = $( addprefix $( OUTPUT) ,$( _DOC_MAN1) )
DOC_MAN5 = $( addprefix $( OUTPUT) ,$( _DOC_MAN5) )
DOC_MAN7 = $( addprefix $( OUTPUT) ,$( _DOC_MAN7) )
2009-05-30 14:38:51 +04:00
2010-03-11 15:57:00 +03:00
# Make the path relative to DESTDIR, not prefix
i f n d e f D E S T D I R
2009-05-30 14:38:51 +04:00
prefix ?= $( HOME)
2010-03-11 15:57:00 +03:00
e n d i f
2009-05-30 14:38:51 +04:00
bindir ?= $( prefix) /bin
htmldir ?= $( prefix) /share/doc/perf-doc
pdfdir ?= $( prefix) /share/doc/perf-doc
mandir ?= $( prefix) /share/man
man1dir = $( mandir) /man1
man5dir = $( mandir) /man5
man7dir = $( mandir) /man7
ASCIIDOC = asciidoc
2009-08-18 20:41:25 +04:00
ASCIIDOC_EXTRA = --unsafe
2009-05-30 14:38:51 +04:00
MANPAGE_XSL = manpage-normal.xsl
XMLTO_EXTRA =
INSTALL ?= install
RM ?= rm -f
DOC_REF = origin/man
HTML_REF = origin/html
infodir ?= $( prefix) /share/info
MAKEINFO = makeinfo
INSTALL_INFO = install-info
DOCBOOK2X_TEXI = docbook2x-texi
DBLATEX = dblatex
2012-09-28 21:47:07 +04:00
XMLTO = xmlto
2009-05-30 14:38:51 +04:00
i f n d e f P E R L _ P A T H
PERL_PATH = /usr/bin/perl
e n d i f
- i n c l u d e . . / c o n f i g . m a k . a u t o g e n
- i n c l u d e . . / c o n f i g . m a k
2012-09-28 21:47:07 +04:00
_tmp_tool_path := $( call get-executable,$( ASCIIDOC) )
i f e q ( $( _tmp_tool_path ) , )
missing_tools = $( ASCIIDOC)
e n d i f
_tmp_tool_path := $( call get-executable,$( XMLTO) )
i f e q ( $( _tmp_tool_path ) , )
missing_tools += $( XMLTO)
e n d i f
2009-05-30 14:38:51 +04:00
#
# For asciidoc ...
# -7.1.2, no extra settings are needed.
# 8.0-, set ASCIIDOC8.
#
#
# For docbook-xsl ...
# -1.68.1, set ASCIIDOC_NO_ROFF? (based on changelog from 1.73.0)
# 1.69.0, no extra settings are needed?
# 1.69.1-1.71.0, set DOCBOOK_SUPPRESS_SP?
# 1.71.1, no extra settings are needed?
# 1.72.0, set DOCBOOK_XSL_172.
# 1.73.0-, set ASCIIDOC_NO_ROFF
#
#
# If you had been using DOCBOOK_XSL_172 in an attempt to get rid
# of 'the ".ft C" problem' in your generated manpages, and you
# instead ended up with weird characters around callouts, try
# using ASCIIDOC_NO_ROFF instead (it works fine with ASCIIDOC8).
#
i f d e f A S C I I D O C 8
ASCIIDOC_EXTRA += -a asciidoc7compatible
e n d i f
i f d e f D O C B O O K _ X S L _ 1 7 2
ASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
MANPAGE_XSL = manpage-1.72.xsl
e l s e
ifdef ASCIIDOC_NO_ROFF
# docbook-xsl after 1.72 needs the regular XSL, but will not
# pass-thru raw roff codes from asciidoc.conf, so turn them off.
ASCIIDOC_EXTRA += -a perf-asciidoc-no-roff
endif
e n d i f
i f d e f M A N _ B O L D _ L I T E R A L
XMLTO_EXTRA += -m manpage-bold-literal.xsl
e n d i f
i f d e f D O C B O O K _ S U P P R E S S _ S P
XMLTO_EXTRA += -m manpage-suppress-sp.xsl
e n d i f
SHELL_PATH ?= $( SHELL)
# Shell quote;
SHELL_PATH_SQ = $( subst ',' \' ' ,$( SHELL_PATH) )
#
# Please note that there is a minor bug in asciidoc.
# The version after 6.0.3 _will_ include the patch found here:
# http://marc.theaimsgroup.com/?l=perf&m=111558757202243&w=2
#
# Until that version is released you may have to apply the patch
# yourself - yes, all 6 characters of it!
#
QUIET_SUBDIR0 = +$( MAKE) -C # space to separate -C and subdir
QUIET_SUBDIR1 =
i f n e q ( $( findstring $ ( MAKEFLAGS ) ,w ) , w )
PRINT_DIR = --no-print-directory
e l s e # "make -w"
NO_SUBDIR = :
e n d i f
i f n e q ( $( findstring $ ( MAKEFLAGS ) ,s ) , s )
2013-05-03 17:49:53 +04:00
i f n e q ( $( V ) , 1 )
2009-05-30 14:38:51 +04:00
QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@ ;
QUIET_XMLTO = @echo ' ' XMLTO $@ ;
QUIET_DB2TEXI = @echo ' ' DB2TEXI $@ ;
QUIET_MAKEINFO = @echo ' ' MAKEINFO $@ ;
QUIET_DBLATEX = @echo ' ' DBLATEX $@ ;
QUIET_XSLTPROC = @echo ' ' XSLTPROC $@ ;
QUIET_GEN = @echo ' ' GEN $@ ;
QUIET_STDERR = 2> /dev/null
QUIET_SUBDIR0 = +@subdir=
QUIET_SUBDIR1 = ; $( NO_SUBDIR) echo ' ' SUBDIR $$ subdir; \
$( MAKE) $( PRINT_DIR) -C $$ subdir
export V
e n d i f
e n d i f
all : html man
html : $( DOC_HTML )
$(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7) : asciidoc .conf
man : man 1 man 5 man 7
man1 : $( DOC_MAN 1)
man5 : $( DOC_MAN 5)
man7 : $( DOC_MAN 7)
2012-02-06 19:17:23 +04:00
info : $( OUTPUT ) perf .info $( OUTPUT ) perfman .info
2009-05-30 14:38:51 +04:00
2012-02-06 19:17:23 +04:00
pdf : $( OUTPUT ) user -manual .pdf
2009-05-30 14:38:51 +04:00
install : install -man
2012-09-28 21:47:07 +04:00
check-man-tools :
i f d e f m i s s i n g _ t o o l s
$( error " You need to install $( missing_tools) for man pages " )
e n d i f
do-install-man : man
2009-05-30 14:38:51 +04:00
$( INSTALL) -d -m 755 $( DESTDIR) $( man1dir)
# $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir)
# $(INSTALL) -d -m 755 $(DESTDIR)$(man7dir)
$( INSTALL) -m 644 $( DOC_MAN1) $( DESTDIR) $( man1dir)
# $(INSTALL) -m 644 $(DOC_MAN5) $(DESTDIR)$(man5dir)
# $(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
2012-09-28 21:47:07 +04:00
install-man : check -man -tools man
try-install-man :
i f d e f m i s s i n g _ t o o l s
$( warning Please install $( missing_tools) to have the man pages installed)
e l s e
$( MAKE) do -install-man
e n d i f
2009-05-30 14:38:51 +04:00
install-info : info
$( INSTALL) -d -m 755 $( DESTDIR) $( infodir)
2012-02-06 19:17:23 +04:00
$( INSTALL) -m 644 $( OUTPUT) perf.info $( OUTPUT) perfman.info $( DESTDIR) $( infodir)
2009-05-30 14:38:51 +04:00
if test -r $( DESTDIR) $( infodir) /dir; then \
$( INSTALL_INFO) --info-dir= $( DESTDIR) $( infodir) perf.info ; \
$( INSTALL_INFO) --info-dir= $( DESTDIR) $( infodir) perfman.info ; \
else \
echo " No directory found in $( DESTDIR) $( infodir) " >& 2 ; \
fi
install-pdf : pdf
$( INSTALL) -d -m 755 $( DESTDIR) $( pdfdir)
2012-02-06 19:17:23 +04:00
$( INSTALL) -m 644 $( OUTPUT) user-manual.pdf $( DESTDIR) $( pdfdir)
2009-05-30 14:38:51 +04:00
2011-02-10 04:11:00 +03:00
#install-html: html
# '$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
2009-05-30 14:38:51 +04:00
2012-11-14 08:39:50 +04:00
i f n e q ( $( MAKECMDGOALS ) , c l e a n )
2012-11-29 23:34:21 +04:00
i f n e q ( $( MAKECMDGOALS ) , t a g s )
2012-08-07 21:43:11 +04:00
$(OUTPUT)PERF-VERSION-FILE : .FORCE -PERF -VERSION -FILE
$( QUIET_SUBDIR0) ../ $( QUIET_SUBDIR1) $( OUTPUT) PERF-VERSION-FILE
2009-05-30 14:38:51 +04:00
2012-08-07 21:43:11 +04:00
- i n c l u d e $( OUTPUT ) P E R F - V E R S I O N - F I L E
2012-11-14 08:39:50 +04:00
e n d i f
2012-11-29 23:34:21 +04:00
e n d i f
2009-05-30 14:38:51 +04:00
#
# Determine "include::" file references in asciidoc files.
#
2012-02-06 19:17:23 +04:00
$(OUTPUT)doc.dep : $( wildcard *.txt ) build -docdep .perl
2009-05-30 14:38:51 +04:00
$( QUIET_GEN) $( RM) $@ + $@ && \
$( PERL_PATH) ./build-docdep.perl >$@ + $( QUIET_STDERR) && \
mv $@ + $@
2012-02-06 19:17:23 +04:00
- i n c l u d e $( OUPTUT ) d o c . d e p
2009-05-30 14:38:51 +04:00
2012-02-06 19:17:23 +04:00
_cmds_txt = cmds-ancillaryinterrogators.txt \
2009-05-30 14:38:51 +04:00
cmds-ancillarymanipulators.txt \
cmds-mainporcelain.txt \
cmds-plumbinginterrogators.txt \
cmds-plumbingmanipulators.txt \
cmds-synchingrepositories.txt \
cmds-synchelpers.txt \
cmds-purehelpers.txt \
cmds-foreignscminterface.txt
2012-02-06 19:17:23 +04:00
cmds_txt = $( addprefix $( OUTPUT) ,$( _cmds_txt) )
2009-05-30 14:38:51 +04:00
2012-02-06 19:17:23 +04:00
$(cmds_txt) : $( OUTPUT ) cmd -list .made
2009-05-30 14:38:51 +04:00
2012-02-06 19:17:23 +04:00
$(OUTPUT)cmd-list.made : cmd -list .perl ../command -list .txt $( MAN 1_TXT )
2009-05-30 14:38:51 +04:00
$( QUIET_GEN) $( RM) $@ && \
$( PERL_PATH) ./cmd-list.perl ../command-list.txt $( QUIET_STDERR) && \
date >$@
clean :
2012-02-06 19:17:23 +04:00
$( RM) $( MAN_XML) $( addsuffix +,$( MAN_XML) )
$( RM) $( MAN_HTML) $( addsuffix +,$( MAN_HTML) )
$( RM) $( DOC_HTML) $( DOC_MAN1) $( DOC_MAN5) $( DOC_MAN7)
$( RM) $( OUTPUT) *.texi $( OUTPUT) *.texi+ $( OUTPUT) *.texi++
$( RM) $( OUTPUT) perf.info $( OUTPUT) perfman.info
$( RM) $( OUTPUT) howto-index.txt $( OUTPUT) howto/*.html $( OUTPUT) doc.dep
$( RM) $( OUTPUT) technical/api-*.html $( OUTPUT) technical/api-index.txt
$( RM) $( cmds_txt) $( OUTPUT) *.made
$(MAN_HTML) : $( OUTPUT ) %.html : %.txt
2009-05-30 14:38:51 +04:00
$( QUIET_ASCIIDOC) $( RM) $@ + $@ && \
$( ASCIIDOC) -b xhtml11 -d manpage -f asciidoc.conf \
$( ASCIIDOC_EXTRA) -aperf_version= $( PERF_VERSION) -o $@ + $< && \
mv $@ + $@
2012-02-06 19:17:23 +04:00
$(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : $( OUTPUT ) %.xml
2009-05-30 14:38:51 +04:00
$( QUIET_XMLTO) $( RM) $@ && \
2013-05-06 22:40:14 +04:00
$( XMLTO) -o $( OUTPUT) . -m $( MANPAGE_XSL) $( XMLTO_EXTRA) man $<
2009-05-30 14:38:51 +04:00
2012-02-06 19:17:23 +04:00
$(OUTPUT)%.xml : %.txt
2009-05-30 14:38:51 +04:00
$( QUIET_ASCIIDOC) $( RM) $@ + $@ && \
$( ASCIIDOC) -b docbook -d manpage -f asciidoc.conf \
$( ASCIIDOC_EXTRA) -aperf_version= $( PERF_VERSION) -o $@ + $< && \
mv $@ + $@
XSLT = docbook.xsl
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
2012-02-06 19:17:23 +04:00
$(OUTPUT)user-manual.html : $( OUTPUT ) user -manual .xml
2009-05-30 14:38:51 +04:00
$( QUIET_XSLTPROC) xsltproc $( XSLTOPTS) -o $@ $( XSLT) $<
2012-02-06 19:17:23 +04:00
$(OUTPUT)perf.info : $( OUTPUT ) user -manual .texi
$( QUIET_MAKEINFO) $( MAKEINFO) --no-split -o $@ $( OUTPUT) user-manual.texi
2009-05-30 14:38:51 +04:00
2012-02-06 19:17:23 +04:00
$(OUTPUT)user-manual.texi : $( OUTPUT ) user -manual .xml
2009-05-30 14:38:51 +04:00
$( QUIET_DB2TEXI) $( RM) $@ + $@ && \
2012-02-06 19:17:23 +04:00
$( DOCBOOK2X_TEXI) $( OUTPUT) user-manual.xml --encoding= UTF-8 --to-stdout >$@ ++ && \
2009-05-30 14:38:51 +04:00
$( PERL_PATH) fix-texi.perl <$@ ++ >$@ + && \
rm $@ ++ && \
mv $@ + $@
2012-02-06 19:17:23 +04:00
$(OUTPUT)user-manual.pdf : $( OUTPUT ) user -manual .xml
2009-05-30 14:38:51 +04:00
$( QUIET_DBLATEX) $( RM) $@ + $@ && \
$( DBLATEX) -o $@ + -p /etc/asciidoc/dblatex/asciidoc-dblatex.xsl -s /etc/asciidoc/dblatex/asciidoc-dblatex.sty $< && \
mv $@ + $@
2012-02-06 19:17:23 +04:00
$(OUTPUT)perfman.texi : $( MAN_XML ) cat -texi .perl
2009-05-30 14:38:51 +04:00
$( QUIET_DB2TEXI) $( RM) $@ + $@ && \
( $( foreach xml,$( MAN_XML) ,$( DOCBOOK2X_TEXI) --encoding= UTF-8 \
--to-stdout $( xml) && ) true ) > $@ ++ && \
$( PERL_PATH) cat-texi.perl $@ <$@ ++ >$@ + && \
rm $@ ++ && \
mv $@ + $@
2012-02-06 19:17:23 +04:00
$(OUTPUT)perfman.info : $( OUTPUT ) perfman .texi
2009-05-30 14:38:51 +04:00
$( QUIET_MAKEINFO) $( MAKEINFO) --no-split --no-validate $* .texi
$(patsubst %.txt,%.texi,$(MAN_TXT)) : %.texi : %.xml
$( QUIET_DB2TEXI) $( RM) $@ + $@ && \
$( DOCBOOK2X_TEXI) --to-stdout $* .xml >$@ + && \
mv $@ + $@
howto-index.txt : howto -index .sh $( wildcard howto /*.txt )
$( QUIET_GEN) $( RM) $@ + $@ && \
'$(SHELL_PATH_SQ)' ./howto-index.sh $( wildcard howto/*.txt) >$@ + && \
mv $@ + $@
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
$( QUIET_ASCIIDOC) $( ASCIIDOC) -b xhtml11 $* .txt
WEBDOC_DEST = /pub/software/tools/perf/docs
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)) : %.html : %.txt
$( QUIET_ASCIIDOC) $( RM) $@ + $@ && \
sed -e '1,/^$$/d' $< | $( ASCIIDOC) -b xhtml11 - >$@ + && \
mv $@ + $@
2011-02-10 04:11:00 +03:00
# UNIMPLEMENTED
#install-webdoc : html
# '$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)
2009-05-30 14:38:51 +04:00
2011-02-10 04:11:00 +03:00
# quick-install: quick-install-man
2009-05-30 14:38:51 +04:00
2011-02-10 04:11:00 +03:00
# quick-install-man:
# '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(DOC_REF) $(DESTDIR)$(mandir)
2009-05-30 14:38:51 +04:00
2011-02-10 04:11:00 +03:00
#quick-install-html:
# '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(HTML_REF) $(DESTDIR)$(htmldir)
2009-05-30 14:38:51 +04:00
.PHONY : .FORCE -PERF -VERSION -FILE