blob: 81e644cfa11d7badb0381a84acacaa4ea18d3dbf [file] [log] [blame]
sewardjd6bfc842005-07-25 23:01:43 +00001
2##-------------------------------------------------------------
3## HACK: stuff to avoid making the print docs if installing the
4## tools to do so is impractical / too difficult
5##-------------------------------------------------------------
6
7# Comment out the next line to skip building print docs. The default
8# is not to skip building print docs. Note, after changing it
florian4a37e322011-10-19 20:48:45 +00009# you need to re-run autogen.sh and configure to make it take effect.
florian14402d12014-09-04 18:37:56 +000010BUILD_ALL_DOCS=yes
sewardjd6bfc842005-07-25 23:01:43 +000011
12##-------------------------------------------------------------
13## END OF HACK
14##-------------------------------------------------------------
15
njn17594bb2009-08-05 07:39:45 +000016EXTRA_DIST = \
17 README \
18 images/home.png \
19 images/next.png \
20 images/prev.png \
21 images/up.png \
Elliott Hughesed398002017-06-21 14:41:24 -070022 images/kcachegrind_xtree.png \
njn17594bb2009-08-05 07:39:45 +000023 internals/3_0_BUGSTATUS.txt \
24 internals/3_1_BUGSTATUS.txt \
25 internals/3_2_BUGSTATUS.txt \
26 internals/3_3_BUGSTATUS.txt \
27 internals/3_4_BUGSTATUS.txt \
sewardj643205d2009-09-03 10:45:03 +000028 internals/3_5_BUGSTATUS.txt \
sewardj8aa1cb72012-06-30 16:51:00 +000029 internals/3_7_BUGSTATUS.txt \
sewardj12036282012-08-17 09:10:37 +000030 internals/3_8_BUGSTATUS.txt \
sewardj647c0022014-02-05 14:00:16 +000031 internals/3_9_BUGSTATUS.txt \
sewardja0695962014-09-08 11:22:52 +000032 internals/3_10_BUGSTATUS.txt \
Elliott Hughesa0664b92017-04-18 17:46:52 -070033 internals/3_11_BUGSTATUS.txt \
Elliott Hughesed398002017-06-21 14:41:24 -070034 internals/3_12_BUGSTATUS.txt \
sewardj62cf41c2014-11-25 23:19:24 +000035 internals/MERGE_3_10_1.txt \
sewardjde92fef2011-05-31 07:14:42 +000036 internals/arm_thumb_notes_gdbserver.txt \
sewardj45fa9f42012-05-21 10:18:10 +000037 internals/avx-notes.txt \
njn17594bb2009-08-05 07:39:45 +000038 internals/BIG_APP_NOTES.txt \
39 internals/Darwin-notes.txt \
florian0b289e92011-10-23 14:30:08 +000040 internals/SPEC-notes.txt \
njn17594bb2009-08-05 07:39:45 +000041 internals/directory-structure.txt \
42 internals/howto_BUILD_KDE42.txt \
43 internals/howto_oprofile.txt \
44 internals/m_replacemalloc.txt \
45 internals/m_syswrap.txt \
46 internals/module-structure.txt \
florian0b289e92011-10-23 14:30:08 +000047 internals/multiple-architectures.txt \
njn17594bb2009-08-05 07:39:45 +000048 internals/notes.txt \
florian0b289e92011-10-23 14:30:08 +000049 internals/performance.txt \
njn17594bb2009-08-05 07:39:45 +000050 internals/porting-HOWTO.txt \
51 internals/mpi2entries.txt \
52 internals/porting-to-ARM.txt \
sewardjba3e8632015-05-04 08:40:11 +000053 internals/qemu-aarch64-linux-HOWTO.txt \
54 internals/qemu-mips64-linux-HOWTO.txt \
njn17594bb2009-08-05 07:39:45 +000055 internals/register-uses.txt \
56 internals/release-HOWTO.txt \
57 internals/segments-seginfos.txt \
sewardj291849f2012-04-20 23:58:55 +000058 internals/t-chaining-notes.txt \
njn17594bb2009-08-05 07:39:45 +000059 internals/threads-syscalls-signals.txt \
60 internals/tm-mutexstates.dot \
61 internals/tm-threadstates.dot \
62 internals/tracking-fn-entry-exit.txt \
63 internals/why-no-libc.txt \
64 internals/xml-output.txt \
65 internals/xml-output-protocol4.txt \
66 lib/line-wrap.xsl \
67 lib/vg_basic.css \
68 lib/vg-fo.xsl \
69 lib/vg-faq2txt.xsl \
70 lib/vg-html-chunk.xsl \
71 lib/vg-html-website.xsl \
72 lib/vg-html-common.xsl \
73 xml/FAQ.xml \
74 xml/dist-docs.xml \
75 xml/index.xml \
76 xml/licenses.xml \
njnabe8b8c2009-08-07 06:54:44 +000077 xml/manpages-index.xml \
njn17594bb2009-08-05 07:39:45 +000078 xml/manual.xml \
79 xml/manual-intro.xml \
80 xml/manual-core.xml \
81 xml/manual-core-adv.xml \
82 xml/manual-writing-tools.xml \
83 xml/design-impl.xml \
84 xml/quick-start-guide.xml \
85 xml/tech-docs.xml \
86 xml/valgrind-manpage.xml \
87 xml/vg-entities.xml \
88 xml/xml_help.txt
njn3e986b22004-11-30 10:43:45 +000089
sewardjd6bfc842005-07-25 23:01:43 +000090
njn3e986b22004-11-30 10:43:45 +000091##-------------------------------------------------------------------
92## Below here is more ordinary make stuff...
93##-------------------------------------------------------------------
njn804947e2005-09-13 04:10:45 +000094myxmldir = $(top_srcdir)/docs/xml
95myimgdir = $(top_srcdir)/docs/images
96mylibdir = $(top_srcdir)/docs/lib
97
98myhtmldir = $(top_builddir)/docs/html
99myprintdir = $(top_builddir)/docs/print
njn3e986b22004-11-30 10:43:45 +0000100
de252c6142005-11-27 04:10:00 +0000101websitedir = $(top_builddir)/docs/website
102valkyriedir = $(top_builddir)/docs/vg-html
103downloadsdir = $(top_builddir)/docs/downloads
104vgdir = $(top_builddir)/docs/valgrind
105
njn3e986b22004-11-30 10:43:45 +0000106XML_CATALOG_FILES = /etc/xml/catalog
107
108# file to log print output to
109LOGFILE = print.log
110
111# validation stuff
112XMLLINT = xmllint
debad57fc2005-12-03 22:33:29 +0000113LINT_FLAGS = --noblanks --noout --xinclude --postvalid --noent
114# validate with docbook 4.3 'cos it supports xml:base natively
115VALID_FLAGS = --dtdvalid http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd
njn3e986b22004-11-30 10:43:45 +0000116XMLLINT_FLAGS = $(LINT_FLAGS) $(VALID_FLAGS)
117
118# stylesheet processor
119XSLTPROC = xsltproc
debad57fc2005-12-03 22:33:29 +0000120XSLTPROC_FLAGS = --nonet --xinclude
njn3e986b22004-11-30 10:43:45 +0000121
122# stylesheets
njn804947e2005-09-13 04:10:45 +0000123XSL_HTML_CHUNK_STYLE = $(mylibdir)/vg-html-chunk.xsl
njn804947e2005-09-13 04:10:45 +0000124XSL_FO_STYLE = $(mylibdir)/vg-fo.xsl
de9bec93c2005-11-25 05:36:48 +0000125XSL_TEXT_STYLE = $(mylibdir)/vg-faq2txt.xsl
de252c6142005-11-27 04:10:00 +0000126XSL_WEBSITE_STYLE = $(mylibdir)/vg-html-website.xsl
njnabe8b8c2009-08-07 06:54:44 +0000127XSL_MAN_STYLES = \
tom164d2fe2011-08-15 08:20:23 +0000128 /usr/share/sgml/docbook/xsl-stylesheets/manpages/docbook.xsl \
njnabe8b8c2009-08-07 06:54:44 +0000129 /usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl \
130 /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl
njn3e986b22004-11-30 10:43:45 +0000131
njnc206a812009-08-07 07:56:20 +0000132all-docs: FAQ.txt man-pages html-docs print-docs
njn3e986b22004-11-30 10:43:45 +0000133
134valid:
njn804947e2005-09-13 04:10:45 +0000135 $(XMLLINT) $(XMLLINT_FLAGS) $(myxmldir)/index.xml
njn3e986b22004-11-30 10:43:45 +0000136
njn15d7c342005-09-30 01:43:32 +0000137# The text version of the FAQ.
de9bec93c2005-11-25 05:36:48 +0000138FAQ.txt:
139 @echo "Generating the text version of the FAQ ..."
140 export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
141 $(XSLTPROC) $(XSLTPROC_FLAGS) -o ./FAQ.txt $(XSL_TEXT_STYLE) $(myxmldir)/FAQ.xml
sewardj163566b2005-11-01 03:08:41 +0000142
njnabe8b8c2009-08-07 06:54:44 +0000143# the valgrind manpages
njnc206a812009-08-07 07:56:20 +0000144man-pages:
sewardj07fce0a2011-10-21 06:16:27 +0000145 set -e; \
njnabe8b8c2009-08-07 06:54:44 +0000146 for x in $(XSL_MAN_STYLES) ; do \
147 if test -f $$x; then \
148 echo "Using manpage stylesheet: $$x"; \
149 export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
150 $(XSLTPROC) $(XSLTPROC_FLAGS) -o ./ $$x $(myxmldir)/manpages-index.xml; \
151 exit 0; \
152 fi; \
153 done; \
154 echo ""; \
155 echo "Error: I can't find the XSL_MAN_STYLE file"; \
156 echo "Please check where it lives on your system, and" \
157 "amend the line 'XSL_MAN_STYLES = ' in this Makefile."; \
158 exit 1;
debad57fc2005-12-03 22:33:29 +0000159
de9bec93c2005-11-25 05:36:48 +0000160# chunked html, on a chapter-by-chapter basis
njn3e986b22004-11-30 10:43:45 +0000161html-docs:
162 @echo "Generating html files..."
njnb0267202005-07-25 21:12:40 +0000163 export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
njn804947e2005-09-13 04:10:45 +0000164 mkdir -p $(myhtmldir) && \
165 /bin/rm -fr $(myhtmldir)/ && \
166 mkdir -p $(myhtmldir)/ && \
167 mkdir -p $(myhtmldir)/images && \
168 cp $(mylibdir)/vg_basic.css $(myhtmldir)/ && \
169 cp $(myimgdir)/*.png $(myhtmldir)/images && \
170 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(myhtmldir)/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
njn3e986b22004-11-30 10:43:45 +0000171
172# pdf and postscript
173print-docs:
njn804947e2005-09-13 04:10:45 +0000174 @echo "Generating PDF file: $(myprintdir)/index.pdf (please be patient)...";
njnb0267202005-07-25 21:12:40 +0000175 export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
njn804947e2005-09-13 04:10:45 +0000176 mkdir -p $(myprintdir) && \
177 mkdir -p $(myprintdir)/images && \
Elliott Hughesed398002017-06-21 14:41:24 -0700178 cp $(myimgdir)/*.png $(myprintdir)/images && \
njn804947e2005-09-13 04:10:45 +0000179 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(myprintdir)/index.fo $(XSL_FO_STYLE) $(myxmldir)/index.xml && \
180 (cd $(myprintdir) && \
njnb0267202005-07-25 21:12:40 +0000181 ( pdfxmltex index.fo && \
182 pdfxmltex index.fo && \
sewardj163566b2005-11-01 03:08:41 +0000183 pdfxmltex index.fo ) &> $(LOGFILE) < /dev/null && \
njn804947e2005-09-13 04:10:45 +0000184 echo "Generating PS file: $(myprintdir)/index.ps ..." && \
sewardj27eca032005-07-25 17:53:46 +0000185 pdftops index.pdf && \
njnb0267202005-07-25 21:12:40 +0000186 rm -f *.log *.aux *.fo *.out)
njn3e986b22004-11-30 10:43:45 +0000187
188# If the docs have been built, install them. But don't worry if they have
189# not -- developers do 'make install' not from a 'make dist'-ified distro all
190# the time.
sewardjd6bfc842005-07-25 23:01:43 +0000191#
192# Note: this is done at 'make install' time.
193# Note 2: the ifeq/else/endif have to be indented one space
194# because otherwise it seems that automake thinks it should
195# be the one to handle the else/endif parts, not GNU make
196# as we intend.
njn3e986b22004-11-30 10:43:45 +0000197install-data-hook:
sewardj07fce0a2011-10-21 06:16:27 +0000198 set -e; \
njn3e986b22004-11-30 10:43:45 +0000199 if test -r html ; then \
sewardje60fc582005-12-04 15:00:06 +0000200 mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
201 cp -r html $(DESTDIR)$(datadir)/doc/valgrind; \
njn3e986b22004-11-30 10:43:45 +0000202 fi
njn4d6cb9e2009-08-07 08:31:58 +0000203 for f in *.1 ; do \
204 if test -r $$f ; then \
205 mkdir -p $(DESTDIR)$(mandir)/man1; \
206 cp $$f $(DESTDIR)$(mandir)/man1; \
207 fi \
208 done
sewardjd6bfc842005-07-25 23:01:43 +0000209 ifeq ($(BUILD_ALL_DOCS),yes)
sewardj07fce0a2011-10-21 06:16:27 +0000210 set -e; \
sewardjd6bfc842005-07-25 23:01:43 +0000211 if test -r index.pdf ; then \
sewardje60fc582005-12-04 15:00:06 +0000212 mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
sewardj645580e2005-07-25 23:36:58 +0000213 cp index.pdf $(DESTDIR)$(datadir)/doc/valgrind/valgrind_manual.pdf; \
sewardjd6bfc842005-07-25 23:01:43 +0000214 fi
sewardj07fce0a2011-10-21 06:16:27 +0000215 set -e; \
sewardjd6bfc842005-07-25 23:01:43 +0000216 if test -r index.ps ; then \
sewardje60fc582005-12-04 15:00:06 +0000217 mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
sewardj645580e2005-07-25 23:36:58 +0000218 cp index.ps $(DESTDIR)$(datadir)/doc/valgrind/valgrind_manual.ps; \
sewardjd6bfc842005-07-25 23:01:43 +0000219 fi
220 endif
njn3e986b22004-11-30 10:43:45 +0000221
sewardje60fc582005-12-04 15:00:06 +0000222# This is done at 'make dist' time. It builds the html docs, print
njn4d6cb9e2009-08-07 08:31:58 +0000223# docs and man pages and copies them into the docs/ directory in the
sewardje60fc582005-12-04 15:00:06 +0000224# tarball.
sewardjd6bfc842005-07-25 23:01:43 +0000225 ifeq ($(BUILD_ALL_DOCS),yes)
njn4d6cb9e2009-08-07 08:31:58 +0000226dist-hook: FAQ.txt html-docs man-pages print-docs
sewardjd6bfc842005-07-25 23:01:43 +0000227 cp -r html $(distdir)
njn15d7c342005-09-30 01:43:32 +0000228 cp FAQ.txt $(distdir)/..
njn4d6cb9e2009-08-07 08:31:58 +0000229 cp *.1 $(distdir)
sewardjd6bfc842005-07-25 23:01:43 +0000230 cp print/index.pdf $(distdir)
231 cp print/index.ps $(distdir)
232 else
njnc206a812009-08-07 07:56:20 +0000233dist-hook: FAQ.txt html-docs man-pages
sewardjd6bfc842005-07-25 23:01:43 +0000234 cp -r html $(distdir)
njn4d6cb9e2009-08-07 08:31:58 +0000235 cp FAQ.txt $(distdir)/..
236 cp *.1 $(distdir)
sewardjd6bfc842005-07-25 23:01:43 +0000237 endif
njn3e986b22004-11-30 10:43:45 +0000238
239distclean-local:
240 rm -rf html print
mjwfbde9cf2014-05-09 14:25:39 +0000241 rm -f FAQ.txt
njn4d6cb9e2009-08-07 08:31:58 +0000242 rm -f $(top_builddir)/FAQ.txt $(top_builddir)/docs/*.1
de252c6142005-11-27 04:10:00 +0000243
244
245
sewardje60fc582005-12-04 15:00:06 +0000246# -----------------------------------------------------------------------
247# Note: the rest of this file is nothing to do with the normal build
248# tree. The stuff below contains special targets for web-site
249# artefacts.
de252c6142005-11-27 04:10:00 +0000250
251# chunked html with no html/body tags, css, or top nav, to fit into the website
252website-docs:
253 @echo "Generating website html files ..."
254 export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
255 /bin/rm -fr $(websitedir)
256 mkdir -p $(websitedir)
257 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(websitedir)/ $(XSL_WEBSITE_STYLE) $(myxmldir)/index.xml
258
259# valkyrie carries around her own copy of the valgrind manual
260valkyrie-docs:
261 @echo "Generating a set of valgrind docs for valkyrie..."
262 export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
263 /bin/rm -fr $(valkyriedir)
264 mkdir -p $(valkyriedir)
265 mkdir -p $(valkyriedir)/images
266 cp $(mylibdir)/vg_basic.css $(valkyriedir)/
267 cp $(myimgdir)/*.png $(valkyriedir)/images/
268 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(valkyriedir)/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
269
270# html.tar.bz2, .pdf, .ps.bz2 files for downloading from the website
271download-docs:
272 export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
273 /bin/rm -fr $(downloadsdir)
274 mkdir -p $(downloadsdir)
275 @echo ""
276 @echo "Generating valgrind_manual.html.tar.bz2 ..."
277 export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
278 /bin/rm -fr $(vgdir)
279 mkdir -p $(vgdir)
280 mkdir -p $(vgdir)/html
281 mkdir -p $(vgdir)/html/images
282 cp $(mylibdir)/vg_basic.css $(vgdir)/html/
283 cp $(myimgdir)/*.png $(vgdir)/html/images/
284 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(vgdir)/html/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
285 (cd $(top_builddir)/docs/ && \
286 (tar cfj $(downloadsdir)/valgrind_manual.html.tar.bz2 ./valgrind/html/ ) )
287 /bin/rm -fr $(vgdir)/html/
288 @echo ""
289 @echo "Generating valgrind_manual.pdf ..."
290 mkdir -p $(vgdir)/print
291 mkdir -p $(vgdir)/print/images
de252c6142005-11-27 04:10:00 +0000292 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(vgdir)/print/manual.fo $(XSL_FO_STYLE) $(myxmldir)/index.xml
293 (cd $(vgdir)/print/ && \
294 ( pdfxmltex manual.fo && \
295 pdfxmltex manual.fo && \
296 pdfxmltex manual.fo ) &> $(LOGFILE) < /dev/null )
297 @echo ""
298 @echo "Generating valgrind_manual.ps.bz2 ..."
299 (cd $(vgdir)/print/ && \
300 ( pdftops manual.pdf ) )
301 mv $(vgdir)/print/manual.pdf $(downloadsdir)/valgrind_manual.pdf
302 mv $(vgdir)/print/manual.ps $(downloadsdir)/valgrind_manual.ps
303 bzip2 $(downloadsdir)/valgrind_manual.ps
304 /bin/rm -fr $(vgdir)