2009-12-07 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / docs / Makefile
index ef8e12011162b275a91038118bd83fa08f3016eb..8c2d76b98109d04a410522387e8b44210985388c 100644 (file)
@@ -7,7 +7,6 @@ DISTFILES = \
        compiler.txt                \
        control-flow-analysis.txt   \
        cs-errors.config            \
-       mono-tools.config           \
        monodoc.xml                 \
        new-anonymous-design.txt    \
        order.txt                   \
@@ -15,22 +14,17 @@ DISTFILES = \
        $(wildcard ecma334/*.xml)
 
 DOC_SOURCE_FILES = \
-       cs-errors.source            \
-       ecma334.source              \
-       mono-tools.source           \
+       lang-csharp.source          \
        Mono.source                 \
        netdocs.source              \
-       Novell.source               \
-       nunit-docs.source
+       Novell.source
 
 ASSEMBLED_DOCS = \
        cs-errors.tree cs-errors.zip      \
        ecma334.tree ecma334.zip          \
-       mono-tools.tree mono-tools.zip    \
        Mono.tree Mono.zip                \
        netdocs.tree netdocs.zip          \
-       Novell.tree Novell.zip            \
-       nunit-docs.tree nunit-docs.zip
+       Novell.tree Novell.zip            
 
 MONODOC_SOURCES_INSTALL_FILES = \
        $(ASSEMBLED_DOCS)             \
@@ -42,15 +36,22 @@ ifeq (net_2_0, $(PROFILE))
 all-local: build-documentation
 endif
 
-all-local test-local run-test-local run-test-ondotnet-local doc-update:
+all-local csproj-local test-local run-test-local run-test-ondotnet-local doc-update:
 
 clean-local:
-       -rm $(CLEAN_FILES)
+       -rm -f $(CLEAN_FILES)
 
 dist-local: dist-default
 
+
 MONODOC_INSTALL_DIR = $(DESTDIR)$(mono_libdir)/monodoc
 
+ifdef DISABLE_MCS_DOCS
+install-local:
+
+uninstall-local:
+
+else
 install-local:
        $(MKINSTALLDIRS) $(MONODOC_INSTALL_DIR) $(MONODOC_INSTALL_DIR)/sources
        $(INSTALL_DATA) $(MONODOC_SOURCES_INSTALL_FILES) $(MONODOC_INSTALL_DIR)/sources
@@ -59,61 +60,89 @@ install-local:
 uninstall-local:
        -rm -f $(MONODOC_INSTALL_DIR)/monodoc.xml
        -rm -f $(addprefix $(MONODOC_INSTALL_DIR)/sources/,$(MONODOC_SOURCES_INSTALL_FILES))
+endif
+
+
+
+classdir = $(topdir)/class
+doc_en   = Documentation/en
 
 NETDOCS_DIRS = \
-       $(topdir)/class/corlib/Documentation/en                       \
-       $(topdir)/class/System/Documentation/en                       \
-       $(topdir)/class/System.Core/Documentation/en                  \
-       $(topdir)/class/System.XML/Documentation/en                   \
-       $(topdir)/class/System.Web/Documentation/en                   \
-       $(topdir)/class/System.Web.Services/Documentation/en          \
-       $(topdir)/class/System.Data/Documentation/en                  \
-       $(topdir)/class/System.DirectoryServices/Documentation/en     \
-       $(topdir)/class/System.Drawing/Documentation/en               \
-       $(topdir)/class/System.Security/Documentation/en              \
-       $(topdir)/class/Microsoft.Build.Framework/Documentation/en    \
-       $(topdir)/class/Microsoft.Build.Engine/Documentation/en       \
-       $(topdir)/class/Microsoft.Build.Utilities/Documentation/en
+       $(classdir)/corlib/$(doc_en)                                        \
+       $(classdir)/Microsoft.Build.Engine/$(doc_en)                        \
+       $(classdir)/Microsoft.Build.Framework/$(doc_en)                     \
+       $(classdir)/Microsoft.Build.Utilities/$(doc_en)                     \
+       $(classdir)/System.Configuration.Install/$(doc_en)                  \
+       $(classdir)/System.Core/$(doc_en)                                   \
+       $(classdir)/System.Data/$(doc_en)                                   \
+       $(classdir)/System.Design/$(doc_en)                                 \
+       $(classdir)/System.DirectoryServices/$(doc_en)                      \
+       $(classdir)/System.Drawing/$(doc_en)                                \
+       $(classdir)/System.Runtime.Remoting/$(doc_en)                       \
+       $(classdir)/System.Runtime.Serialization.Formatters.Soap/$(doc_en)  \
+       $(classdir)/System.Security/$(doc_en)                               \
+       $(classdir)/System.Web.Services/$(doc_en)                           \
+       $(classdir)/System.Web/$(doc_en)                                    \
+       $(classdir)/System.XML/$(doc_en)                                    \
+       $(classdir)/System/$(doc_en)                                        \
 
 MONO_DIRS = \
-       $(topdir)/class/Commons.Xml.Relaxng/Documentation/en          \
-       $(topdir)/class/Mono.Cairo/Documentation/en                   \
-       $(topdir)/class/Mono.Data.SqliteClient/Documentation/en       \
-       $(topdir)/class/Mono.GetOptions/Documentation/en              \
-       $(topdir)/class/Mono.Options/Documentation/en                 \
-       $(topdir)/class/Mono.Posix/Documentation/en                   \
-       $(topdir)/class/Mono.Security.Win32/Documentation/en          \
-       $(topdir)/class/Mono.Security/Documentation/en
+       $(classdir)/Commons.Xml.Relaxng/$(doc_en)          \
+       $(classdir)/Mono.Cairo/$(doc_en)                   \
+       $(classdir)/Mono.Data.SqliteClient/$(doc_en)       \
+       $(classdir)/Mono.GetOptions/$(doc_en)              \
+       $(classdir)/Mono.Options/$(doc_en)                 \
+       $(classdir)/Mono.Posix/$(doc_en)                   \
+       $(classdir)/Mono.Security.Win32/$(doc_en)          \
+       $(classdir)/Mono.Security/$(doc_en)                \
+       $(classdir)/Mono.Simd/$(doc_en)                    \
+       $(classdir)/Mono.CSharp/$(doc_en)                  \
+       $(classdir)/Npgsql/$(doc_en)                       
 
 NOVELL_DIRS = \
        $(topdir)/class/Novell.Directory.Ldap/Documentation/en
 
 NUNIT_DIRS = \
-       $(topdir)/nunit20/core/Documentation/en       \
-       $(topdir)/nunit20/framework/Documentation/en  \
-       $(topdir)/nunit20/mocks/Documentation/en      \
-       $(topdir)/nunit20/util/Documentation/en
-
+       $(topdir)/nunit20/core/$(doc_en)       \
+       $(topdir)/nunit20/framework/$(doc_en)  \
+       $(topdir)/nunit20/mocks/$(doc_en)      \
+       $(topdir)/nunit20/util/$(doc_en)
+
+ifdef DISABLE_MCS_DOCS
+build-documentation:
+else
 build-documentation: $(ASSEMBLED_DOCS)
+endif
 
-netdocs.tree netdocs.zip:
+# To support `make -jN`, we can't mention multiple targets in the same rule;
+# DO NOT DO THIS:
+#
+#        foo.tree foo.zip : Makefile
+#     $(MDOC) assemble -o foo $(FOO_DIRS)
+#
+# If you do, make will try to biuld foo.tree & foo.zip concurrently, which
+# breaks things badly... (read: "mdoc: sharing violation on path...foo.zip").
+#
+# The proper solution is to chain the rule dependencies so that only one file
+# is the target of a rule.
+
+netdocs.zip : netdocs.tree
+netdocs.tree: Makefile
        $(MDOC) assemble -o netdocs $(NETDOCS_DIRS)
 
-Mono.tree Mono.zip:
+Mono.zip : Mono.tree
+Mono.tree: Makefile
        $(MDOC) assemble -o Mono $(MONO_DIRS)
 
-Novell.tree Novell.zip:
+Novell.zip : Novell.tree
+Novell.tree: Makefile
        $(MDOC) assemble -o Novell $(NOVELL_DIRS)
 
-nunit-docs.tree nunit-docs.zip:
-       $(MDOC) assemble -o nunit-docs $(NUNIT_DIRS)
-
-cs-errors.tree cs-errors.zip:
-       $(MDOC) assemble -o cs-errors -f error cs-errors.config
+cs-errors.zip : cs-errors.tree
+cs-errors.tree: cs-errors.config Makefile
+       $(MDOC) assemble -o cs-errors -f error $<
 
-ecma334.tree ecma334.zip:
+ecma334.zip : ecma334.tree
+ecma334.tree: Makefile
        $(MDOC) assemble -o ecma334 -f ecmaspec ecma334
 
-mono-tools.tree mono-tools.zip: mono-tools.config
-       $(MDOC) assemble -o mono-tools -f man mono-tools.config
-