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