Makefile.am 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. # StarPU --- Runtime system for heterogeneous multicore architectures.
  2. #
  3. # Copyright (C) 2009-2021 Université de Bordeaux, CNRS (LaBRI UMR 5800), Inria
  4. #
  5. # StarPU is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU Lesser General Public License as published by
  7. # the Free Software Foundation; either version 2.1 of the License, or (at
  8. # your option) any later version.
  9. #
  10. # StarPU is distributed in the hope that it will be useful, but
  11. # WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. #
  14. # See the GNU Lesser General Public License in COPYING.LGPL for more details.
  15. #
  16. DOXYGEN = doxygen
  17. PDFLATEX = pdflatex
  18. MAKEINDEX = makeindex
  19. DOX_DIR = $(top_builddir)/doc/doxygen
  20. DOX_CONFIG = $(top_srcdir)/doc/doxygen/doxygen.cfg
  21. DOX_HTML_DIR = html
  22. DOX_LATEX_DIR = latex
  23. DOX_PDF = $(DOX_DIR)/starpu.pdf
  24. DOX_TAG = starpu.tag
  25. txtdir = $(docdir)/manual
  26. EXTRA_DIST =
  27. if STARPU_BUILD_DOC
  28. if STARPU_BUILD_DOC_PDF
  29. all: $(DOX_HTML_DIR) $(DOX_PDF)
  30. EXTRA_DIST += $(DOX_HTML_DIR) $(DOX_PDF)
  31. txt_DATA = $(DOX_PDF)
  32. else
  33. all: $(DOX_HTML_DIR)
  34. EXTRA_DIST += $(DOX_HTML_DIR)
  35. endif
  36. DOX_HTML_SRCDIR=$(DOX_HTML_DIR)
  37. install-exec-hook:
  38. $(MKDIR_P) $(DESTDIR)$(docdir)/manual/html
  39. (cd $(DOX_HTML_SRCDIR) && $(PROG_FIND) . -type f -exec $(INSTALL_DATA) {} $(DESTDIR)$(docdir)/manual/html \;)
  40. uninstall-hook:
  41. rm -rf $(DESTDIR)$(docdir)/manual/html
  42. else
  43. if STARPU_AVAILABLE_DOC
  44. EXTRA_DIST += $(top_srcdir)/doc/doxygen/html
  45. DOX_HTML_SRCDIR=$(top_srcdir)/doc/doxygen/html
  46. install-exec-hook:
  47. $(MKDIR_P) $(DESTDIR)$(docdir)/manual/html
  48. (cd $(DOX_HTML_SRCDIR) && $(PROG_FIND) . -type f -exec $(INSTALL_DATA) {} $(DESTDIR)$(docdir)/manual/html \;)
  49. uninstall-hook:
  50. rm -rf $(DESTDIR)$(docdir)/manual/html
  51. endif
  52. if STARPU_AVAILABLE_DOC_PDF
  53. EXTRA_DIST += $(top_srcdir)/doc/doxygen/starpu.pdf
  54. txt_DATA = $(top_srcdir)/doc/doxygen/starpu.pdf
  55. endif
  56. endif
  57. chapters = \
  58. chapters/000_introduction.doxy \
  59. chapters/101_building.doxy \
  60. chapters/110_basic_examples.doxy \
  61. chapters/201_advanced_examples.doxy \
  62. chapters/210_check_list_performance.doxy \
  63. chapters/301_tasks.doxy \
  64. chapters/310_data_management.doxy \
  65. chapters/320_scheduling.doxy \
  66. chapters/330_scheduling_contexts.doxy \
  67. chapters/340_scheduling_context_hypervisor.doxy \
  68. chapters/350_scheduling_policy_definition.doxy \
  69. chapters/360_debugging_tools.doxy \
  70. chapters/370_online_performance_tools.doxy \
  71. chapters/380_offline_performance_tools.doxy \
  72. chapters/390_faq.doxy \
  73. chapters/400_python.doxy \
  74. chapters/401_out_of_core.doxy \
  75. chapters/410_mpi_support.doxy \
  76. chapters/415_fault_tolerance.doxy \
  77. chapters/420_fft_support.doxy \
  78. chapters/450_native_fortran_support.doxy \
  79. chapters/460_socl_opencl_extensions.doxy \
  80. chapters/470_simgrid.doxy \
  81. chapters/480_openmp_runtime_support.doxy \
  82. chapters/490_clustering_a_machine.doxy \
  83. chapters/495_interoperability.doxy \
  84. chapters/497_eclipse_plugin.doxy \
  85. chapters/501_environment_variables.doxy \
  86. chapters/510_configure_options.doxy \
  87. chapters/520_files.doxy \
  88. chapters/601_scaling_vector_example.doxy \
  89. chapters/610_fdl_1_3.doxy \
  90. chapters/code/forkmode.c \
  91. chapters/code/multiformat.c \
  92. chapters/code/complex.c \
  93. chapters/code/simgrid.c \
  94. chapters/code/vector_scal_c.c \
  95. chapters/code/vector_scal_cpu.c \
  96. chapters/code/vector_scal_cuda.c \
  97. chapters/code/vector_scal_opencl.c \
  98. chapters/code/vector_scal_opencl_codelet.cl \
  99. chapters/code/disk_copy.c \
  100. chapters/code/disk_compute.c \
  101. chapters/code/nf_initexit.f90 \
  102. chapters/api/fft_support.doxy \
  103. chapters/api/threads.doxy
  104. images = \
  105. chapters/images/data_trace.eps \
  106. chapters/images/data_trace.pdf \
  107. chapters/images/data_trace.png \
  108. chapters/images/distrib_data.eps \
  109. chapters/images/distrib_data.pdf \
  110. chapters/images/distrib_data.png \
  111. chapters/images/distrib_data_histo.eps \
  112. chapters/images/distrib_data_histo.pdf \
  113. chapters/images/distrib_data_histo.png \
  114. chapters/images/paje_draw_histogram.eps \
  115. chapters/images/paje_draw_histogram.pdf \
  116. chapters/images/paje_draw_histogram.png \
  117. chapters/images/parallel_worker2.eps \
  118. chapters/images/parallel_worker2.pdf \
  119. chapters/images/parallel_worker2.png \
  120. chapters/images/runtime-par.eps \
  121. chapters/images/runtime-par.pdf \
  122. chapters/images/runtime-par.png \
  123. chapters/images/starpu_non_linear_memset_regression_based.eps \
  124. chapters/images/starpu_non_linear_memset_regression_based.pdf \
  125. chapters/images/starpu_non_linear_memset_regression_based.png \
  126. chapters/images/starpu_non_linear_memset_regression_based_2.eps \
  127. chapters/images/starpu_non_linear_memset_regression_based_2.pdf \
  128. chapters/images/starpu_non_linear_memset_regression_based_2.png \
  129. chapters/images/starpu_starpu_slu_lu_model_11.eps \
  130. chapters/images/starpu_starpu_slu_lu_model_11.pdf \
  131. chapters/images/starpu_starpu_slu_lu_model_11.png \
  132. chapters/images/starpu_chol_model_11_type.eps \
  133. chapters/images/starpu_chol_model_11_type.pdf \
  134. chapters/images/starpu_chol_model_11_type.png \
  135. chapters/images/tasks_size_overhead.eps \
  136. chapters/images/tasks_size_overhead.pdf \
  137. chapters/images/tasks_size_overhead.png \
  138. chapters/images/temanejo.png \
  139. chapters/images/eclipse_installer.png \
  140. chapters/images/eclipse_install_cdt.png \
  141. chapters/images/eclipse_hello_build.png \
  142. chapters/images/eclipse_hello_run.png \
  143. chapters/images/eclipse_hello_fxt.png \
  144. chapters/images/eclipse_hello_graph.png \
  145. chapters/images/eclipse_hello_vite.png \
  146. chapters/images/eclipse_hello_svg_graph.png \
  147. chapters/images/eclipse_hello_plugin.png \
  148. chapters/images/eclipse_hello_paje_trace.png \
  149. chapters/images/eclipse_hello_hgraph.png
  150. if STARPU_BUILD_DOC
  151. EXTRA_DIST += \
  152. $(top_srcdir)/doc/doxygen/chapters/version.sty \
  153. $(top_srcdir)/doc/doxygen/chapters/version.html
  154. starpu_config.h: $(top_srcdir)/include/starpu_config.h.in
  155. @$(SED) 's/#undef \(.*\)/#define \1 1/' $< > $@
  156. chapters/version.sty: $(chapters)
  157. @for f in $(chapters) ; do \
  158. if test -f $(top_srcdir)/doc/doxygen/$$f ; then $(PROG_STAT) --format=%Y $(top_srcdir)/doc/doxygen/$$f ; fi \
  159. done | sort -r | head -1 > timestamp_sty
  160. @if test -s timestamp_sty ; then \
  161. LC_ALL=C $(PROG_DATE) --date=@`cat timestamp_sty` +"%F" > timestamp_sty_updated ;\
  162. LC_ALL=C $(PROG_DATE) --date=@`cat timestamp_sty` +"%B %Y" > timestamp_sty_updated_month ;\
  163. fi
  164. @if test -s timestamp_sty_updated ; then \
  165. echo ':newcommand{:STARPUUPDATED}{'`cat timestamp_sty_updated`'}' > $(top_srcdir)/doc/doxygen/chapters/version.sty;\
  166. else \
  167. echo ':newcommand{:STARPUUPDATED}{unknown date}' > $(top_srcdir)/doc/doxygen/chapters/version.sty;\
  168. fi
  169. @echo ':newcommand{:STARPUVERSION}{$(VERSION)}' >> $(top_srcdir)/doc/doxygen/chapters/version.sty
  170. @$(SED) -i 's/:/\\/g' $(top_srcdir)/doc/doxygen/chapters/version.sty
  171. @for f in timestamp_sty timestamp_sty_updated timestamp_sty_updated_month ; do \
  172. if test -f $$f ; then $(RM) $$f ; fi ;\
  173. done
  174. chapters/version.html: $(chapters) $(images)
  175. @for f in $(chapters) ; do \
  176. if test -f $(top_srcdir)/doc/doxygen/$$f ; then $(PROG_STAT) --format=%Y $(top_srcdir)/doc/doxygen/$$f ; fi \
  177. done | sort -r | head -1 > timestamp_html
  178. @if test -s timestamp_html ; then \
  179. LC_ALL=C $(PROG_DATE) --date=@`cat timestamp_html` +"%F" > timestamp_html_updated ;\
  180. LC_ALL=C $(PROG_DATE) --date=@`cat timestamp_html` +"%B %Y" > timestamp_html_updated_month ;\
  181. fi
  182. @echo "This manual documents the usage of StarPU version $(VERSION)." > $(top_srcdir)/doc/doxygen/chapters/version.html
  183. @if test -s timestamp_html_updated ; then \
  184. echo "Its contents was last updated on "`cat timestamp_html_updated`"." >> $(top_srcdir)/doc/doxygen/chapters/version.html;\
  185. else \
  186. echo "Its contents was last updated on <em>unknown_date</em>." >> $(top_srcdir)/doc/doxygen/chapters/version.html;\
  187. fi
  188. @for f in timestamp_html timestamp_html_updated timestamp_html_updated_month ; do \
  189. if test -f $$f ; then $(RM) $$f ; fi ;\
  190. done
  191. dox_inputs = $(DOX_CONFIG) \
  192. $(chapters) \
  193. starpu_config.h \
  194. chapters/version.sty \
  195. chapters/version.html \
  196. $(top_srcdir)/include/starpu.h \
  197. $(top_srcdir)/include/starpu_bitmap.h \
  198. $(top_srcdir)/include/starpu_bound.h \
  199. $(top_srcdir)/include/starpu_clusters.h \
  200. $(top_srcdir)/include/starpu_cublas.h \
  201. $(top_srcdir)/include/starpu_cublas_v2.h \
  202. $(top_srcdir)/include/starpu_cusparse.h \
  203. $(top_srcdir)/include/starpu_cuda.h \
  204. $(top_srcdir)/include/starpu_data_filters.h \
  205. $(top_srcdir)/include/starpu_data.h \
  206. $(top_srcdir)/include/starpu_data_interfaces.h \
  207. $(top_srcdir)/include/starpu_deprecated_api.h \
  208. $(top_srcdir)/include/starpu_disk.h \
  209. $(top_srcdir)/include/starpu_driver.h \
  210. $(top_srcdir)/include/starpu_expert.h \
  211. $(top_srcdir)/include/starpu_fxt.h \
  212. $(top_srcdir)/include/starpu_hash.h \
  213. $(top_srcdir)/include/starpu_helper.h \
  214. $(top_srcdir)/include/starpu_mpi_ms.h \
  215. $(top_srcdir)/include/starpu_mod.f90 \
  216. $(top_srcdir)/include/starpu_opencl.h \
  217. $(top_srcdir)/include/starpu_openmp.h \
  218. $(top_srcdir)/include/starpu_perf_monitoring.h \
  219. $(top_srcdir)/include/starpu_perf_steering.h \
  220. $(top_srcdir)/include/starpu_perfmodel.h \
  221. $(top_srcdir)/include/starpu_profiling.h \
  222. $(top_srcdir)/include/starpu_rand.h \
  223. $(top_srcdir)/include/starpu_sched_component.h \
  224. $(top_srcdir)/include/starpu_sched_ctx.h \
  225. $(top_srcdir)/include/starpu_sched_ctx_hypervisor.h \
  226. $(top_srcdir)/include/starpu_scheduler.h \
  227. $(top_srcdir)/include/starpu_simgrid_wrap.h \
  228. $(top_srcdir)/include/starpu_sink.h \
  229. $(top_srcdir)/include/starpu_stdlib.h \
  230. $(top_srcdir)/include/starpu_task_bundle.h \
  231. $(top_srcdir)/include/starpu_task_dep.h \
  232. $(top_srcdir)/include/starpu_task.h \
  233. $(top_srcdir)/include/starpu_task_list.h \
  234. $(top_srcdir)/include/starpu_task_util.h \
  235. $(top_srcdir)/include/starpu_thread.h \
  236. $(top_srcdir)/include/starpu_thread_util.h \
  237. $(top_srcdir)/include/starpu_tree.h \
  238. $(top_srcdir)/include/starpu_util.h \
  239. $(top_srcdir)/include/starpu_worker.h \
  240. $(top_srcdir)/include/fstarpu_mod.f90 \
  241. $(top_srcdir)/include/schedulers/starpu_heteroprio.h \
  242. $(top_srcdir)/starpufft/include/starpufft.h \
  243. $(top_srcdir)/mpi/include/starpu_mpi.h \
  244. $(top_srcdir)/mpi/include/starpu_mpi_lb.h \
  245. $(top_srcdir)/mpi/include/fstarpu_mpi_mod.f90 \
  246. $(top_srcdir)/sc_hypervisor/include/sc_hypervisor.h \
  247. $(top_srcdir)/sc_hypervisor/include/sc_hypervisor_config.h \
  248. $(top_srcdir)/sc_hypervisor/include/sc_hypervisor_lp.h \
  249. $(top_srcdir)/sc_hypervisor/include/sc_hypervisor_monitoring.h \
  250. $(top_srcdir)/sc_hypervisor/include/sc_hypervisor_policy.h \
  251. $(top_srcdir)/starpurm/include/starpurm.h
  252. doxy:
  253. @rm -fr $(DOX_HTML_DIR) $(DOX_LATEX_DIR)
  254. @$(DOXYGEN) $(DOX_CONFIG)
  255. $(DOX_TAG): $(dox_inputs)
  256. @rm -fr $(DOX_HTML_DIR) $(DOX_LATEX_DIR)
  257. @$(DOXYGEN) $(DOX_CONFIG)
  258. @$(SED) -i 's/ModuleDocumentation <\/li>/<a class="el" href="modules.html">Modules<\/a>/' html/index.html
  259. @$(SED) -i 's/FileDocumentation <\/li>/<a class="el" href="files.html">Files<\/a>/' html/index.html
  260. # comment for the line below: what we really want to do is to remove the line, but dy doing so, it avoids opening the interactive menu when browsing files
  261. @if test -f html/navtree.js ; then $(SED) -i 's/\[ "Files", "Files.html", null \]/\[ "", "Files.html", null \]/' html/navtree.js ; fi
  262. @$(SED) -i 's/.*"Files.html".*//' html/pages.html
  263. @if test -f latex/main.tex ; then mv latex/main.tex latex/index.tex ; fi
  264. @$(SED) -i '/\\begin{titlepage}/,$$d' $(DOX_LATEX_DIR)/refman.tex
  265. @cat $(top_srcdir)/doc/doxygen/refman.tex >> $(DOX_LATEX_DIR)/refman.tex
  266. $(DOX_HTML_DIR): $(DOX_TAG)
  267. $(DOX_PDF): $(DOX_TAG) refman.tex $(images)
  268. @cp $(top_srcdir)/doc/doxygen/chapters/version.sty $(DOX_LATEX_DIR)
  269. @cp $(top_srcdir)/doc/doxygen/chapters/images/*pdf $(DOX_LATEX_DIR)
  270. @echo $(PDFLATEX) $(DOX_LATEX_DIR)/refman.tex
  271. @cd $(DOX_LATEX_DIR) ;\
  272. rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out ;\
  273. $(SED) -i -e 's/__env__/\\_Environment Variables!/' -e 's/\\-\\_\\-\\-\\_\\-env\\-\\_\\-\\-\\_\\-//' ExecutionConfigurationThroughEnvironmentVariables.tex ;\
  274. $(SED) -i -e 's/__configure__/\\_Configure Options!/' -e 's/\\-\\_\\-\\-\\_\\-configure\\-\\_\\-\\-\\_\\-//' CompilationConfiguration.tex ;\
  275. $(SED) -i s'/\\item Module\\.Documentation/\\item \\hyperlink{ModuleDocumentation}{Module Documentation}/' index.tex ;\
  276. $(SED) -i s'/\\item File\\.Documentation/\\item \\hyperlink{FileDocumentation}{File Documentation}/' index.tex ;\
  277. max_print_line=1000000 $(PDFLATEX) -interaction batchmode refman.tex ;\
  278. ! < refman.log grep -v group__ | grep -v _amgrp | grep -v deprecated__ | grep "multiply defined" || exit 1 ;\
  279. $(MAKEINDEX) refman.idx ;\
  280. max_print_line=1000000 $(PDFLATEX) -interaction batchmode refman.tex ;\
  281. for i in $(shell seq 1 5); do \
  282. if $(EGREP) 'Rerun (LaTeX|to get cross-references right)' refman.log > /dev/null 2>&1; then \
  283. max_print_line=1000000 $(PDFLATEX) -interaction batchmode refman.tex; \
  284. else \
  285. break ; \
  286. fi; \
  287. done
  288. mv $(DOX_LATEX_DIR)/refman.pdf $(DOX_PDF)
  289. CLEANFILES = $(DOX_TAG) starpu_config.h \
  290. -r \
  291. $(DOX_HTML_DIR) \
  292. $(DOX_LATEX_DIR) \
  293. $(DOX_PDF)
  294. endif
  295. EXTRA_DIST += doxygen.cfg refman.tex \
  296. $(chapters) $(images)