Makefile 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. thisdir = docs
  2. SUBDIRS =
  3. include ../build/rules.make
  4. DISTFILES = \
  5. clr-abi.txt \
  6. compiler.txt \
  7. control-flow-analysis.txt \
  8. cs-errors.config \
  9. monodoc.xml \
  10. new-anonymous-design.txt \
  11. order.txt \
  12. $(DOC_SOURCE_FILES) \
  13. $(wildcard ecma334/*.xml)
  14. DOC_SOURCE_FILES = \
  15. lang-csharp.source \
  16. Mono.source \
  17. netdocs.source \
  18. Novell.source
  19. ASSEMBLED_DOCS = \
  20. cs-errors.tree cs-errors.zip \
  21. ecma334.tree ecma334.zip \
  22. Mono.tree Mono.zip \
  23. netdocs.tree netdocs.zip \
  24. Novell.tree Novell.zip
  25. MONODOC_SOURCES_INSTALL_FILES = \
  26. $(ASSEMBLED_DOCS) \
  27. $(DOC_SOURCE_FILES)
  28. CLEAN_FILES += $(ASSEMBLED_DOCS)
  29. ifeq (net_2_0, $(PROFILE))
  30. all-local: build-documentation
  31. endif
  32. all-local test-local run-test-local run-test-ondotnet-local doc-update:
  33. clean-local:
  34. -rm -f $(CLEAN_FILES)
  35. dist-local: dist-default
  36. MONODOC_INSTALL_DIR = $(DESTDIR)$(mono_libdir)/monodoc
  37. ifdef DISABLE_MCS_DOCS
  38. install-local:
  39. uninstall-local:
  40. else
  41. install-local:
  42. $(MKINSTALLDIRS) $(MONODOC_INSTALL_DIR) $(MONODOC_INSTALL_DIR)/sources
  43. $(INSTALL_DATA) $(MONODOC_SOURCES_INSTALL_FILES) $(MONODOC_INSTALL_DIR)/sources
  44. $(INSTALL_DATA) monodoc.xml $(MONODOC_INSTALL_DIR)
  45. uninstall-local:
  46. -rm -f $(MONODOC_INSTALL_DIR)/monodoc.xml
  47. -rm -f $(addprefix $(MONODOC_INSTALL_DIR)/sources/,$(MONODOC_SOURCES_INSTALL_FILES))
  48. endif
  49. classdir = $(topdir)/class
  50. doc_en = Documentation/en
  51. NETDOCS_DIRS = \
  52. $(classdir)/corlib/$(doc_en) \
  53. $(classdir)/Microsoft.Build.Engine/$(doc_en) \
  54. $(classdir)/Microsoft.Build.Framework/$(doc_en) \
  55. $(classdir)/Microsoft.Build.Utilities/$(doc_en) \
  56. $(classdir)/System.Configuration.Install/$(doc_en) \
  57. $(classdir)/System.Core/$(doc_en) \
  58. $(classdir)/System.Data/$(doc_en) \
  59. $(classdir)/System.Design/$(doc_en) \
  60. $(classdir)/System.DirectoryServices/$(doc_en) \
  61. $(classdir)/System.Drawing/$(doc_en) \
  62. $(classdir)/System.Runtime.Remoting/$(doc_en) \
  63. $(classdir)/System.Runtime.Serialization.Formatters.Soap/$(doc_en) \
  64. $(classdir)/System.Security/$(doc_en) \
  65. $(classdir)/System.Web.Services/$(doc_en) \
  66. $(classdir)/System.Web/$(doc_en) \
  67. $(classdir)/System.XML/$(doc_en) \
  68. $(classdir)/System/$(doc_en) \
  69. MONO_DIRS = \
  70. $(classdir)/Commons.Xml.Relaxng/$(doc_en) \
  71. $(classdir)/Mono.Cairo/$(doc_en) \
  72. $(classdir)/Mono.Data.SqliteClient/$(doc_en) \
  73. $(classdir)/Mono.GetOptions/$(doc_en) \
  74. $(classdir)/Mono.Options/$(doc_en) \
  75. $(classdir)/Mono.Posix/$(doc_en) \
  76. $(classdir)/Mono.Security.Win32/$(doc_en) \
  77. $(classdir)/Mono.Security/$(doc_en) \
  78. $(classdir)/Mono.Simd/$(doc_en) \
  79. $(classdir)/Npgsql/$(doc_en) \
  80. $(topdir)/tools/csharplib/en
  81. NOVELL_DIRS = \
  82. $(topdir)/class/Novell.Directory.Ldap/Documentation/en
  83. NUNIT_DIRS = \
  84. $(topdir)/nunit20/core/$(doc_en) \
  85. $(topdir)/nunit20/framework/$(doc_en) \
  86. $(topdir)/nunit20/mocks/$(doc_en) \
  87. $(topdir)/nunit20/util/$(doc_en)
  88. ifdef DISABLE_MCS_DOCS
  89. build-documentation:
  90. else
  91. build-documentation: $(ASSEMBLED_DOCS)
  92. endif
  93. # To support `make -jN`, we can't mention multiple targets in the same rule;
  94. # DO NOT DO THIS:
  95. #
  96. # foo.tree foo.zip : Makefile
  97. # $(MDOC) assemble -o foo $(FOO_DIRS)
  98. #
  99. # If you do, make will try to biuld foo.tree & foo.zip concurrently, which
  100. # breaks things badly... (read: "mdoc: sharing violation on path...foo.zip").
  101. #
  102. # The proper solution is to chain the rule dependencies so that only one file
  103. # is the target of a rule.
  104. netdocs.zip : netdocs.tree
  105. netdocs.tree: Makefile
  106. $(MDOC) assemble -o netdocs $(NETDOCS_DIRS)
  107. Mono.zip : Mono.tree
  108. Mono.tree: Makefile
  109. $(MDOC) assemble -o Mono $(MONO_DIRS)
  110. Novell.zip : Novell.tree
  111. Novell.tree: Makefile
  112. $(MDOC) assemble -o Novell $(NOVELL_DIRS)
  113. cs-errors.zip : cs-errors.tree
  114. cs-errors.tree: cs-errors.config Makefile
  115. $(MDOC) assemble -o cs-errors -f error $<
  116. ecma334.zip : ecma334.tree
  117. ecma334.tree: Makefile
  118. $(MDOC) assemble -o ecma334 -f ecmaspec ecma334