1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291
|
##-------------------------------------------------------------
## HACK: stuff to avoid making the print docs if installing the
## tools to do so is impractical / too difficult
##-------------------------------------------------------------
# Comment out the next line to skip building print docs. The default
# is not to skip building print docs. Note, after changing it
# you need to re-run autogen.sh and configure to make it take effect.
BUILD_ALL_DOCS=yes
##-------------------------------------------------------------
## END OF HACK
##-------------------------------------------------------------
EXTRA_DIST = \
README \
images/home.png \
images/next.png \
images/prev.png \
images/up.png \
internals/3_0_BUGSTATUS.txt \
internals/3_1_BUGSTATUS.txt \
internals/3_2_BUGSTATUS.txt \
internals/3_3_BUGSTATUS.txt \
internals/3_4_BUGSTATUS.txt \
internals/3_5_BUGSTATUS.txt \
internals/arm_thumb_notes_gdbserver.txt \
internals/BIG_APP_NOTES.txt \
internals/Darwin-notes.txt \
internals/SPEC-notes.txt \
internals/directory-structure.txt \
internals/howto_BUILD_KDE42.txt \
internals/howto_oprofile.txt \
internals/m_replacemalloc.txt \
internals/m_syswrap.txt \
internals/module-structure.txt \
internals/multiple-architectures.txt \
internals/notes.txt \
internals/performance.txt \
internals/porting-HOWTO.txt \
internals/mpi2entries.txt \
internals/porting-to-ARM.txt \
internals/register-uses.txt \
internals/release-HOWTO.txt \
internals/segments-seginfos.txt \
internals/threads-syscalls-signals.txt \
internals/tm-mutexstates.dot \
internals/tm-threadstates.dot \
internals/tracking-fn-entry-exit.txt \
internals/why-no-libc.txt \
internals/xml-output.txt \
internals/xml-output-protocol4.txt \
lib/line-wrap.xsl \
lib/vg_basic.css \
lib/vg-fo.xsl \
lib/vg-faq2txt.xsl \
lib/vg-html-chunk.xsl \
lib/vg-html-website.xsl \
lib/vg-html-common.xsl \
xml/FAQ.xml \
xml/dist-docs.xml \
xml/index.xml \
xml/licenses.xml \
xml/manpages-index.xml \
xml/manual.xml \
xml/manual-intro.xml \
xml/manual-core.xml \
xml/manual-core-adv.xml \
xml/manual-writing-tools.xml \
xml/design-impl.xml \
xml/quick-start-guide.xml \
xml/tech-docs.xml \
xml/valgrind-manpage.xml \
xml/valgrind-listener-manpage.xml \
xml/vg-entities.xml \
xml/xml_help.txt
##-------------------------------------------------------------------
## Below here is more ordinary make stuff...
##-------------------------------------------------------------------
myxmldir = $(top_srcdir)/docs/xml
myimgdir = $(top_srcdir)/docs/images
mylibdir = $(top_srcdir)/docs/lib
myhtmldir = $(top_builddir)/docs/html
myprintdir = $(top_builddir)/docs/print
websitedir = $(top_builddir)/docs/website
valkyriedir = $(top_builddir)/docs/vg-html
downloadsdir = $(top_builddir)/docs/downloads
vgdir = $(top_builddir)/docs/valgrind
XML_CATALOG_FILES = /etc/xml/catalog
# file to log print output to
LOGFILE = print.log
# validation stuff
XMLLINT = xmllint
LINT_FLAGS = --noblanks --noout --xinclude --postvalid --noent
# validate with docbook 4.3 'cos it supports xml:base natively
VALID_FLAGS = --dtdvalid http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd
XMLLINT_FLAGS = $(LINT_FLAGS) $(VALID_FLAGS)
# stylesheet processor
XSLTPROC = xsltproc
XSLTPROC_FLAGS = --nonet --xinclude
# stylesheets
XSL_HTML_CHUNK_STYLE = $(mylibdir)/vg-html-chunk.xsl
XSL_FO_STYLE = $(mylibdir)/vg-fo.xsl
XSL_TEXT_STYLE = $(mylibdir)/vg-faq2txt.xsl
XSL_WEBSITE_STYLE = $(mylibdir)/vg-html-website.xsl
XSL_MAN_STYLES = \
/usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl \
/usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl \
/usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl
all-docs: FAQ.txt man-pages html-docs print-docs
valid:
$(XMLLINT) $(XMLLINT_FLAGS) $(myxmldir)/index.xml
# The text version of the FAQ.
FAQ.txt:
@echo "Generating the text version of the FAQ ..."
export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ./FAQ.txt $(XSL_TEXT_STYLE) $(myxmldir)/FAQ.xml
# the valgrind manpages
man-pages:
set -e; \
for x in $(XSL_MAN_STYLES) ; do \
if test -f $$x; then \
echo "Using manpage stylesheet: $$x"; \
export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ./ $$x $(myxmldir)/manpages-index.xml; \
exit 0; \
fi; \
done; \
echo ""; \
echo "Error: I can't find the XSL_MAN_STYLE file"; \
echo "Please check where it lives on your system, and" \
"amend the line 'XSL_MAN_STYLES = ' in this Makefile."; \
exit 1;
# chunked html, on a chapter-by-chapter basis
html-docs:
@echo "Generating html files..."
export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
mkdir -p $(myhtmldir) && \
/bin/rm -fr $(myhtmldir)/ && \
mkdir -p $(myhtmldir)/ && \
mkdir -p $(myhtmldir)/images && \
cp $(mylibdir)/vg_basic.css $(myhtmldir)/ && \
cp $(myimgdir)/*.png $(myhtmldir)/images && \
$(XSLTPROC) $(XSLTPROC_FLAGS) -o $(myhtmldir)/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
# pdf and postscript
print-docs:
@echo "Generating PDF file: $(myprintdir)/index.pdf (please be patient)...";
export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
mkdir -p $(myprintdir) && \
mkdir -p $(myprintdir)/images && \
$(XSLTPROC) $(XSLTPROC_FLAGS) -o $(myprintdir)/index.fo $(XSL_FO_STYLE) $(myxmldir)/index.xml && \
(cd $(myprintdir) && \
( pdfxmltex index.fo && \
pdfxmltex index.fo && \
pdfxmltex index.fo ) &> $(LOGFILE) < /dev/null && \
echo "Generating PS file: $(myprintdir)/index.ps ..." && \
pdftops index.pdf && \
rm -f *.log *.aux *.fo *.out)
# If the docs have been built, install them. But don't worry if they have
# not -- developers do 'make install' not from a 'make dist'-ified distro all
# the time.
#
# Note: this is done at 'make install' time.
# Note 2: the ifeq/else/endif have to be indented one space
# because otherwise it seems that automake thinks it should
# be the one to handle the else/endif parts, not GNU make
# as we intend.
install-data-hook:
set -e; \
if test -r html ; then \
mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
cp -r html $(DESTDIR)$(datadir)/doc/valgrind; \
fi
for f in *.1 ; do \
if test -r $$f ; then \
mkdir -p $(DESTDIR)$(mandir)/man1; \
cp $$f $(DESTDIR)$(mandir)/man1; \
fi \
done
ifeq ($(BUILD_ALL_DOCS),yes)
set -e; \
if test -r index.pdf ; then \
mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
cp index.pdf $(DESTDIR)$(datadir)/doc/valgrind/valgrind_manual.pdf; \
fi
set -e; \
if test -r index.ps ; then \
mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
cp index.ps $(DESTDIR)$(datadir)/doc/valgrind/valgrind_manual.ps; \
fi
endif
# This is done at 'make dist' time. It builds the html docs, print
# docs and man pages and copies them into the docs/ directory in the
# tarball.
ifeq ($(BUILD_ALL_DOCS),yes)
dist-hook: FAQ.txt html-docs man-pages print-docs
cp -r html $(distdir)
cp FAQ.txt $(distdir)/..
cp *.1 $(distdir)
cp print/index.pdf $(distdir)
cp print/index.ps $(distdir)
else
dist-hook: FAQ.txt html-docs man-pages
cp -r html $(distdir)
cp FAQ.txt $(distdir)/..
cp *.1 $(distdir)
endif
distclean-local:
rm -rf html print
rm -f $(top_builddir)/FAQ.txt $(top_builddir)/docs/*.1
# -----------------------------------------------------------------------
# Note: the rest of this file is nothing to do with the normal build
# tree. The stuff below contains special targets for web-site
# artefacts.
# chunked html with no html/body tags, css, or top nav, to fit into the website
website-docs:
@echo "Generating website html files ..."
export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
/bin/rm -fr $(websitedir)
mkdir -p $(websitedir)
$(XSLTPROC) $(XSLTPROC_FLAGS) -o $(websitedir)/ $(XSL_WEBSITE_STYLE) $(myxmldir)/index.xml
# valkyrie carries around her own copy of the valgrind manual
valkyrie-docs:
@echo "Generating a set of valgrind docs for valkyrie..."
export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
/bin/rm -fr $(valkyriedir)
mkdir -p $(valkyriedir)
mkdir -p $(valkyriedir)/images
cp $(mylibdir)/vg_basic.css $(valkyriedir)/
cp $(myimgdir)/*.png $(valkyriedir)/images/
$(XSLTPROC) $(XSLTPROC_FLAGS) -o $(valkyriedir)/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
# html.tar.bz2, .pdf, .ps.bz2 files for downloading from the website
download-docs:
export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
/bin/rm -fr $(downloadsdir)
mkdir -p $(downloadsdir)
@echo ""
@echo "Generating valgrind_manual.html.tar.bz2 ..."
export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
/bin/rm -fr $(vgdir)
mkdir -p $(vgdir)
mkdir -p $(vgdir)/html
mkdir -p $(vgdir)/html/images
cp $(mylibdir)/vg_basic.css $(vgdir)/html/
cp $(myimgdir)/*.png $(vgdir)/html/images/
$(XSLTPROC) $(XSLTPROC_FLAGS) -o $(vgdir)/html/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
(cd $(top_builddir)/docs/ && \
(tar cfj $(downloadsdir)/valgrind_manual.html.tar.bz2 ./valgrind/html/ ) )
/bin/rm -fr $(vgdir)/html/
@echo ""
@echo "Generating valgrind_manual.pdf ..."
mkdir -p $(vgdir)/print
mkdir -p $(vgdir)/print/images
$(XSLTPROC) $(XSLTPROC_FLAGS) -o $(vgdir)/print/manual.fo $(XSL_FO_STYLE) $(myxmldir)/index.xml
(cd $(vgdir)/print/ && \
( pdfxmltex manual.fo && \
pdfxmltex manual.fo && \
pdfxmltex manual.fo ) &> $(LOGFILE) < /dev/null )
@echo ""
@echo "Generating valgrind_manual.ps.bz2 ..."
(cd $(vgdir)/print/ && \
( pdftops manual.pdf ) )
mv $(vgdir)/print/manual.pdf $(downloadsdir)/valgrind_manual.pdf
mv $(vgdir)/print/manual.ps $(downloadsdir)/valgrind_manual.ps
bzip2 $(downloadsdir)/valgrind_manual.ps
/bin/rm -fr $(vgdir)
|