2009-02-02 Rodrigo Kumpera <rkumpera@novell.com>
[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         nunit-docs.source
22
23 ASSEMBLED_DOCS = \
24         cs-errors.tree cs-errors.zip      \
25         ecma334.tree ecma334.zip          \
26         Mono.tree Mono.zip                \
27         netdocs.tree netdocs.zip          \
28         Novell.tree Novell.zip            
29
30 MONODOC_SOURCES_INSTALL_FILES = \
31         $(ASSEMBLED_DOCS)             \
32         $(DOC_SOURCE_FILES)
33
34 CLEAN_FILES += $(ASSEMBLED_DOCS)
35
36 ifeq (net_2_0, $(PROFILE))
37 all-local: build-documentation
38 endif
39
40 all-local test-local run-test-local run-test-ondotnet-local doc-update:
41
42 clean-local:
43         -rm -f $(CLEAN_FILES)
44
45 dist-local: dist-default
46
47 MONODOC_INSTALL_DIR = $(DESTDIR)$(mono_libdir)/monodoc
48
49 install-local:
50         $(MKINSTALLDIRS) $(MONODOC_INSTALL_DIR) $(MONODOC_INSTALL_DIR)/sources
51         $(INSTALL_DATA) $(MONODOC_SOURCES_INSTALL_FILES) $(MONODOC_INSTALL_DIR)/sources
52         $(INSTALL_DATA) monodoc.xml $(MONODOC_INSTALL_DIR)
53
54 uninstall-local:
55         -rm -f $(MONODOC_INSTALL_DIR)/monodoc.xml
56         -rm -f $(addprefix $(MONODOC_INSTALL_DIR)/sources/,$(MONODOC_SOURCES_INSTALL_FILES))
57
58 classdir = $(topdir)/class
59 doc_en   = Documentation/en
60
61 NETDOCS_DIRS = \
62         $(classdir)/corlib/$(doc_en)                                        \
63         $(classdir)/Microsoft.Build.Engine/$(doc_en)                        \
64         $(classdir)/Microsoft.Build.Framework/$(doc_en)                     \
65         $(classdir)/Microsoft.Build.Utilities/$(doc_en)                     \
66         $(classdir)/System.Configuration.Install/$(doc_en)                  \
67         $(classdir)/System.Core/$(doc_en)                                   \
68         $(classdir)/System.Data/$(doc_en)                                   \
69         $(classdir)/System.Design/$(doc_en)                                 \
70         $(classdir)/System.DirectoryServices/$(doc_en)                      \
71         $(classdir)/System.Drawing/$(doc_en)                                \
72         $(classdir)/System.Runtime.Remoting/$(doc_en)                       \
73         $(classdir)/System.Runtime.Serialization.Formatters.Soap/$(doc_en)  \
74         $(classdir)/System.Security/$(doc_en)                               \
75         $(classdir)/System.Web.Services/$(doc_en)                           \
76         $(classdir)/System.Web/$(doc_en)                                    \
77         $(classdir)/System.XML/$(doc_en)                                    \
78         $(classdir)/System/$(doc_en)                                        \
79
80 MONO_DIRS = \
81         $(classdir)/Commons.Xml.Relaxng/$(doc_en)          \
82         $(classdir)/Mono.Cairo/$(doc_en)                   \
83         $(classdir)/Mono.Data.SqliteClient/$(doc_en)       \
84         $(classdir)/Mono.GetOptions/$(doc_en)              \
85         $(classdir)/Mono.Options/$(doc_en)                 \
86         $(classdir)/Mono.Posix/$(doc_en)                   \
87         $(classdir)/Mono.Security.Win32/$(doc_en)          \
88         $(classdir)/Mono.Security/$(doc_en)                \
89         $(classdir)/Mono.Simd/$(doc_en)                    \
90         $(classdir)/Npgsql/$(doc_en)                       \
91         $(topdir)/tools/csharplib/en
92
93 NOVELL_DIRS = \
94         $(topdir)/class/Novell.Directory.Ldap/Documentation/en
95
96 NUNIT_DIRS = \
97         $(topdir)/nunit20/core/$(doc_en)       \
98         $(topdir)/nunit20/framework/$(doc_en)  \
99         $(topdir)/nunit20/mocks/$(doc_en)      \
100         $(topdir)/nunit20/util/$(doc_en)
101
102 ifdef DISABLE_MCS_DOCS
103 build-documentation:
104 else
105 build-documentation: $(ASSEMBLED_DOCS)
106 endif
107
108 # To support `make -jN`, we can't mention multiple targets in the same rule;
109 # DO NOT DO THIS:
110 #
111 #         foo.tree foo.zip : Makefile
112 #     $(MDOC) assemble -o foo $(FOO_DIRS)
113 #
114 # If you do, make will try to biuld foo.tree & foo.zip concurrently, which
115 # breaks things badly... (read: "mdoc: sharing violation on path...foo.zip").
116 #
117 # The proper solution is to chain the rule dependencies so that only one file
118 # is the target of a rule.
119
120 netdocs.zip : netdocs.tree
121 netdocs.tree: Makefile
122         $(MDOC) assemble -o netdocs $(NETDOCS_DIRS)
123
124 Mono.zip : Mono.tree
125 Mono.tree: Makefile
126         $(MDOC) assemble -o Mono $(MONO_DIRS)
127
128 Novell.zip : Novell.tree
129 Novell.tree: Makefile
130         $(MDOC) assemble -o Novell $(NOVELL_DIRS)
131
132 nunit-docs.zip : nunit-docs.tree
133 nunit-docs.tree: Makefile
134         $(MDOC) assemble -o nunit-docs $(NUNIT_DIRS)
135
136 cs-errors.zip : cs-errors.tree
137 cs-errors.tree: cs-errors.config Makefile
138         $(MDOC) assemble -o cs-errors -f error $<
139
140 ecma334.zip : ecma334.tree
141 ecma334.tree: Makefile
142         $(MDOC) assemble -o ecma334 -f ecmaspec ecma334
143