Add new profile for monodroid tools (#5699)
[mono.git] / mcs / class / Makefile
1 thisdir = class
2
3 pcl_facade_dirs := Facades
4
5 -include ../build/config.make
6
7 ifdef MCS_MODE
8 MCS_MODE_dirs := Mono.Cecil.Mdb
9 endif
10
11 # The minimal set of csc dependencies
12 basic_SUBDIRS := \
13         corlib \
14         Mono.Security \
15         System \
16         System.XML \
17         System.Core \
18         System.ComponentModel.Composition.4.5 \
19         System.Numerics \
20         System.Xml.Linq \
21         Mono.Cecil \
22         $(MCS_MODE_dirs) \
23         ../tools/cil-stringreplacer
24
25 build_SUBDIRS :=  \
26         corlib \
27         Mono.Security \
28         System \
29         System.XML \
30         Mono.Posix \
31         System.Core \
32         System.ComponentModel.Composition.4.5 \
33         System.Numerics \
34         System.Xml.Linq \
35         System.IO.Compression \
36         System.Drawing                  \
37         Mono.Cecil \
38         $(MCS_MODE_dirs) \
39         Mono.CompilerServices.SymbolWriter      \
40         PEAPI \
41         ../tools/cil-stringreplacer
42
43 ifdef MCS_MODE
44 basic_PARALLEL_SUBDIRS := ../mcs
45 build_PARALLEL_SUBDIRS := ../mcs
46 else
47 basic_PARALLEL_SUBDIRS := $(pcl_facade_dirs)
48 build_PARALLEL_SUBDIRS := $(pcl_facade_dirs)
49 endif
50
51 mobile_common_dirs := \
52         corlib  \
53         Mono.Security \
54         System  \
55         System.Core     \
56         System.Security \
57         System.XML      \
58         I18N            \
59         System.ServiceModel.Internals   \
60         System.Runtime.Serialization    \
61         System.Xml.Linq \
62         System.IdentityModel            \
63         System.ServiceModel     \
64         System.ServiceModel.Web \
65         System.Json     \
66         System.Web.Services     \
67         Mono.Data.Tds   \
68         System.Transactions     \
69         System.Numerics \
70         System.Numerics.Vectors         \
71         System.Data     \
72         Mono.Data.Sqlite        \
73         System.Data.Services.Client \
74         System.IO.Compression \
75         System.IO.Compression.FileSystem \
76         System.ComponentModel.DataAnnotations \
77         System.ComponentModel.Composition.4.5 \
78         System.Net \
79         System.Net.Http \
80         System.Windows \
81         System.Xml.Serialization \
82         Mono.CSharp     \
83         Microsoft.CSharp \
84         System.Reflection.Context       \
85         System.Net.Http.WinHttpHandler
86
87 testing_aot_full_dirs := \
88         $(mobile_common_dirs)   \
89         Mono.Simd                       \
90         $(pcl_facade_dirs)
91
92 testing_aot_hybrid_dirs := \
93         $(mobile_common_dirs)   \
94         Mono.Simd                       \
95         $(pcl_facade_dirs)
96
97 xammac_dirs := \
98         $(mobile_common_dirs)   \
99         Mono.CompilerServices.SymbolWriter      \
100         $(pcl_facade_dirs)
101
102 monodroid_dirs := \
103         $(mobile_common_dirs)   \
104         Mono.CompilerServices.SymbolWriter      \
105         Mono.Btls.Interface     \
106         Mono.Posix      \
107         $(pcl_facade_dirs)
108
109 monodroid_tools_dirs := \
110         Mono.Cecil      \
111         ICSharpCode.SharpZipLib \
112         monodoc
113
114 monotouch_dirs := \
115         $(mobile_common_dirs)   \
116         Mono.Simd                       \
117         $(pcl_facade_dirs)
118
119 monotouch_watch_dirs := $(filter-out Mono.Security Mono.Data.Tds,$(monotouch_dirs))
120 monotouch_tv_dirs   := $(monotouch_dirs)
121
122 monotouch_runtime_dirs := \
123         corlib \
124         Mono.Security \
125         System \
126         System.Core \
127         System.XML \
128         Mono.CSharp
129
130 monotouch_watch_runtime_dirs := $(filter-out Mono.Security Mono.Data.Tds,$(monotouch_runtime_dirs))
131 monotouch_tv_runtime_dirs := $(monotouch_runtime_dirs)
132
133 winaot_dirs := \
134         $(mobile_common_dirs)   \
135         System.Drawing                  \
136         $(pcl_facade_dirs)
137
138 unreal_dirs := \
139         $(mobile_common_dirs)   \
140         System.Drawing                  \
141         $(pcl_facade_dirs)
142
143 xammac_4_5_dirs := \
144         corlib  \
145         Mono.Security \
146         System  \
147         Mono.Posix                      \
148         System.Core     \
149         System.Security                 \
150         System.XML      \
151         I18N            \
152         System.ServiceModel.Internals   \
153         SMDiagnostics   \
154         System.Numerics \
155         System.Numerics.Vectors         \
156         Mono.Data.Tds   \
157         System.Transactions     \
158         System.EnterpriseServices       \
159         System.Data     \
160         System.Runtime.Serialization    \
161         System.Xml.Linq \
162         Mono.Data.Sqlite        \
163         System.Runtime.Serialization.Formatters.Soap \
164         System.ComponentModel.DataAnnotations \
165         System.IdentityModel            \
166         System.IdentityModel.Selectors  \
167         Mono.Messaging                  \
168         System.Configuration.Install    \
169         System.Messaging                \
170         System.Web.Services \
171         System.ServiceModel     \
172         System.ServiceModel.Web \
173         System.Json     \
174         System.Data.Services.Client \
175         System.IO.Compression \
176         System.IO.Compression.FileSystem \
177         System.ComponentModel.Composition.4.5 \
178         System.Net \
179         System.Windows \
180         System.Xml.Serialization \
181         Mono.CSharp     \
182         Microsoft.CSharp \
183         Mono.CompilerServices.SymbolWriter      \
184         System.Data.Linq                \
185         System.Net.Http \
186         System.Net.Http.WebRequest \
187         System.Reflection.Context       \
188         System.Net.Http.WinHttpHandler  \
189         $(pcl_facade_dirs)
190
191 net_4_x_dirs := \
192         corlib                          \
193         Mono.Security \
194         System                          \
195         System.XML                      \
196         Mono.CompilerServices.SymbolWriter \
197         Mono.Posix                      \
198         System.Core                     \
199         System.Security                 \
200         System.Configuration    \
201         System.Drawing                  \
202         System.IO.Compression           \
203         System.IO.Compression.FileSystem \
204         System.Transactions             \
205         System.EnterpriseServices       \
206         Mono.Data.Tds                   \
207         System.Numerics         \
208         System.Numerics.Vectors         \
209         System.Data                     \
210         System.ComponentModel.DataAnnotations   \
211         Accessibility                   \
212         Mono.WebBrowser                 \
213         System.Runtime.Serialization.Formatters.Soap \
214         System.Windows.Forms            \
215         Mono.Data.Sqlite                \
216         System.Web.ApplicationServices  \
217         Novell.Directory.Ldap           \
218         System.DirectoryServices        \
219         System.Web                      \
220         System.Web.Services             \
221         System.Design                   \
222         System.Runtime.Remoting         \
223         System.Configuration.Install    \
224         System.Management               \
225         System.Data.OracleClient        \
226         Cscompmgd                       \
227         Commons.Xml.Relaxng             \
228         Mono.Messaging                  \
229         System.Messaging                \
230         System.ServiceProcess           \
231         System.Drawing.Design           \
232         ICSharpCode.SharpZipLib         \
233         IBM.Data.DB2                    \
234         CustomMarshalers                \
235         SystemWebTestShim                       \
236         System.ServiceModel.Internals   \
237         SMDiagnostics   \
238         System.Runtime.Serialization    \
239         System.Xml.Linq                 \
240         System.Data.Linq                \
241         System.Web.Abstractions         \
242         System.Web.Routing              \
243         System.Runtime.DurableInstancing \
244         System.IdentityModel            \
245         System.IdentityModel.Selectors  \
246         System.ServiceModel             \
247         System.Web.Extensions           \
248         System.Web.Extensions.Design    \
249         System.Web.DynamicData          \
250         Mono.CSharp                     \
251         System.Net                      \
252         System.Json             \
253         Microsoft.CSharp        \
254         System.Xaml \
255         WindowsBase \
256         System.ServiceModel.Activation \
257         System.ServiceModel.Routing \
258         System.ServiceModel.Discovery \
259         System.Runtime.Caching \
260         Microsoft.Web.Infrastructure \
261         System.ServiceModel.Web \
262         System.Net.Http \
263         System.Net.Http.WebRequest \
264         System.Web.Razor \
265         System.Web.WebPages.Deployment \
266         System.Web.WebPages \
267         System.Web.WebPages.Razor \
268         System.Web.Mvc3 \
269         System.Net.Http.Formatting \
270         System.Web.Http \
271         System.Web.Http.SelfHost \
272         System.Web.Http.WebHost
273
274 # These are the subdirs which depends on libs in net_4_x_dirs
275 # or have proper dependencies between each other
276 net_4_x_parallel_dirs := \
277         PEAPI                           \
278         I18N                            \
279         Mono.Btls.Interface             \
280         Mono.Http                       \
281         Mono.Cairo                      \
282         Mono.Cecil                      \
283         Mono.Cecil.Mdb                  \
284         Mono.Debugger.Soft              \
285         Mono.C5                         \
286         Mono.Management                 \
287         Mono.Options                    \
288         Mono.Simd                       \
289         Mono.Tasklets                   \
290         Mono.CodeContracts \
291         Mono.Parallel \
292         Mono.Security.Win32             \
293         Mono.Messaging.RabbitMQ         \
294         System.Dynamic                  \
295         System.Windows.Forms.DataVisualization  \
296         System.Reactive.Interfaces \
297         System.Reactive.Core \
298         System.Reactive.Linq \
299         System.Reactive.PlatformServices \
300         System.Reactive.Providers \
301         System.Reactive.Runtime.Remoting \
302         System.Reactive.Windows.Forms \
303         System.Reactive.Windows.Threading \
304         System.Reactive.Observable.Aliases \
305         System.Reactive.Experimental \
306         System.Reactive.Debugger \
307         System.Data.Services.Client     \
308         System.Data.Services \
309         System.Data.Entity \
310         System.Data.DataSetExtensions   \
311         System.Json.Microsoft \
312         System.Threading.Tasks.Dataflow \
313         System.ComponentModel.Composition.4.5 \
314         System.Windows \
315         System.Xml.Serialization \
316         System.DirectoryServices.Protocols      \
317         RabbitMQ.Client                 \
318         Microsoft.VisualC               \
319         WebMatrix.Data \
320         monodoc \
321         System.Deployment \
322         System.Web.Mobile \
323         System.Web.RegularExpressions \
324         System.Workflow.Activities \
325         System.Workflow.ComponentModel \
326         System.Workflow.Runtime \
327         System.Reflection.Context \
328         Mono.Profiler.Log       \
329         legacy/Mono.Cecil \
330         $(pcl_facade_dirs)
331
332 xbuild_2_0_dirs := \
333         Microsoft.Build.Framework       \
334         Microsoft.Build.Utilities       \
335         Microsoft.Build.Engine          \
336         Mono.XBuild.Tasks               \
337         Microsoft.Build.Tasks
338
339 xbuild_4_0_dirs := \
340         $(xbuild_2_0_dirs)      \
341         Microsoft.Build
342
343 orbis_dirs := \
344         $(filter-out Microsoft.CSharp Mono.CSharp Mono.Data.Sqlite,$(mobile_common_dirs))       \
345         System.Drawing          \
346         $(pcl_facade_dirs)
347
348 monodroid_SUBDIRS := $(monodroid_dirs)
349 monodroid_tools_SUBDIRS := $(monodroid_tools_dirs)
350 monotouch_SUBDIRS := $(monotouch_dirs)
351 monotouch_watch_SUBDIRS := $(monotouch_watch_dirs)
352 monotouch_tv_SUBDIRS    := $(monotouch_tv_dirs)
353 monotouch_runtime_SUBDIRS := $(monotouch_runtime_dirs)
354 monotouch_watch_runtime_SUBDIRS := $(monotouch_watch_runtime_dirs)
355 monotouch_tv_runtime_SUBDIRS := $(monotouch_tv_runtime_dirs)
356 testing_aot_full_SUBDIRS := $(testing_aot_full_dirs)
357 testing_aot_hybrid_SUBDIRS := $(testing_aot_hybrid_dirs)
358 xammac_SUBDIRS := $(xammac_dirs)
359 xammac_net_4_5_SUBDIRS := $(xammac_4_5_dirs)
360 binary_reference_assemblies_SUBDIRS := reference-assemblies
361 net_4_x_SUBDIRS := $(net_4_x_dirs) $(xbuild_4_0_dirs)
362 net_4_x_PARALLEL_SUBDIRS := $(net_4_x_parallel_dirs)
363 xbuild_12_SUBDIRS := $(xbuild_4_0_dirs)
364 xbuild_14_SUBDIRS := $(xbuild_4_0_dirs) Microsoft.NuGet.Build.Tasks
365 winaot_SUBDIRS := $(winaot_dirs)
366 orbis_SUBDIRS := $(orbis_dirs)
367 unreal_SUBDIRS := $(unreal_dirs)
368
369 include ../build/rules.make
370
371 SUBDIRS = $(testing_aot_full_dirs) $(testing_aot_hybrid_dirs) $(monotouch_dirs) $(monodroid_dirs) $(monodroid_tools_dirs) $(xammac_dirs) $(net_4_x_dirs) $(net_4_x_parallel_dirs) $(xammac_net_4_5_SUBDIRS) $(unreal_dirs)
372
373 DIST_ONLY_SUBDIRS = dlr aot-compiler reference-assemblies $(xbuild_4_0_dirs) Microsoft.NuGet.Build.Tasks
374
375 # No new makefiles for: System.Messaging, System.Web.Mobile,
376 # System.ServiceProcess
377
378 DISTFILES = \
379         ecma.pub                \
380         winfx.pub               \
381         winfx3.pub              \
382         mono.pub                \
383         msfinal.pub             \
384         silverlight.pub         \
385         reactive.pub            \
386         mono.snk                \
387         Open.snk                \
388         LICENSE                 \
389         README                  \
390         doc/API-notes           \
391         doc/NUnitGuidelines     \
392         doc/TemplateTest.cs     \
393         notes/BitVecto32.txt    \
394         MicrosoftAjaxLibrary/License.htm        \
395         test-helpers/NetworkHelpers.cs  \
396         test-helpers/SocketResponder.cs \
397         $(foreach HOST_PLATFORM,darwin linux win32,lib/$(monolite_dir)/mcs.exe $(monolite_files))
398
399 .PHONY: all-local $(STD_TARGETS:=-local)
400 all-local $(STD_TARGETS:=-local):
401         @:
402
403 all-local-aot:
404
405 monolite_dir = monolite-$(HOST_PLATFORM)/$(MONO_CORLIB_VERSION)
406
407 # Files needed to bootstrap C# compiler
408 build_files = mscorlib.dll System.dll System.Xml.dll Mono.Security.dll System.Core.dll System.Security.dll System.Configuration.dll \
409         System.Numerics.dll System.Xml.Linq.dll \
410         Facades/System.Collections.Concurrent.dll Facades/System.Linq.dll Facades/System.Runtime.dll Facades/System.Collections.dll     \
411         Facades/System.Reflection.Extensions.dll Facades/System.Text.Encoding.Extensions.dll Facades/System.Diagnostics.Debug.dll \
412         Facades/System.Reflection.Primitives.dll Facades/System.Text.Encoding.dll Facades/System.Diagnostics.Tools.dll Facades/System.Reflection.dll \
413         Facades/System.Threading.Tasks.Parallel.dll Facades/System.Dynamic.Runtime.dll Facades/System.Resources.ResourceManager.dll \
414         Facades/System.Threading.Tasks.dll Facades/System.Globalization.dll Facades/System.Runtime.Extensions.dll Facades/System.Threading.dll \
415         Facades/System.IO.dll Facades/System.Runtime.InteropServices.dll Facades/System.Xml.ReaderWriter.dll Facades/System.Linq.Expressions.dll \
416         Facades/System.Runtime.Numerics.dll Facades/System.Xml.XDocument.dll Facades/System.IO.FileSystem.Primitives.dll Facades/System.IO.FileSystem.dll \
417         Facades/System.Diagnostics.FileVersionInfo.dll Facades/System.Security.Cryptography.Primitives.dll Facades/System.Security.Cryptography.Algorithms.dll \
418         Facades/System.ValueTuple.dll Facades/System.Text.Encoding.CodePages.dll
419
420 monolite_files = $(build_files:%=lib/$(monolite_dir)/%)
421
422 lib/$(monolite_dir):
423 lib/$(monolite_dir)/Facades:
424         $(MKINSTALLDIRS) $@
425
426 $(monolite_files): | lib/$(monolite_dir)
427 $(monolite_files): | lib/$(monolite_dir)/Facades
428 $(monolite_files): lib/$(monolite_dir)/%: lib/build-$(HOST_PLATFORM)/%
429         cp -p $< $@
430
431 lib/$(monolite_dir)/mcs.exe:
432         $(MAKE) -C ../mcs PROFILE=build
433         cp -p lib/build-$(HOST_PLATFORM)/mcs.exe lib/$(monolite_dir)
434
435 $(build_files:%=lib/build-$(HOST_PLATFORM)/%):
436         cd $(topdir) && $(MAKE) profile-do--build--all NO_DIR_CHECK=1 SKIP_AOT=1
437
438 dist-monolite: $(monolite_files) lib/$(monolite_dir)/mcs.exe
439
440 dist-monolite-all-platforms:
441         $(MAKE) dist-monolite HOST_PLATFORM=darwin
442         $(MAKE) dist-monolite HOST_PLATFORM=linux
443         $(MAKE) dist-monolite HOST_PLATFORM=win32
444
445 package-monolite-latest:
446         MONOLITE=monolite-$(HOST_PLATFORM)-$(MONO_CORLIB_VERSION)-latest; \
447         $(MAKE) dist-monolite monolite_dir=$$MONOLITE; \
448         tar zcvpf $$MONOLITE.tar.gz --directory=lib $$MONOLITE/
449
450 package-monolite-latest-all-platforms:
451         $(MAKE) package-monolite-latest HOST_PLATFORM=darwin
452         $(MAKE) package-monolite-latest HOST_PLATFORM=linux
453         $(MAKE) package-monolite-latest HOST_PLATFORM=win32
454
455 monolite_url = https://download.mono-project.com/monolite/monolite-$(BUILD_PLATFORM)-$(MONO_CORLIB_VERSION)-latest.tar.gz
456
457 get-monolite-latest:
458         -rm -fr lib/monolite-$(BUILD_PLATFORM)/$(MONO_CORLIB_VERSION)
459         -mkdir -p lib/monolite-$(BUILD_PLATFORM)
460         cd lib && { (wget -O- $(monolite_url) || curl -L $(monolite_url)) | gzip -d | tar xf - ; }
461         cd lib && mv -f monolite-$(BUILD_PLATFORM)-$(MONO_CORLIB_VERSION)-latest monolite-$(BUILD_PLATFORM)/$(MONO_CORLIB_VERSION)
462
463 dist-default: dist-monolite-all-platforms
464
465 dist-local: dist-default
466
467 csproj-local:
468
469 do-clean:
470         $(RM) -rf $(topdir)/class/lib/$(PROFILE)