Implement MachineKey.Protect and MachineKey.Unprotect
[mono.git] / mcs / class / System.Core / Makefile
1 thisdir = class/System.Core
2 SUBDIRS = 
3 include ../../build/rules.make
4
5 LIBRARY = System.Core.dll
6
7 LIB_MCS_FLAGS = -d:INSIDE_SYSCORE -d:LIBC /r:System.dll -unsafe
8
9 ifneq (2.1, $(FRAMEWORK_VERSION))
10 LIB_MCS_FLAGS += -d:NET_3_5 -nowarn:1720
11 endif
12
13 MOBILE_DYNAMIC := $(filter monodroid xammac mobile, $(PROFILE))
14 MOBILE_STATIC := $(filter mobile_static monotouch monotouch_runtime, $(PROFILE))
15
16 ifdef MOBILE_DYNAMIC
17 LIB_MCS_FLAGS += -d:FEATURE_CORE_DLR,FEATURE_REFEMIT
18 endif
19
20 system_core_plain_libdir = $(the_libdir_base)plaincore
21
22 ifdef MOBILE_STATIC
23 extra_test_flags := -exclude:NotWorkingInterpreter
24 system_core_library_deps = $(the_libdir_base)Mono.Dynamic.Interpreter.dll $(system_core_plain_libdir)/System.Core.dll
25 LIB_MCS_FLAGS += -d:FEATURE_CORE_DLR
26
27 ifneq (plaincore/,$(intermediate))
28 LIB_MCS_FLAGS += -d:MONO_INTERPRETER -r:Mono.Dynamic.Interpreter.dll
29 endif
30
31 endif
32
33 ifeq (monotouch_runtime, $(PROFILE))
34 LIB_MCS_FLAGS += -d:FULL_AOT_RUNTIME
35 endif
36
37 ifeq (4, $(FRAMEWORK_VERSION_MAJOR))
38 LIB_MCS_FLAGS += -d:FEATURE_CORE_DLR,FEATURE_REFEMIT,FEATURE_PDBEMIT
39 endif
40
41 ifneq (basic, $(PROFILE))
42 CLR_PROFILE := $(filter 2.0 4.0 4.5, $(FRAMEWORK_VERSION))
43 endif
44
45 ifdef CLR_PROFILE
46 LIB_MCS_FLAGS += -r:Mono.Posix.dll
47 endif
48
49 TEST_MCS_FLAGS = $(LIB_MCS_FLAGS)
50
51 include ../../build/library.make
52
53 $(the_libdir_base)System.Core.dll: $(system_core_library_deps)
54
55 .NOTPARALLEL: $(system_core_plain_libdir)/System.Core.dll $(the_libdir_base)Mono.Dynamic.Interpreter.dll
56
57 ifneq (plaincore/,$(intermediate))
58 $(system_core_plain_libdir)/System.Core.dll:
59         $(MAKE) intermediate=plaincore/ $(system_core_plain_libdir)/System.Core.dll
60 endif
61
62 $(the_libdir_base)Mono.Dynamic.Interpreter.dll:
63         (cd ../Mono.Dynamic.Interpreter; $(MAKE))
64
65 TEST_HARNESS_EXCLUDES += $(extra_test_flags)
66
67 CLEAN_FILES = $(system_core_plain_libdir)/System.Core.dll
68
69 ifndef intermediate
70 ifneq ($(PROFILE),basic)
71 csproj-local:
72         $(MAKE) csproj-local intermediate=plaincore/
73 endif
74 endif
75
76 #
77 # Android TimeZoneInfo testing....
78 #
79
80 tzi.exe: ../corlib/System/AndroidPlatform.cs $(wildcard System/TimeZone*.cs) ../../build/common/Consts.cs ../Mono.Options/Mono.Options/Options.cs
81         mcs /debug+ /out:$@ /unsafe "/d:INSIDE_CORLIB;MONODROID;NET_4_0;LIBC;SELF_TEST" $^
82
83 android-pull-tzdb:
84         mkdir -p android/tzdb/usr/share/zoneinfo
85         mkdir -p android/tzdb/misc/zoneinfo/zoneinfo
86         android_root=`adb shell echo '$$ANDROID_ROOT' | tr -d "\r"` ; \
87         android_data=`adb shell echo '$$ANDROID_DATA' | tr -d "\r"` ; \
88         adb $(ADB_TARGET) pull $$android_root/usr/share/zoneinfo    android/tzdb/usr/share/zoneinfo ; \
89         adb $(ADB_TARGET) pull $$android_data/misc/zoneinfo/tzdata  android/tzdb/misc/zoneinfo
90         mkdir -p android/tzdb/
91
92 android-dump-tzdata: tzi.exe android-pull-tzdb
93         __XA_OVERRIDE_TIMEZONE_ID__=America/New_York ANDROID_ROOT=`pwd` ANDROID_DATA=`pwd` mono --debug tzi.exe -o android/tzdata