blob: 62dd47988b1100adcead4c54103701bf1354c628 [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
9# you of course need to re-run configure to make it take effect.
njn54cd5602005-09-30 02:17:40 +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 \
22 internals/3_0_BUGSTATUS.txt \
23 internals/3_1_BUGSTATUS.txt \
24 internals/3_2_BUGSTATUS.txt \
25 internals/3_3_BUGSTATUS.txt \
26 internals/3_4_BUGSTATUS.txt \
sewardj643205d2009-09-03 10:45:03 +000027 internals/3_5_BUGSTATUS.txt \
njn17594bb2009-08-05 07:39:45 +000028 internals/BIG_APP_NOTES.txt \
29 internals/Darwin-notes.txt \
30 internals/directory-structure.txt \
31 internals/howto_BUILD_KDE42.txt \
32 internals/howto_oprofile.txt \
33 internals/m_replacemalloc.txt \
34 internals/m_syswrap.txt \
35 internals/module-structure.txt \
36 internals/notes.txt \
37 internals/porting-HOWTO.txt \
38 internals/mpi2entries.txt \
39 internals/porting-to-ARM.txt \
40 internals/register-uses.txt \
41 internals/release-HOWTO.txt \
42 internals/segments-seginfos.txt \
43 internals/threads-syscalls-signals.txt \
44 internals/tm-mutexstates.dot \
45 internals/tm-threadstates.dot \
46 internals/tracking-fn-entry-exit.txt \
47 internals/why-no-libc.txt \
48 internals/xml-output.txt \
49 internals/xml-output-protocol4.txt \
50 lib/line-wrap.xsl \
51 lib/vg_basic.css \
52 lib/vg-fo.xsl \
53 lib/vg-faq2txt.xsl \
54 lib/vg-html-chunk.xsl \
55 lib/vg-html-website.xsl \
56 lib/vg-html-common.xsl \
57 xml/FAQ.xml \
58 xml/dist-docs.xml \
59 xml/index.xml \
60 xml/licenses.xml \
njnabe8b8c2009-08-07 06:54:44 +000061 xml/manpages-index.xml \
njn17594bb2009-08-05 07:39:45 +000062 xml/manual.xml \
63 xml/manual-intro.xml \
64 xml/manual-core.xml \
65 xml/manual-core-adv.xml \
66 xml/manual-writing-tools.xml \
67 xml/design-impl.xml \
68 xml/quick-start-guide.xml \
69 xml/tech-docs.xml \
70 xml/valgrind-manpage.xml \
71 xml/vg-entities.xml \
72 xml/xml_help.txt
njn3e986b22004-11-30 10:43:45 +000073
sewardjd6bfc842005-07-25 23:01:43 +000074
njn3e986b22004-11-30 10:43:45 +000075##-------------------------------------------------------------------
76## Below here is more ordinary make stuff...
77##-------------------------------------------------------------------
njn804947e2005-09-13 04:10:45 +000078myxmldir = $(top_srcdir)/docs/xml
79myimgdir = $(top_srcdir)/docs/images
80mylibdir = $(top_srcdir)/docs/lib
81
82myhtmldir = $(top_builddir)/docs/html
83myprintdir = $(top_builddir)/docs/print
njn3e986b22004-11-30 10:43:45 +000084
de252c6142005-11-27 04:10:00 +000085websitedir = $(top_builddir)/docs/website
86valkyriedir = $(top_builddir)/docs/vg-html
87downloadsdir = $(top_builddir)/docs/downloads
88vgdir = $(top_builddir)/docs/valgrind
89
njn3e986b22004-11-30 10:43:45 +000090XML_CATALOG_FILES = /etc/xml/catalog
91
92# file to log print output to
93LOGFILE = print.log
94
95# validation stuff
96XMLLINT = xmllint
debad57fc2005-12-03 22:33:29 +000097LINT_FLAGS = --noblanks --noout --xinclude --postvalid --noent
98# validate with docbook 4.3 'cos it supports xml:base natively
99VALID_FLAGS = --dtdvalid http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd
njn3e986b22004-11-30 10:43:45 +0000100XMLLINT_FLAGS = $(LINT_FLAGS) $(VALID_FLAGS)
101
102# stylesheet processor
103XSLTPROC = xsltproc
debad57fc2005-12-03 22:33:29 +0000104XSLTPROC_FLAGS = --nonet --xinclude
njn3e986b22004-11-30 10:43:45 +0000105
106# stylesheets
njn804947e2005-09-13 04:10:45 +0000107XSL_HTML_CHUNK_STYLE = $(mylibdir)/vg-html-chunk.xsl
njn804947e2005-09-13 04:10:45 +0000108XSL_FO_STYLE = $(mylibdir)/vg-fo.xsl
de9bec93c2005-11-25 05:36:48 +0000109XSL_TEXT_STYLE = $(mylibdir)/vg-faq2txt.xsl
de252c6142005-11-27 04:10:00 +0000110XSL_WEBSITE_STYLE = $(mylibdir)/vg-html-website.xsl
njnabe8b8c2009-08-07 06:54:44 +0000111XSL_MAN_STYLES = \
112 /usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl \
113 /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl
njn3e986b22004-11-30 10:43:45 +0000114
njnc206a812009-08-07 07:56:20 +0000115all-docs: FAQ.txt man-pages html-docs print-docs
njn3e986b22004-11-30 10:43:45 +0000116
117valid:
njn804947e2005-09-13 04:10:45 +0000118 $(XMLLINT) $(XMLLINT_FLAGS) $(myxmldir)/index.xml
njn3e986b22004-11-30 10:43:45 +0000119
njn15d7c342005-09-30 01:43:32 +0000120# The text version of the FAQ.
de9bec93c2005-11-25 05:36:48 +0000121FAQ.txt:
122 @echo "Generating the text version of the FAQ ..."
123 export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
124 $(XSLTPROC) $(XSLTPROC_FLAGS) -o ./FAQ.txt $(XSL_TEXT_STYLE) $(myxmldir)/FAQ.xml
sewardj163566b2005-11-01 03:08:41 +0000125
njnabe8b8c2009-08-07 06:54:44 +0000126# the valgrind manpages
njnc206a812009-08-07 07:56:20 +0000127man-pages:
njnabe8b8c2009-08-07 06:54:44 +0000128 for x in $(XSL_MAN_STYLES) ; do \
129 if test -f $$x; then \
130 echo "Using manpage stylesheet: $$x"; \
131 export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
132 $(XSLTPROC) $(XSLTPROC_FLAGS) -o ./ $$x $(myxmldir)/manpages-index.xml; \
133 exit 0; \
134 fi; \
135 done; \
136 echo ""; \
137 echo "Error: I can't find the XSL_MAN_STYLE file"; \
138 echo "Please check where it lives on your system, and" \
139 "amend the line 'XSL_MAN_STYLES = ' in this Makefile."; \
140 exit 1;
debad57fc2005-12-03 22:33:29 +0000141
de9bec93c2005-11-25 05:36:48 +0000142# chunked html, on a chapter-by-chapter basis
njn3e986b22004-11-30 10:43:45 +0000143html-docs:
144 @echo "Generating html files..."
njnb0267202005-07-25 21:12:40 +0000145 export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
njn804947e2005-09-13 04:10:45 +0000146 mkdir -p $(myhtmldir) && \
147 /bin/rm -fr $(myhtmldir)/ && \
148 mkdir -p $(myhtmldir)/ && \
149 mkdir -p $(myhtmldir)/images && \
150 cp $(mylibdir)/vg_basic.css $(myhtmldir)/ && \
151 cp $(myimgdir)/*.png $(myhtmldir)/images && \
152 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(myhtmldir)/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
njn3e986b22004-11-30 10:43:45 +0000153
154# pdf and postscript
155print-docs:
njn804947e2005-09-13 04:10:45 +0000156 @echo "Generating PDF file: $(myprintdir)/index.pdf (please be patient)...";
njnb0267202005-07-25 21:12:40 +0000157 export XML_CATALOG_FILES=$(XML_CATALOG_FILES) && \
njn804947e2005-09-13 04:10:45 +0000158 mkdir -p $(myprintdir) && \
159 mkdir -p $(myprintdir)/images && \
njn804947e2005-09-13 04:10:45 +0000160 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(myprintdir)/index.fo $(XSL_FO_STYLE) $(myxmldir)/index.xml && \
161 (cd $(myprintdir) && \
njnb0267202005-07-25 21:12:40 +0000162 ( pdfxmltex index.fo && \
163 pdfxmltex index.fo && \
sewardj163566b2005-11-01 03:08:41 +0000164 pdfxmltex index.fo ) &> $(LOGFILE) < /dev/null && \
njn804947e2005-09-13 04:10:45 +0000165 echo "Generating PS file: $(myprintdir)/index.ps ..." && \
sewardj27eca032005-07-25 17:53:46 +0000166 pdftops index.pdf && \
njnb0267202005-07-25 21:12:40 +0000167 rm -f *.log *.aux *.fo *.out)
njn3e986b22004-11-30 10:43:45 +0000168
169# If the docs have been built, install them. But don't worry if they have
170# not -- developers do 'make install' not from a 'make dist'-ified distro all
171# the time.
sewardjd6bfc842005-07-25 23:01:43 +0000172#
173# Note: this is done at 'make install' time.
174# Note 2: the ifeq/else/endif have to be indented one space
175# because otherwise it seems that automake thinks it should
176# be the one to handle the else/endif parts, not GNU make
177# as we intend.
njn3e986b22004-11-30 10:43:45 +0000178install-data-hook:
179 if test -r html ; then \
sewardje60fc582005-12-04 15:00:06 +0000180 mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
181 cp -r html $(DESTDIR)$(datadir)/doc/valgrind; \
njn3e986b22004-11-30 10:43:45 +0000182 fi
njn4d6cb9e2009-08-07 08:31:58 +0000183 for f in *.1 ; do \
184 if test -r $$f ; then \
185 mkdir -p $(DESTDIR)$(mandir)/man1; \
186 cp $$f $(DESTDIR)$(mandir)/man1; \
187 fi \
188 done
sewardjd6bfc842005-07-25 23:01:43 +0000189 ifeq ($(BUILD_ALL_DOCS),yes)
190 if test -r index.pdf ; then \
sewardje60fc582005-12-04 15:00:06 +0000191 mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
sewardj645580e2005-07-25 23:36:58 +0000192 cp index.pdf $(DESTDIR)$(datadir)/doc/valgrind/valgrind_manual.pdf; \
sewardjd6bfc842005-07-25 23:01:43 +0000193 fi
194 if test -r index.ps ; then \
sewardje60fc582005-12-04 15:00:06 +0000195 mkdir -p $(DESTDIR)$(datadir)/doc/valgrind; \
sewardj645580e2005-07-25 23:36:58 +0000196 cp index.ps $(DESTDIR)$(datadir)/doc/valgrind/valgrind_manual.ps; \
sewardjd6bfc842005-07-25 23:01:43 +0000197 fi
198 endif
njn3e986b22004-11-30 10:43:45 +0000199
sewardje60fc582005-12-04 15:00:06 +0000200# This is done at 'make dist' time. It builds the html docs, print
njn4d6cb9e2009-08-07 08:31:58 +0000201# docs and man pages and copies them into the docs/ directory in the
sewardje60fc582005-12-04 15:00:06 +0000202# tarball.
sewardjd6bfc842005-07-25 23:01:43 +0000203 ifeq ($(BUILD_ALL_DOCS),yes)
njn4d6cb9e2009-08-07 08:31:58 +0000204dist-hook: FAQ.txt html-docs man-pages print-docs
sewardjd6bfc842005-07-25 23:01:43 +0000205 cp -r html $(distdir)
njn15d7c342005-09-30 01:43:32 +0000206 cp FAQ.txt $(distdir)/..
njn4d6cb9e2009-08-07 08:31:58 +0000207 cp *.1 $(distdir)
sewardjd6bfc842005-07-25 23:01:43 +0000208 cp print/index.pdf $(distdir)
209 cp print/index.ps $(distdir)
210 else
njnc206a812009-08-07 07:56:20 +0000211dist-hook: FAQ.txt html-docs man-pages
sewardjd6bfc842005-07-25 23:01:43 +0000212 cp -r html $(distdir)
njn4d6cb9e2009-08-07 08:31:58 +0000213 cp FAQ.txt $(distdir)/..
214 cp *.1 $(distdir)
sewardjd6bfc842005-07-25 23:01:43 +0000215 endif
njn3e986b22004-11-30 10:43:45 +0000216
217distclean-local:
218 rm -rf html print
njn4d6cb9e2009-08-07 08:31:58 +0000219 rm -f $(top_builddir)/FAQ.txt $(top_builddir)/docs/*.1
de252c6142005-11-27 04:10:00 +0000220
221
222
sewardje60fc582005-12-04 15:00:06 +0000223# -----------------------------------------------------------------------
224# Note: the rest of this file is nothing to do with the normal build
225# tree. The stuff below contains special targets for web-site
226# artefacts.
de252c6142005-11-27 04:10:00 +0000227
228# chunked html with no html/body tags, css, or top nav, to fit into the website
229website-docs:
230 @echo "Generating website html files ..."
231 export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
232 /bin/rm -fr $(websitedir)
233 mkdir -p $(websitedir)
234 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(websitedir)/ $(XSL_WEBSITE_STYLE) $(myxmldir)/index.xml
235
236# valkyrie carries around her own copy of the valgrind manual
237valkyrie-docs:
238 @echo "Generating a set of valgrind docs for valkyrie..."
239 export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
240 /bin/rm -fr $(valkyriedir)
241 mkdir -p $(valkyriedir)
242 mkdir -p $(valkyriedir)/images
243 cp $(mylibdir)/vg_basic.css $(valkyriedir)/
244 cp $(myimgdir)/*.png $(valkyriedir)/images/
245 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(valkyriedir)/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
246
247# html.tar.bz2, .pdf, .ps.bz2 files for downloading from the website
248download-docs:
249 export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
250 /bin/rm -fr $(downloadsdir)
251 mkdir -p $(downloadsdir)
252 @echo ""
253 @echo "Generating valgrind_manual.html.tar.bz2 ..."
254 export XML_CATALOG_FILES=$(XML_CATALOG_FILES)
255 /bin/rm -fr $(vgdir)
256 mkdir -p $(vgdir)
257 mkdir -p $(vgdir)/html
258 mkdir -p $(vgdir)/html/images
259 cp $(mylibdir)/vg_basic.css $(vgdir)/html/
260 cp $(myimgdir)/*.png $(vgdir)/html/images/
261 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(vgdir)/html/ $(XSL_HTML_CHUNK_STYLE) $(myxmldir)/index.xml
262 (cd $(top_builddir)/docs/ && \
263 (tar cfj $(downloadsdir)/valgrind_manual.html.tar.bz2 ./valgrind/html/ ) )
264 /bin/rm -fr $(vgdir)/html/
265 @echo ""
266 @echo "Generating valgrind_manual.pdf ..."
267 mkdir -p $(vgdir)/print
268 mkdir -p $(vgdir)/print/images
de252c6142005-11-27 04:10:00 +0000269 $(XSLTPROC) $(XSLTPROC_FLAGS) -o $(vgdir)/print/manual.fo $(XSL_FO_STYLE) $(myxmldir)/index.xml
270 (cd $(vgdir)/print/ && \
271 ( pdfxmltex manual.fo && \
272 pdfxmltex manual.fo && \
273 pdfxmltex manual.fo ) &> $(LOGFILE) < /dev/null )
274 @echo ""
275 @echo "Generating valgrind_manual.ps.bz2 ..."
276 (cd $(vgdir)/print/ && \
277 ( pdftops manual.pdf ) )
278 mv $(vgdir)/print/manual.pdf $(downloadsdir)/valgrind_manual.pdf
279 mv $(vgdir)/print/manual.ps $(downloadsdir)/valgrind_manual.ps
280 bzip2 $(downloadsdir)/valgrind_manual.ps
281 /bin/rm -fr $(vgdir)