2006-04-21 Sebastien Pouliot <sebastien@ximian.com>
[mono.git] / mcs / class / Makefile
index a31586dae20bcfb77b7e3400f1f4b059da120c2b..07735b0cdf958793b635db7de0d410bc8938be6c 100644 (file)
 thisdir = class
-include ../build/rules.make
 
-MONO_POSIX = Mono.Posix
-ifeq ($(PLATFORM),linux)
-MONO_CSHARP_DEBUGGER = Mono.CSharp.Debugger
-else
-MONO_CSHARP_DEBUGGER =
-endif
-SUBDIRS = \
+MONO_POSIX := Mono.Posix
+MONO_SYMBOLWRITER := Mono.CompilerServices.SymbolWriter
+
+bootstrap_dirs := \
+       corlib                                  \
+       System                                  \
+       System.XML                              \
+       Mono.Security                           \
+       System.Security                         \
+       System.Configuration                    \
+       System                                  \
+       $(MONO_SYMBOLWRITER)
+
+# Note that Mono.Security and System.Security aren't listed.
+# We may have to add those if 'mcs' starts using them.
+basic_SUBDIRS := corlib System System.XML System
+
+net_1_1_bootstrap_SUBDIRS := $(bootstrap_dirs) PEAPI
+net_2_0_bootstrap_SUBDIRS := $(bootstrap_dirs) PEAPI
+
+net_1_1_java_SUBDIRS = \
+       System.Xml                                      \
+       System.Data                                     \
+       System.Drawing                                  \
+       Novell.Directory.Ldap                           \
+       System.DirectoryServices                        \
+       System.Runtime.Serialization.Formatters.Soap    \
+       System.Runtime.Remoting
+
+common_dirs := \
        corlib                          \
-       I18N                            \
        System                          \
        System.XML                      \
+       Mono.Security                   \
        System                          \
+       System.Security                 \
+       System.Configuration            \
+       System                          \
+       I18N                            \
        System.Drawing                  \
        System.EnterpriseServices       \
-       Mono.Security                   \
+       Mono.C5                         \
        Mono.Data.Tds                   \
-       System.Security                 \
        System.Data                     \
+       Mono.Data                       \
        Mono.GetOptions                 \
        System.Web                      \
        System.Web.Services             \
+       System.Web                      \
        System.Runtime.Serialization.Formatters.Soap \
        System.Runtime.Remoting         \
        System.Configuration.Install    \
        System.Management               \
-       $(MONO_CSHARP_DEBUGGER)         \
-       Mono.Data.DB2Client             \
-       Mono.Data.MySql                 \
-       Mono.Data.PostgreSqlClient      \
+       $(MONO_SYMBOLWRITER)            \
+       $(MONO_POSIX)                   \
        Mono.Data.SqliteClient          \
        Mono.Data.SybaseClient          \
        Mono.Data.TdsClient             \
        System.Data.OracleClient        \
-       Mono.PEToolkit                  \
-       $(MONO_POSIX)                   \
        Accessibility                   \
-       Microsoft.VisualBasic           \
        Microsoft.VisualC               \
        Cscompmgd                       \
-       System.Windows.Forms            \
+       Managed.Windows.Forms           \
+       Microsoft.VisualBasic           \
        System.Design                   \
        PEAPI                           \
        Npgsql                          \
        ICSharpCode.SharpZipLib         \
+       Compat.ICSharpCode.SharpZipLib  \
        ByteFX.Data                     \
        Commons.Xml.Relaxng             \
        Novell.Directory.Ldap           \
        Mono.Security.Win32             \
-       Novell.Directory.Ldap           \
        System.DirectoryServices        \
-       System.Messaging        \
-       System.ServiceProcess \
+       System.Messaging                \
+       System.ServiceProcess           \
        System.Drawing.Design           \
        Mono.Http                       \
        Microsoft.Vsa                   \
-       Mono.Cairo
-#      Microsoft.JScript               \
+       Mono.Cairo                      \
+       IBM.Data.DB2                    \
+       Microsoft.JScript
+
+default_dirs := FirebirdSql.Data.Firebird
+
+net_2_0_dirs := \
+       Microsoft.Build.Framework       \
+       Microsoft.Build.Utilities       \
+       Microsoft.Build.Engine          \
+       Microsoft.Build.Tasks           \
+       System.Transactions
+
+default_SUBDIRS := $(common_dirs) $(default_dirs)
+net_2_0_SUBDIRS := $(common_dirs) $(net_2_0_dirs)
+
+include ../build/rules.make
 
-# Starting with Microsoft.Vsa, the libraries above weren't in the
-# Linux makefile.gnu before, but they build fine, so might as well
-# include them ...
-#
-# Need a way to only build/test Mono.Security.Win32 on Windows.
-# It builds on linux, but make run-test will barf because a
-# DLL doesn't exist.
+SUBDIRS = $(common_dirs) $(default_dirs) $(net_2_0_dirs)
 
 # These libraries below are either unimplemented or don't compile, but
 # I wrote makefiles for them.
 
-DIST_ONLY_SUBDIRS = \
+BROKEN_SUBDIRS = \
        Custommarshalers                \
        Mono.Globalization
 
+DIST_ONLY_SUBDIRS = \
+       $(BROKEN_SUBDIRS)
+
 # No new makefiles for: System.Messaging, System.Web.Mobile,
 # System.ServiceProcess
 
 DISTFILES = \
+       ecma.pub                \
+       mono.pub                \
+       msfinal.pub             \
+       mono.snk                \
        LICENSE                 \
        README                  \
        doc/API-notes           \
        doc/NUnitGuidelines     \
-       doc/notes               \
-       notes/BitVecto32.txt
+       doc/TemplateTest.cs     \
+       notes/BitVecto32.txt    \
+       $(monolite_files)
+
+.PHONY: all-local $(STD_TARGETS:=-local)
+all-local $(STD_TARGETS:=-local):
+       @:
+
+basic_files = mcs.exe mscorlib.dll System.dll System.Xml.dll
+monolite_files = $(basic_files:%=lib/monolite/%)
+
+DIST_PROFILE_DIRS = basic net_1_1_bootstrap default net_2_0_bootstrap net_2_0
+COMPAT_PROFILE_DIRS = default net_2_0
+
+lib/monolite:
+       $(MKINSTALLDIRS) $@
+
+$(monolite_files): lib/monolite/%: lib/basic/% lib/monolite
+       cp -p $< $@
 
-all-local install-local test-local run-test-local clean-local uninstall-local:
+$(basic_files:%=lib/basic/%):
+       cd $(topdir) && $(MAKE) profile-do--basic--all
 
+dist-default: $(monolite_files)
 dist-local: dist-default
-       -mkdir $(distdir)/lib
+       -$(MKINSTALLDIRS) $(DIST_PROFILE_DIRS:%=$(distdir)/lib/%) $(COMPAT_PROFILE_DIRS:%=$(distdir)/compat/%)