Makefile.am 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660
  1. ## Makefile for the doc subdirectory of the GNU C++ Standard library.
  2. ##
  3. ## Copyright (C) 2008-2022 Free Software Foundation, Inc.
  4. ##
  5. ## This file is part of the libstdc++ version 3 distribution.
  6. ## Process this file with automake to produce Makefile.in.
  7. ## This file is part of the GNU ISO C++ Library. This library is free
  8. ## software; you can redistribute it and/or modify it under the
  9. ## terms of the GNU General Public License as published by the
  10. ## Free Software Foundation; either version 3, or (at your option)
  11. ## any later version.
  12. ## This library is distributed in the hope that it will be useful,
  13. ## but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. ## GNU General Public License for more details.
  16. ## You should have received a copy of the GNU General Public License along
  17. ## with this library; see the file COPYING3. If not see
  18. ## <http://www.gnu.org/licenses/>.
  19. include $(top_srcdir)/fragment.am
  20. # Documentation Overview
  21. #
  22. # There are two main input materials for libstdc++ documentation.
  23. # The first is the doxygen markup in libstdc++ sources, which is a
  24. # reference to the API. And the second is the manual, via docbook markup in
  25. # doc/xml/.
  26. #
  27. # A third and more obscure option deals with charting performance
  28. # tests, and should be considered experimental.
  29. # Documentation conditionals for output.
  30. if BUILD_XML
  31. STAMP_XML = doc-xml
  32. STAMP_INSTALL_XML = doc-install-xml
  33. else
  34. STAMP_XML =
  35. STAMP_INSTALL_XML =
  36. endif
  37. if BUILD_HTML
  38. STAMP_HTML = doc-html
  39. STAMP_INSTALL_HTML = doc-install-html
  40. else
  41. STAMP_HTML =
  42. STAMP_INSTALL_HTML =
  43. endif
  44. if BUILD_MAN
  45. STAMP_MAN = doc-man
  46. STAMP_INSTALL_MAN = doc-install-man
  47. else
  48. STAMP_MAN =
  49. STAMP_INSTALL_MAN =
  50. endif
  51. if BUILD_PDF
  52. STAMP_PDF = doc-pdf
  53. STAMP_INSTALL_PDF = doc-install-pdf
  54. else
  55. STAMP_PDF =
  56. STAMP_INSTALL_PDF =
  57. endif
  58. if BUILD_EPUB
  59. STAMP_EPUB = doc-epub
  60. STAMP_INSTALL_EPUB = doc-install-epub
  61. else
  62. STAMP_EPUB = doc-epub
  63. STAMP_INSTALL_EPUB = doc-install-epub
  64. endif
  65. # Documentation primary rules.
  66. #
  67. # xml:
  68. # html:
  69. # pdf:
  70. # man:
  71. # info:
  72. # ps:
  73. # dvi:
  74. # epub:
  75. # install-xml:
  76. # install-html:
  77. # install-pdf:
  78. # install-man:
  79. # install-info:
  80. # install-ps:
  81. # install-dvi:
  82. # install-epub:
  83. xml: $(STAMP_XML)
  84. install-xml: $(STAMP_INSTALL_XML)
  85. html: $(STAMP_HTML)
  86. install-html: $(STAMP_INSTALL_HTML)
  87. man: $(STAMP_MAN)
  88. install-man: $(STAMP_INSTALL_MAN)
  89. pdf: $(STAMP_PDF)
  90. install-pdf: $(STAMP_INSTALL_PDF)
  91. epub: $(STAMP_EPUB)
  92. install-epub: $(STAMP_INSTALL_EPUB)
  93. info:
  94. install-info:
  95. ps:
  96. install-ps:
  97. dvi:
  98. install-dvi:
  99. # Default creation and installation rules.
  100. # Point to best sub-rule for the requested documentation target and
  101. # create, and then install toplevel directory with standardized names
  102. # and layouts.
  103. # XML
  104. xmldir="$(DESTDIR)@docdir@"
  105. stamp-xml: stamp-xml-single-docbook stamp-xml-single-doxygen
  106. $(STAMP) stamp-xml
  107. doc-xml: stamp-xml
  108. doc-install-xml: doc-xml
  109. test -z ${xmldir} || $(mkinstalldirs) ${xmldir}
  110. $(INSTALL_DATA) ${manual_xml} ${xmldir}
  111. $(INSTALL_DATA) ${api_xml} ${xmldir}
  112. # HTML
  113. htmldir="$(DESTDIR)@docdir@"
  114. stamp-html: stamp-html-docbook-data stamp-html-doxygen
  115. $(STAMP) stamp-html
  116. doc-html: stamp-html
  117. doc-install-html: doc-html
  118. test -z ${htmldir} || $(mkinstalldirs) ${htmldir}
  119. cp -r ${docbook_outdir}/html ${htmldir}/libstdc++-manual.html;
  120. cp -r ${doxygen_outdir}/html ${htmldir}/libstdc++-api.html;
  121. # PDF
  122. pdfdir="$(DESTDIR)@docdir@"
  123. stamp-pdf: stamp-pdf-docbook stamp-pdf-doxygen
  124. $(STAMP) stamp-pdf
  125. doc-pdf: stamp-pdf
  126. doc-install-pdf: doc-pdf
  127. test -z ${pdfdir} || $(mkinstalldirs) ${pdfdir}
  128. $(INSTALL_DATA) ${docbook_outdir}/pdf/libstdc++-manual.pdf ${pdfdir}
  129. $(INSTALL_DATA) ${doxygen_outdir}/pdf/libstdc++-api.pdf ${pdfdir}
  130. # MAN
  131. mandir="$(DESTDIR)@mandir@"
  132. stamp-man: stamp-man-doxygen
  133. $(STAMP) stamp-man
  134. doc-man: stamp-man
  135. doc-install-man: doc-man
  136. test -z ${mandir} || $(mkinstalldirs) ${mandir}
  137. cp -r ${doxygen_outdir}/man/man3 ${mandir}
  138. # TEXINFO,INFO
  139. infodir="$(DESTDIR)@infodir@"
  140. stamp-texinfo: stamp-texinfo-docbook
  141. $(STAMP) stamp-texinfo
  142. stamp-info: stamp-info-docbook
  143. $(STAMP) stamp-info
  144. doc-texinfo: stamp-texinfo
  145. doc-info: stamp-info
  146. doc-install-texinfo: doc-texinfo
  147. test -z ${infodir} || $(mkinstalldirs) ${infodir}
  148. $(INSTALL_DATA) ${manual_texi} ${infodir}
  149. doc-install-info: doc-info
  150. test -z ${infodir} || $(mkinstalldirs) ${infodir}
  151. $(INSTALL_DATA) ${manual_info} ${infodir}
  152. # EPUB
  153. # Assumes ruby installed
  154. epubdir="$(DESTDIR)@docdir@"
  155. stamp-epub: stamp-epub-docbook
  156. $(STAMP) stamp-epub
  157. doc-epub: stamp-epub
  158. doc-install-epub: doc-epub
  159. test -z ${epubdir} || $(mkinstalldirs) ${epubdir}
  160. $(INSTALL_DATA) ${manual_epub} ${epubdir}
  161. # Doxygen configuration
  162. # Assumes doxygen, graphviz (with dot), pdflatex installed
  163. doxygen_script=${top_srcdir}/scripts/run_doxygen
  164. doxygen_outdir = ${glibcxx_builddir}/doc/doxygen
  165. api_xml = ${doxygen_outdir}/xml/libstdc++-api.xml
  166. doxygen_pdf = ${doxygen_outdir}/latex/refman.pdf
  167. api_pdf = ${doxygen_outdir}/pdf/libstdc++-api.pdf
  168. ${doxygen_outdir}/xml:
  169. mkdir -p ${doxygen_outdir}/xml
  170. ${doxygen_outdir}/html:
  171. mkdir -p ${doxygen_outdir}/html
  172. ${doxygen_outdir}/latex:
  173. mkdir -p ${doxygen_outdir}/latex
  174. ${doxygen_outdir}/pdf:
  175. mkdir -p ${doxygen_outdir}/pdf
  176. ${doxygen_outdir}/man:
  177. mkdir -p ${doxygen_outdir}/man
  178. stamp-xml-doxygen: ${doxygen_outdir}/xml
  179. -srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
  180. builddir=`cd ..; ${PWD_COMMAND}`; \
  181. ${SHELL} ${doxygen_script} \
  182. --host_alias=${host_alias} --mode=xml \
  183. "$${srcdir}" "$${builddir}" NO
  184. $(STAMP) stamp-xml-doxygen
  185. stamp-xml-single-doxygen: stamp-xml-doxygen
  186. @echo "Generating doxygen xml single file..."
  187. $(XSLTPROC) ${doxygen_outdir}/xml/combine.xslt \
  188. ${doxygen_outdir}/xml/index.xml > ${api_xml};
  189. $(STAMP) stamp-xml-single-doxygen
  190. stamp-html-doxygen: ${doxygen_outdir}/html
  191. -srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
  192. builddir=`cd ..; ${PWD_COMMAND}`; \
  193. ${SHELL} ${doxygen_script} \
  194. --host_alias=${host_alias} --mode=html \
  195. "$${srcdir}" "$${builddir}" YES
  196. $(STAMP) stamp-html-doxygen
  197. stamp-latex-doxygen: ${doxygen_outdir}/latex
  198. -srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
  199. builddir=`cd ..; ${PWD_COMMAND}`; \
  200. ${SHELL} ${doxygen_script} \
  201. --host_alias=${host_alias} --mode=latex --latex_cmd=$(LATEX_CMD) \
  202. "$${srcdir}" "$${builddir}" NO
  203. $(STAMP) stamp-latex-doxygen
  204. # Chance of loooooonnggg creation time on this rule. Iff this fails,
  205. # look at refman.log and see if TeX's memory is exhausted. Symptoms
  206. # include asking a wizard to enlarge capacity. If this is the case,
  207. # find texmf.cnf and add a zero for pool_size, string_vacancies,
  208. # max_strings, and pool_free values. A much simpler workaround is to
  209. # install lualatex and set LATEX_CMD=lualatex when running make.
  210. # Errors like "File `foo.sty' not found" mean a TeX package is missing.
  211. stamp-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
  212. @echo "Generating doxygen pdf file...";
  213. -$(MAKE) -C ${doxygen_outdir}/latex -i pdf
  214. @if [ -f ${doxygen_pdf} ]; then \
  215. mv ${doxygen_pdf} ${api_pdf} ; \
  216. echo ":: PDF file is ${api_pdf}"; \
  217. else \
  218. echo "... error"; \
  219. grep -F 'LaTeX Error' ${doxygen_outdir}/latex/refman.log; \
  220. grep -F 'TeX capacity exceeded, sorry' ${doxygen_outdir}/latex/refman.log; \
  221. exit 12; \
  222. fi
  223. $(STAMP) stamp-pdf-doxygen
  224. stamp-man-doxygen: ${doxygen_outdir}/man
  225. -srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
  226. builddir=`cd ..; ${PWD_COMMAND}`; \
  227. ${SHELL} ${doxygen_script} \
  228. --host_alias=${host_alias} --mode=man \
  229. "$${srcdir}" "$${builddir}" YES
  230. $(STAMP) stamp-man-doxygen
  231. doc-xml-doxygen: stamp-xml-doxygen
  232. doc-xml-single-doxygen: stamp-xml-single-doxygen
  233. doc-html-doxygen: stamp-html-doxygen
  234. doc-latex-doxygen: stamp-latex-doxygen
  235. doc-pdf-doxygen: stamp-pdf-doxygen
  236. doc-man-doxygen: stamp-man-doxygen
  237. # Docbook configuration.
  238. # Assumes
  239. # libxslt
  240. # dblatex
  241. # pdflatex
  242. # docbook-style-xsl
  243. # emacs-nxml-mode
  244. docbook_outdir = ${glibcxx_builddir}/doc/docbook
  245. xml_dir = ${glibcxx_srcdir}/doc/xml
  246. xml_sources_basic = \
  247. ${xml_dir}/spine.xml \
  248. ${xml_dir}/authors.xml \
  249. ${xml_dir}/api.xml \
  250. ${xml_dir}/faq.xml
  251. xml_sources_manual = \
  252. ${xml_dir}/manual/abi.xml \
  253. ${xml_dir}/manual/algorithms.xml \
  254. ${xml_dir}/manual/allocator.xml \
  255. ${xml_dir}/manual/auto_ptr.xml \
  256. ${xml_dir}/manual/atomics.xml \
  257. ${xml_dir}/manual/backwards_compatibility.xml \
  258. ${xml_dir}/manual/bitmap_allocator.xml \
  259. ${xml_dir}/manual/build_hacking.xml \
  260. ${xml_dir}/manual/codecvt.xml \
  261. ${xml_dir}/manual/concurrency.xml \
  262. ${xml_dir}/manual/concurrency_extensions.xml \
  263. ${xml_dir}/manual/configure.xml \
  264. ${xml_dir}/manual/containers.xml \
  265. ${xml_dir}/manual/ctype.xml \
  266. ${xml_dir}/manual/debug_mode.xml \
  267. ${xml_dir}/manual/debug.xml \
  268. ${xml_dir}/manual/diagnostics.xml \
  269. ${xml_dir}/manual/documentation_hacking.xml \
  270. ${xml_dir}/manual/evolution.xml \
  271. ${xml_dir}/manual/extensions.xml \
  272. ${xml_dir}/manual/internals.xml \
  273. ${xml_dir}/manual/intro.xml \
  274. ${xml_dir}/manual/io.xml \
  275. ${xml_dir}/manual/iterators.xml \
  276. ${xml_dir}/manual/locale.xml \
  277. ${xml_dir}/manual/localization.xml \
  278. ${xml_dir}/manual/messages.xml \
  279. ${xml_dir}/manual/mt_allocator.xml \
  280. ${xml_dir}/manual/numerics.xml \
  281. ${xml_dir}/manual/parallel_mode.xml \
  282. ${xml_dir}/manual/policy_data_structures.xml \
  283. ${xml_dir}/manual/policy_data_structures_biblio.xml \
  284. ${xml_dir}/manual/prerequisites.xml \
  285. ${xml_dir}/manual/shared_ptr.xml \
  286. ${xml_dir}/manual/spine.xml \
  287. ${xml_dir}/manual/status_cxx1998.xml \
  288. ${xml_dir}/manual/status_cxx2011.xml \
  289. ${xml_dir}/manual/status_cxx2014.xml \
  290. ${xml_dir}/manual/status_cxx2017.xml \
  291. ${xml_dir}/manual/status_cxx2020.xml \
  292. ${xml_dir}/manual/status_cxxtr1.xml \
  293. ${xml_dir}/manual/status_cxxtr24733.xml \
  294. ${xml_dir}/manual/strings.xml \
  295. ${xml_dir}/manual/support.xml \
  296. ${xml_dir}/manual/test.xml \
  297. ${xml_dir}/manual/test_policy_data_structures.xml \
  298. ${xml_dir}/manual/using.xml \
  299. ${xml_dir}/manual/using_exceptions.xml \
  300. ${xml_dir}/manual/utilities.xml \
  301. ${xml_dir}/manual/appendix_free.xml \
  302. ${xml_dir}/manual/appendix_contributing.xml \
  303. ${xml_dir}/manual/appendix_porting.xml
  304. xml_sources_extra = \
  305. ${xml_dir}/gnu/fdl-1.3.xml \
  306. ${xml_dir}/gnu/gpl-3.0.xml
  307. xml_sources = \
  308. ${xml_sources_basic} \
  309. ${xml_sources_manual} \
  310. ${xml_sources_extra}
  311. xml_image_dir = ${xml_dir}/images
  312. xml_image_basic = \
  313. ${xml_image_dir}/confdeps.png \
  314. ${xml_image_dir}/pbds_balls_and_bins.png \
  315. ${xml_image_dir}/pbds_container_tag_hierarchy.png \
  316. ${xml_image_dir}/pbds_different_underlying_dss_1.png \
  317. ${xml_image_dir}/pbds_different_underlying_dss_2.png \
  318. ${xml_image_dir}/pbds_embedded_lists_1.png \
  319. ${xml_image_dir}/pbds_embedded_lists_2.png \
  320. ${xml_image_dir}/pbds_embedded_lists_3.png \
  321. ${xml_image_dir}/pbds_exception_hierarchy.png \
  322. ${xml_image_dir}/pbds_hash_policy_cd.png \
  323. ${xml_image_dir}/pbds_hash_ranged_hash_range_hashing_fns.png \
  324. ${xml_image_dir}/pbds_hash_range_hashing_seq_diagram2.png \
  325. ${xml_image_dir}/pbds_hash_range_hashing_seq_diagram.png \
  326. ${xml_image_dir}/pbds_insert_resize_sequence_diagram1.png \
  327. ${xml_image_dir}/pbds_insert_resize_sequence_diagram2.png \
  328. ${xml_image_dir}/pbds_insert_resize_sequence_diagram3.png \
  329. ${xml_image_dir}/pbds_invalidation_guarantee_erase.png \
  330. ${xml_image_dir}/pbds_invalidation_tag_hierarchy.png \
  331. ${xml_image_dir}/pbds_list_update.png \
  332. ${xml_image_dir}/pbds_node_invariants.png \
  333. ${xml_image_dir}/pbds_pat_trie.png \
  334. ${xml_image_dir}/pbds_point_iterator_hierarchy.png \
  335. ${xml_image_dir}/pbds_point_iterators_range_ops_1.png \
  336. ${xml_image_dir}/pbds_point_iterators_range_ops_2.png \
  337. ${xml_image_dir}/pbds_priority_queue_different_underlying_dss.png \
  338. ${xml_image_dir}/pbds_priority_queue_tag_hierarchy.png \
  339. ${xml_image_dir}/pbds_rationale_null_node_updator.png \
  340. ${xml_image_dir}/pbds_resize_policy_cd.png \
  341. ${xml_image_dir}/pbds_restoring_node_invariants.png \
  342. ${xml_image_dir}/pbds_simple_list.png \
  343. ${xml_image_dir}/pbds_tree_node_invalidations.png \
  344. ${xml_image_dir}/pbds_tree_node_invariants.png \
  345. ${xml_image_dir}/pbds_tree_node_updator_policy_cd.png \
  346. ${xml_image_dir}/pbds_trie_node_updator_policy_cd.png \
  347. ${xml_image_dir}/pbds_update_seq_diagram.png
  348. xml_image_generated = \
  349. ${xml_image_dir}/pbds_binary_priority_queue_int_push_pop.png \
  350. ${xml_image_dir}/pbds_binary_priority_queue_int_push.png \
  351. ${xml_image_dir}/pbds_ccgp_hash_int_subscript_insert.png \
  352. ${xml_image_dir}/pbds_cc_hash_int_find.png \
  353. ${xml_image_dir}/pbds_cc_hash_int_subscript_find.png \
  354. ${xml_image_dir}/pbds_cc_hash_int_subscript_insert.png \
  355. ${xml_image_dir}/pbds_gp_hash_int_find.png \
  356. ${xml_image_dir}/pbds_gp_hash_int_subscript_find.png \
  357. ${xml_image_dir}/pbds_gp_hash_int_subscript_insert.png \
  358. ${xml_image_dir}/pbds_hash_int_erase_mem.png \
  359. ${xml_image_dir}/pbds_hash_text_find.png \
  360. ${xml_image_dir}/pbds_hash_zlob_int_find.png \
  361. ${xml_image_dir}/pbds_multimap_text_find_large_s2p_hash.png \
  362. ${xml_image_dir}/pbds_multimap_text_find_large_s2p_tree.png \
  363. ${xml_image_dir}/pbds_multimap_text_find_small_s2p_hash.png \
  364. ${xml_image_dir}/pbds_multimap_text_find_small_s2p_tree.png \
  365. ${xml_image_dir}/pbds_multimap_text_insert_large_s2p_hash.png \
  366. ${xml_image_dir}/pbds_multimap_text_insert_large_s2p_tree.png \
  367. ${xml_image_dir}/pbds_multimap_text_insert_mem_large_s2p_hash.png \
  368. ${xml_image_dir}/pbds_multimap_text_insert_mem_large_s2p_tree.png \
  369. ${xml_image_dir}/pbds_multimap_text_insert_mem_small_s2p_hash.png \
  370. ${xml_image_dir}/pbds_multimap_text_insert_mem_small_s2p_tree.png \
  371. ${xml_image_dir}/pbds_multimap_text_insert_small_s2p_hash.png \
  372. ${xml_image_dir}/pbds_multimap_text_insert_small_s2p_tree.png \
  373. ${xml_image_dir}/pbds_pairing_priority_queue_text_modify_down_thin.png \
  374. ${xml_image_dir}/pbds_pairing_priority_queue_text_modify_up_thin.png \
  375. ${xml_image_dir}/pbds_pairing_priority_queue_text_push_pop.png \
  376. ${xml_image_dir}/pbds_pairing_priority_queue_text_push.png \
  377. ${xml_image_dir}/pbds_priority_queue_int_push_pop.png \
  378. ${xml_image_dir}/pbds_priority_queue_int_push.png \
  379. ${xml_image_dir}/pbds_priority_queue_text_join.png \
  380. ${xml_image_dir}/pbds_priority_queue_text_modify_down.png \
  381. ${xml_image_dir}/pbds_priority_queue_text_modify_up.png \
  382. ${xml_image_dir}/pbds_priority_queue_text_pop_mem.png \
  383. ${xml_image_dir}/pbds_priority_queue_text_push_pop.png \
  384. ${xml_image_dir}/pbds_priority_queue_text_push.png \
  385. ${xml_image_dir}/pbds_tree_int_find.png \
  386. ${xml_image_dir}/pbds_tree_order_statistics.png \
  387. ${xml_image_dir}/pbds_tree_split_join.png \
  388. ${xml_image_dir}/pbds_tree_text_find.png \
  389. ${xml_image_dir}/pbds_tree_text_insert_node.png \
  390. ${xml_image_dir}/pbds_tree_text_insert_trie.png \
  391. ${xml_image_dir}/pbds_tree_text_insert_vector.png \
  392. ${xml_image_dir}/pbds_tree_text_lor_find.png
  393. xml_images = ${xml_image_basic} ${xml_image_generated}
  394. xml_noinst = \
  395. ${xml_dir}/book.txml \
  396. ${xml_dir}/chapter.txml \
  397. ${xml_dir}/class.txml \
  398. ${xml_image_dir}/confdeps.dot \
  399. ${xml_image_dir}/confdeps.pdf
  400. XSLTPROC = xsltproc
  401. XSLT_FLAGS = --nonet --xinclude
  402. XSLT_PARAM = --param toc.section.depth 4 --param generate.consistent.ids 1
  403. #XSL_STYLE_DIR = /usr/share/xml/docbook/stylesheet/docbook-xsl-ns
  404. #XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-ns-stylesheets
  405. XSL_FO_STYLE = $(XSL_STYLE_DIR)/fo/docbook.xsl
  406. XSL_HTML_STYLE = $(XSL_STYLE_DIR)/xhtml/chunk.xsl
  407. XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/html/docbook.xsl
  408. XSL_EPUB_STYLE = $(XSL_STYLE_DIR)/epub3/chunk.xsl
  409. XSL_LOCAL_STYLE = ${glibcxx_builddir}/doc/xsl/customization.xsl
  410. ${docbook_outdir}/epub:
  411. mkdir -p ${docbook_outdir}/epub
  412. mkdir -p ${docbook_outdir}/epub/OEBPS/images
  413. ${docbook_outdir}/fo:
  414. mkdir -p ${docbook_outdir}/fo
  415. ${docbook_outdir}/html:
  416. mkdir -p ${docbook_outdir}/html
  417. mkdir -p ${docbook_outdir}/html/images
  418. mkdir -p ${docbook_outdir}/html/manual
  419. ${docbook_outdir}/pdf:
  420. mkdir -p ${docbook_outdir}/pdf
  421. ${docbook_outdir}/latex:
  422. mkdir -p ${docbook_outdir}/latex
  423. ${docbook_outdir}/texinfo:
  424. mkdir -p ${docbook_outdir}/texinfo
  425. ${docbook_outdir}/xml:
  426. mkdir -p ${docbook_outdir}/xml
  427. # XML, all one page
  428. # Some info on canonicalization
  429. # http://www.mail-archive.com/help-texinfo@gnu.org/msg00864.html
  430. manual_xml = ${docbook_outdir}/xml/libstdc++-manual.xml
  431. set_xml = ${docbook_outdir}/xml/libstdc++-set.xml
  432. stamp-xml-single-docbook: $(xml_sources) ${docbook_outdir}/xml
  433. @echo "Generating XML single..."
  434. $(XMLLINT) $(XMLLINT_FLAGS) \
  435. ${top_srcdir}/doc/xml/manual/spine.xml > ${manual_xml};
  436. $(XMLLINT) $(XMLLINT_FLAGS) \
  437. ${top_srcdir}/doc/xml/spine.xml > ${set_xml};
  438. $(STAMP) stamp-xml-single-docbook
  439. doc-xml-single-docbook: stamp-xml-single-docbook
  440. # Validate existing XML structure.
  441. XMLLINT = xmllint
  442. LINT_FLAGS = --debug --xinclude --noent --noblanks --noout
  443. SCHEMA_FLAGS = --dtdvalid http://www.docbook.org/xml/5.0/dtd/docbook.dtd
  444. SCHEMA_RNG_FLAGS = --relaxng http://www.docbook.org/xml/5.0/rng/docbook.rng
  445. #SCHEMA_FLAGS = --nonet --dtdvalid /usr/share/xxx/dtd/5.0/docbook.dtd
  446. XMLLINT_VALID_FLAGS = $(LINT_FLAGS) $(SCHEMA_FLAGS)
  447. XMLLINT_FLAGS = --xinclude --nsclean --c14n --noent --noblanks --nocdata
  448. doc-xml-validate-docbook: doc-xml-validate-dtd-db
  449. doc-xml-validate-dtd-db: $(xml_sources) $(xml_images)
  450. @echo "Generating XML validation log..."
  451. $(XMLLINT) $(XMLLINT_VALID_FLAGS) ${top_srcdir}/doc/xml/spine.xml
  452. doc-xml-validate-rng-db: $(xml_sources) $(xml_images) doc-xml-single-docbook
  453. @echo "Generating XML RelaxNG validation log..."
  454. $(XMLLINT) $(LINT_FLAGS) $(SCHEMA_RNG_FLAGS) ${set_xml}
  455. # HTML support files
  456. stamp-html-docbook-images: stamp-html-docbook $(xml_images)
  457. $(INSTALL_DATA) $(xml_images) ${docbook_outdir}/html/images
  458. $(STAMP) stamp-html-docbook-images
  459. stamp-html-docbook-data: stamp-html-docbook-images
  460. $(STAMP) stamp-html-docbook-data
  461. # HTML, "chunked" into index plus chapters as separate pages
  462. stamp-html-docbook: $(xml_sources) ${docbook_outdir}/html
  463. @echo "Generating html files..."
  464. $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${docbook_outdir}/html/ \
  465. --stringparam chunker.output.encoding UTF-8 \
  466. $(XSL_HTML_STYLE) \
  467. ${top_srcdir}/doc/xml/spine.xml
  468. $(STAMP) stamp-html-docbook
  469. doc-html-docbook: stamp-html-docbook-data
  470. # Generate the HTML pages and copy them back to the source tree.
  471. doc-html-docbook-regenerate: doc-html-docbook
  472. $(INSTALL_DATA) ${docbook_outdir}/html/*.html ${top_srcdir}/doc/html
  473. $(INSTALL_DATA) ${docbook_outdir}/html/images/* ${top_srcdir}/doc/html/images
  474. $(INSTALL_DATA) ${docbook_outdir}/html/manual/*.html ${top_srcdir}/doc/html/manual
  475. # HTML, all one page
  476. # NB: Have to generate customization XSL for UTF-8 output.
  477. manual_html = ${docbook_outdir}/html/libstdc++-manual-single.html
  478. stamp-html-single-docbook: $(xml_sources) ${docbook_outdir}/html
  479. @echo "Generating html single file..."
  480. $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${manual_html} \
  481. ${XSL_LOCAL_STYLE} \
  482. ${top_srcdir}/doc/xml/spine.xml
  483. $(STAMP) stamp-html-single-docbook
  484. doc-html-single-docbook: stamp-html-single-docbook
  485. # FO
  486. stamp-fo-docbook: $(xml_sources) ${docbook_outdir}/fo
  487. @echo "Generating FO files..."
  488. $(XSLTPROC) $(XSLT_FLAGS) -o ${docbook_outdir}/fo/spine.fo \
  489. $(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml
  490. $(STAMP) stamp-fo-docbook
  491. doc-fo-docbook: stamp-fo-docbook
  492. # PDF, via dblatex
  493. manual_pdf = ${docbook_outdir}/pdf/libstdc++-manual.pdf
  494. DBLATEX_FLAGS = --verbose --pdf --dump --debug --tmpdir=${docbook_outdir}/latex
  495. doc-pdf-docbook-dirs: ${docbook_outdir}/pdf ${docbook_outdir}/latex
  496. doc-pdf-docbook-pre: $(xml_sources) doc-pdf-docbook-dirs
  497. stamp-pdf-docbook: doc-pdf-docbook-pre doc-xml-single-docbook
  498. @echo "Generating pdf dblatex files..."
  499. dblatex $(DBLATEX_FLAGS) -o ${manual_pdf} \
  500. ${top_srcdir}/doc/xml/spine.xml
  501. $(STAMP) stamp-pdf-docbook
  502. doc-pdf-docbook: stamp-pdf-docbook
  503. # TEXINFO, via docbook2X
  504. # NB: Both experimental and tempermental
  505. manual_texi = ${docbook_outdir}/texinfo/libstdc++-manual.texi
  506. manual_info = ${docbook_outdir}/texinfo/libstdc++-manual.info
  507. DB2TEXI_FLAGS = \
  508. --encoding=utf-8//TRANSLIT \
  509. --string-param output-file="libstdc++-manual" \
  510. --string-param directory-category="GNU C++ Library" \
  511. --string-param explicit-node-names=true
  512. stamp-texinfo-docbook: stamp-xml-single-docbook ${docbook_outdir}/texinfo
  513. @echo "Generating texinfo files..."
  514. db2x_docbook2texi $(DB2TEXI_FLAGS) ${set_xml}
  515. mv libstdc++-manual.texi ${manual_texi}
  516. $(STAMP) stamp-texinfo-docbook
  517. stamp-info-docbook: stamp-texinfo-docbook
  518. @echo "Generating info files..."
  519. $(MAKEINFO) $(MAKEINFOFLAGS) ${manual_texi}
  520. $(STAMP) stamp-info-docbook
  521. doc-texinfo-docbook: stamp-texinfo-docbook
  522. doc-info-docbook: stamp-info-docbook
  523. # EPUB version 3
  524. # http://sourceforge.net/projects/docbook/files/epub3/
  525. # Can verify document with epubcheck
  526. manual_epub = ${docbook_outdir}/epub/libstdc++-manual.epub
  527. stamp-epub-docbook: stamp-xml-single-docbook ${docbook_outdir}/epub
  528. @echo "Generating epub files..."
  529. if [ ! -d "${docbook_outdir}/images" ]; then \
  530. $(LN_S) ${top_srcdir}/doc/xml/images ${docbook_outdir}/; \
  531. fi
  532. $(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) \
  533. --stringparam base.dir "${docbook_outdir}/epub/OEBPS/" \
  534. $(XSL_EPUB_STYLE) ${top_srcdir}/doc/xml/spine.xml
  535. $(INSTALL_DATA) $(xml_images) ${docbook_outdir}/epub/OEBPS/images
  536. zip -X0 ${manual_epub} ${docbook_outdir}/epub/mimetype
  537. zip -r -X9 ${manual_epub} ${docbook_outdir}/epub/META-INF ${docbook_outdir}/epub/OEBPS
  538. $(STAMP) stamp-epub-docbook
  539. doc-epub-docbook: stamp-epub-docbook
  540. # Performance doc and graph configuration.
  541. # Assumes pychart, beautiful soup installed.
  542. # Generates the plots/graph imagery for performance testing.
  543. doc_performance_script=${top_srcdir}/scripts/make_graph.py
  544. doc-svg-performance: ${docbook_outdir}/xml
  545. -@(chmod + ${doc_performance_script}; \
  546. ${doc_performance_script} \
  547. ${top_srcdir}/testsuite/data/make_graph_test_infos.xml \
  548. ${glibcxx_builddir}/testsuite \
  549. ${glibcxx_builddir}/doc/docbook/xml/images)
  550. .PHONY: doc-doxygen-html doc-doxygen-man doc-performance
  551. # By adding these files here, automake will remove them for 'make clean'
  552. CLEANFILES = *.log stamp*
  553. # To remove directories.
  554. clean-local:
  555. rm -rf man html pdf fo xml doxygen docbook ./libstdc++-* db2t*