2005-12-20 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / Makefile
1 thisdir = class
2
3 MONO_POSIX := Mono.Posix
4 MONO_SYMBOLWRITER := Mono.CompilerServices.SymbolWriter
5
6 bootstrap_dirs := \
7         corlib                                  \
8         System                                  \
9         System.XML                              \
10         Mono.Security                           \
11         System.Security                         \
12         System.Configuration                    \
13         System                                  \
14         $(MONO_SYMBOLWRITER)
15
16 # Note that Mono.Security and System.Security aren't listed.
17 # We may have to add those if 'mcs' starts using them.
18 basic_SUBDIRS := corlib System System.XML System
19
20 net_1_1_bootstrap_SUBDIRS := $(bootstrap_dirs) PEAPI
21 net_2_0_bootstrap_SUBDIRS := $(bootstrap_dirs) PEAPI
22
23 net_1_1_java_SUBDIRS = \
24         System.Xml                                      \
25         System.Data                                     \
26         System.Drawing                                  \
27         Novell.Directory.Ldap                           \
28         System.DirectoryServices                        \
29         System.Runtime.Serialization.Formatters.Soap    \
30         System.Runtime.Remoting
31
32 default_SUBDIRS := \
33         corlib                          \
34         System                          \
35         System.XML                      \
36         Mono.Security                   \
37         System.Configuration    \
38         System                          \
39         System.Security                 \
40         I18N                            \
41         System.Drawing                  \
42         System.EnterpriseServices       \
43         Mono.C5                         \
44         Mono.Data.Tds                   \
45         System.Data                     \
46         Mono.Data                       \
47         Mono.GetOptions                 \
48         System.Web                      \
49         System.Web.Services             \
50         System.Runtime.Serialization.Formatters.Soap \
51         System.Runtime.Remoting         \
52         System.Configuration.Install    \
53         System.Management               \
54         $(MONO_SYMBOLWRITER)            \
55         $(MONO_POSIX)                   \
56         Mono.Data.SqliteClient          \
57         Mono.Data.SybaseClient          \
58         Mono.Data.TdsClient             \
59         System.Data.OracleClient        \
60         Accessibility                   \
61         Microsoft.VisualC               \
62         Cscompmgd                       \
63         Managed.Windows.Forms           \
64         Microsoft.VisualBasic           \
65         System.Design                   \
66         PEAPI                           \
67         Npgsql                          \
68         ICSharpCode.SharpZipLib         \
69         ByteFX.Data                     \
70         Commons.Xml.Relaxng             \
71         Novell.Directory.Ldap           \
72         Mono.Security.Win32             \
73         System.DirectoryServices        \
74         System.Messaging                \
75         System.ServiceProcess           \
76         System.Drawing.Design           \
77         Mono.Http                       \
78         Microsoft.Vsa                   \
79         Mono.Cairo                      \
80         IBM.Data.DB2                    \
81         Microsoft.JScript               \
82         FirebirdSql.Data.Firebird
83
84 net_2_0_ONLY_SUBDIRS := \
85         Microsoft.Build.Framework       \
86         Microsoft.Build.Utilities       \
87         Microsoft.Build.Engine          \
88         Microsoft.Build.Tasks
89
90 net_2_0_SUBDIRS := $(default_SUBDIRS) $(net_2_0_ONLY_SUBDIRS)
91
92 include ../build/rules.make
93
94 SUBDIRS = $(default_SUBDIRS)
95
96 # These libraries below are either unimplemented or don't compile, but
97 # I wrote makefiles for them.
98
99 BROKEN_SUBDIRS = \
100         Custommarshalers                \
101         Mono.Globalization
102
103 DIST_ONLY_SUBDIRS = \
104         $(net_2_0_ONLY_SUBDIRS) \
105         $(BROKEN_SUBDIRS)
106
107 # No new makefiles for: System.Messaging, System.Web.Mobile,
108 # System.ServiceProcess
109
110 DISTFILES = \
111         ecma.pub                \
112         mono.pub                \
113         msfinal.pub             \
114         mono.snk                \
115         LICENSE                 \
116         README                  \
117         doc/API-notes           \
118         doc/NUnitGuidelines     \
119         doc/TemplateTest.cs     \
120         notes/BitVecto32.txt    \
121         $(monolite_files)
122
123 .PHONY: all-local $(STD_TARGETS:=-local)
124 all-local $(STD_TARGETS:=-local):
125         @:
126
127 basic_files = mcs.exe mscorlib.dll System.dll System.Xml.dll
128 monolite_files = $(basic_files:%=lib/monolite/%)
129
130 DIST_PROFILE_DIRS = basic net_1_1_bootstrap default net_2_0_bootstrap net_2_0
131
132 lib/monolite:
133         $(MKINSTALLDIRS) $@
134
135 $(monolite_files): lib/monolite/%: lib/basic/% lib/monolite
136         cp -p $< $@
137
138 $(basic_files:%=lib/basic/%):
139         cd $(topdir) && $(MAKE) profile-do--basic--all
140
141 dist-default: $(monolite_files)
142 dist-local: dist-default
143         -$(MKINSTALLDIRS) $(DIST_PROFILE_DIRS:%=$(distdir)/lib/%)