Add HTML and PDF versions of manual to distribution.

This commit is contained in:
Adam Spiers 2011-11-24 17:33:36 +00:00
parent ea82ef5b8b
commit ad77ca6db7
2 changed files with 34 additions and 11 deletions

5
.gitignore vendored
View file

@ -11,6 +11,11 @@ t/target/
version.texi version.texi
lib/Stow.pm lib/Stow.pm
doc/stow.8 doc/stow.8
doc/stow.pdf
doc/manual.pdf
doc/manual.texi
doc/manual.html
doc/stow.html
.dirstamp .dirstamp
stamp-vti stamp-vti
MYMETA.json MYMETA.json

View file

@ -2,14 +2,16 @@
dist_bin_SCRIPTS = bin/stow bin/chkstow dist_bin_SCRIPTS = bin/stow bin/chkstow
info_TEXINFOS = doc/stow.texi info_TEXINFOS = doc/stow.texi
TEXINFO_TEX = doc/texinfo.tex
dist_man_MANS = doc/stow.8 dist_man_MANS = doc/stow.8
dist_doc_DATA = README dist_doc_DATA = README doc/manual.html doc/manual.pdf
pmdir = $(libdir)/perl5 pmdir = $(libdir)/perl5
dist_pm_DATA = lib/Stow.pm dist_pm_DATA = lib/Stow.pm
pmstowdir = $(pmdir)/Stow pmstowdir = $(pmdir)/Stow
dist_pmstow_DATA = lib/Stow/Util.pm dist_pmstow_DATA = lib/Stow/Util.pm
TEXINFO_TEX = doc/texinfo.tex
export TEXI2DVI_BUILD_MODE = clean
DEFAULT_IGNORE_LIST = default-ignore-list DEFAULT_IGNORE_LIST = default-ignore-list
TESTS_ENVIRONMENT=$(PERL) -I $(top_srcdir) TESTS_ENVIRONMENT=$(PERL) -I $(top_srcdir)
@ -39,7 +41,9 @@ CLEANFILES = $(bin_SCRIPTS) $(dist_pm_DATA)
# clean up files left behind by test suite # clean up files left behind by test suite
clean-local: clean-local:
-rm -rf t/target t/stow -rm -rf t/target t/stow \
bin/stow bin/chkstow doc/stow.8 ChangeLog \
doc/manual.*
# this is more explicit and reliable than the config file trick # this is more explicit and reliable than the config file trick
edit = sed -e 's|[@]PERL[@]|$(PERL)|g' \ edit = sed -e 's|[@]PERL[@]|$(PERL)|g' \
@ -56,20 +60,34 @@ bin/chkstow: bin/chkstow.in Makefile
lib/Stow.pm: lib/Stow.pm.in Makefile $(DEFAULT_IGNORE_LIST) lib/Stow.pm: lib/Stow.pm.in Makefile $(DEFAULT_IGNORE_LIST)
( $(edit) < $<; cat $(DEFAULT_IGNORE_LIST) ) > $@ ( $(edit) < $<; cat $(DEFAULT_IGNORE_LIST) ) > $@
# The rules for manual.html and manual.texi are only used by ##############################################################################
# the developer # The below rules are only used by the developer.
##############################################################################
# It's conventional to generate $project.info, but it's also nicer to
# generate manual.html and manual.pdf (which ultimately go somewhere
# like /usr/share/doc/stow/) rather than stow.html and stow.pdf, to
# make it obvious that these files contain the manual. So we have to
# jump through a few extra hoops. We preserve timestamps to avoid any
# unnecessary rebuilds, since not everyone has texinfo installed.
doc/manual.texi: doc/stow.texi doc/version.texi
[ -d doc ] || mkdir doc # required in vpath mode
cp --preserve=timestamps $< $@
doc/manual.pdf: doc/stow.pdf doc/version.texi
[ -d doc ] || mkdir doc # required in vpath mode
cp --preserve=timestamps $< $@
# It's easier to calculate the absolute path to $(srcdir) rather than
# the relative path to it from the doc/ build subdirectory.
doc/manual.html: doc/manual.texi doc/manual.html: doc/manual.texi
-rm -f $@ -rm -f $@
texi2html -expandinfo -menu -monolithic -verbose $< srcdir=$$( cd $(srcdir); pwd ); \
cd doc && texi2html -I $$srcdir -expandinfo -menu -monolithic -verbose manual.texi
doc/manual.texi: doc/stow.texi
-rm -f $@
cp $< $@
doc/stow.8: bin/stow Makefile doc/stow.8: bin/stow Makefile
pod2man $< > $@ pod2man $< > $@
MODULES = lib/Stow.pm lib/Stow/Util.pm MODULES = lib/Stow.pm lib/Stow/Util.pm
test: bin/stow bin/chkstow $(MODULES) test: bin/stow bin/chkstow $(MODULES)
perl -MTest::Harness -Ilib -It -Ibin -e 'runtests(@ARGV)' t/*.t perl -MTest::Harness -Ilib -It -Ibin -e 'runtests(@ARGV)' t/*.t