Remove the Legacy TLS Provider. (#17391)
[mono-project.git] / sdks / android / Makefile
blobfeef9a1ce6f0915c04a237d303496ddae6f59416
1 TOP=$(realpath $(CURDIR)/../..)
2 -include $(TOP)/sdks/Make.config
3 include $(TOP)/sdks/versions.mk
4 include $(TOP)/sdks/paths.mk
6 UNAME=$(shell uname)
8 SDK_DIR = $(ANDROID_TOOLCHAIN_DIR)/sdk
9 NDK_DIR = $(ANDROID_TOOLCHAIN_DIR)/ndk
11 ADB = $(SDK_DIR)/platform-tools/adb
13 PACKAGE = org.mono.android.AndroidTestRunner
14 RUNNER = org.mono.android.AndroidRunner
15 ACTIVITY = org.mono.android.AndroidActivity
17 CONFIGURATION?=release
19 APK_DIR=apk
21 DEBUGGER_RUNNER_EXE = app/assets/asm/dtest-app.exe
22 DEBUGGER_RUNNER_PDB = app/assets/asm/dtest-app.pdb
24 CHECKS=$(subst mscorlib,corlib,$(patsubst $(TOP)/sdks/out/android-bcl/monodroid/tests/monodroid_%_test.dll,%,$(wildcard $(TOP)/sdks/out/android-bcl/monodroid/tests/monodroid_*_test.dll)))
26 .PHONY: all
27 all: .stamp-package
29 #This is hilarious, but we can't clean unless we got the 2 property files around
30 .PHONY: clean
31 clean:
32 ./gradlew clean
34 .PHONY: check
35 check: $(patsubst %,check-%,$(CHECKS))
37 ## Helper targets
39 .PHONY: undeploy
40 undeploy:
41 $(ADB) uninstall $(PACKAGE)
43 .PHONY: kill
44 kill:
45 $(ADB) shell am force-stop $(PACKAGE)
47 .PHONY: logcat
48 logcat:
49 $(ADB) logcat
51 .PHONY: shell
52 shell:
53 $(ADB) shell
55 ## Accept Android License
57 .PHONY: accept-android-license
58 accept-android-license:
59 yes | $(SDK_DIR)/tools/bin/sdkmanager --licenses
61 ## Check targets
63 local.properties:
64 echo "sdk.dir=$(SDK_DIR)" > $@
65 echo "ndk.dir=$(NDK_DIR)" >> $@
67 ## Directories
69 app/assets/asm app/src/main/jniLibs/armeabi-v7a app/src/main/jniLibs/arm64-v8a app/src/main/jniLibs/x86 app/src/main/jniLibs/x86_64 app/assets/armeabi-v7a app/assets/arm64-v8a app/assets/x86 app/assets/x86_64:
70 mkdir -p $@
72 ## Package the monosgen-2.0, MonoPosixHelper and mono-native libraries
74 MONO_LIBS= \
75 libmonosgen-2.0.so \
76 libMonoPosixHelper.so \
77 libmono-btls-shared.so \
78 libmono-native.so
80 $(patsubst %,app/src/main/jniLibs/armeabi-v7a/%,$(MONO_LIBS)): app/src/main/jniLibs/armeabi-v7a/%: $(TOP)/sdks/out/android-armeabi-v7a-$(CONFIGURATION)/lib/% | app/src/main/jniLibs/armeabi-v7a
81 cp $< $@
83 .stamp-package: $(patsubst %,app/src/main/jniLibs/armeabi-v7a/%,$(MONO_LIBS))
85 $(patsubst %,app/src/main/jniLibs/arm64-v8a/%,$(MONO_LIBS)): app/src/main/jniLibs/arm64-v8a/%: $(TOP)/sdks/out/android-arm64-v8a-$(CONFIGURATION)/lib/% | app/src/main/jniLibs/arm64-v8a
86 cp $< $@
88 .stamp-package: $(patsubst %,app/src/main/jniLibs/arm64-v8a/%,$(MONO_LIBS))
90 $(patsubst %,app/src/main/jniLibs/x86/%,$(MONO_LIBS)): app/src/main/jniLibs/x86/%: $(TOP)/sdks/out/android-x86-$(CONFIGURATION)/lib/% | app/src/main/jniLibs/x86
91 cp $< $@
93 .stamp-package: $(patsubst %,app/src/main/jniLibs/x86/%,$(MONO_LIBS))
95 $(patsubst %,app/src/main/jniLibs/x86_64/%,$(MONO_LIBS)): app/src/main/jniLibs/x86_64/%: $(TOP)/sdks/out/android-x86_64-$(CONFIGURATION)/lib/% | app/src/main/jniLibs/x86_64
96 cp $< $@
98 .stamp-package: $(patsubst %,app/src/main/jniLibs/x86_64/%,$(MONO_LIBS))
100 ## Package Mono.Android.dll
102 app/assets/asm/Mono.Android.dll: managed/fake-monodroid.cs | app/assets/asm
103 csc /nostdlib /noconfig /langversion:latest /t:library /out:$@ $(patsubst %,-r:$(TOP)/sdks/out/android-bcl/monodroid/%.dll,mscorlib System System.Core) $<
105 .stamp-package: app/assets/asm/Mono.Android.dll
107 ## Package the BCL
109 BCL=$(patsubst $(TOP)/sdks/out/android-bcl/monodroid/%,%,$(shell find $(TOP)/sdks/out/android-bcl/monodroid -type f))
111 $(patsubst %,app/assets/asm/%,$(BCL)): app/assets/asm/%: $(TOP)/sdks/out/android-bcl/monodroid/% | app/assets/asm
112 cp -R $(TOP)/sdks/out/android-bcl/monodroid/* app/assets/asm
114 .stamp-package: $(patsubst %,app/assets/asm/%,$(BCL))
116 ## Package LLDB
118 lldb-mono-0.1:
119 wget --no-verbose -O - 'https://github.com/mono/lldb-binaries/releases/download/v0.1/lldb-mono-0.1.tar.gz' | tar xvfz -
121 #FIXME: armeabi-v7a in place of armeabi
122 lldb-mono-0.1/android/armeabi/lldb-server: | lldb-mono-0.1
124 app/assets/armeabi-v7a/lldb-server: lldb-mono-0.1/android/armeabi/lldb-server | app/assets/armeabi-v7a
125 cp $< $@
126 chmod 777 $@
128 .stamp-package: app/assets/armeabi-v7a/lldb-server
130 lldb-mono-0.1/android/arm64-v8a/lldb-server: | lldb-mono-0.1
132 app/assets/arm64-v8a/lldb-server: lldb-mono-0.1/android/arm64-v8a/lldb-server | app/assets/arm64-v8a
133 cp $< $@
134 chmod 777 $@
136 .stamp-package: app/assets/arm64-v8a/lldb-server
138 lldb-mono-0.1/android/x86/lldb-server: | lldb-mono-0.1
140 app/assets/x86/lldb-server: lldb-mono-0.1/android/x86/lldb-server | app/assets/x86
141 cp $< $@
142 chmod 777 $@
144 .stamp-package: app/assets/x86/lldb-server
146 lldb-mono-0.1/android/x86_64/lldb-server: | lldb-mono-0.1
148 app/assets/x86_64/lldb-server: lldb-mono-0.1/android/x86_64/lldb-server | app/assets/x86_64
149 cp $< $@
150 chmod 777 $@
152 .stamp-package: app/assets/x86_64/lldb-server
154 ## Run Mono.Debugger.Soft, Mono.Profiler.Log and BCL tests
156 .stamp-package:
157 touch $@
159 .stamp-install: .stamp-package local.properties app/src/main/c/runtime-bootstrap.c app/src/main/java/org/mono/android/AndroidRunner.java
160 ./gradlew uninstallAll assembleDebug installDebug
161 touch $@
163 .PHONY: check-Mono.Debugger.Soft
164 check-Mono.Debugger.Soft: .stamp-install
165 PATH="$$PATH:$(dir $(ADB))" mono --debug $(TOP)/sdks/out/android-bcl/monodroid_tools/nunit-lite-console.exe \
166 -labels \
167 -exclude:NotOnMac,NotWorking,CAS,InetAccess,MobileNotWorking,AndroidNotWorking,LargeFileSupport,AndroidSdksNotWorking \
168 -remote:android:$(PACKAGE)/$(RUNNER) \
169 -result:TestResult-Mono.Debugger.Soft.xml \
170 -format:nunit2 \
171 $(if $(TESTNAME),-test:$(TESTNAME)) \
172 $(TOP)/sdks/out/android-bcl/monodroid_tools/tests/monodroid_tools_Mono.Debugger.Soft_test.dll
174 # TODO: profiler
175 # .PHONY: check-Mono.Profiler.Log
176 # check-Mono.Profiler.Log: .stamp-install
177 # PATH="$$PATH:$(dir $(ADB))" mono --debug $(TOP)/sdks/out/android-bcl/monodroid_tools/nunit-lite-console.exe \
178 # -labels \
179 # -exclude:NotOnMac,NotWorking,CAS,InetAccess,MobileNotWorking,AndroidNotWorking,AndroidSdksNotWorking \
180 # -remote:android:$(PACKAGE)/$(RUNNER) \
181 # -result:TestResult-Mono.Profiler.Log.xml \
182 # -format:nunit2 \
183 # $(if $(TESTNAME),-test:$(TESTNAME)) \
184 # $(TOP)/sdks/out/android-bcl/monodroid_tools/tests/monodroid_tools_Mono.Profiler.Log_test.dll
186 .PHONY: check-%
187 check-%: .stamp-install
188 PATH="$$PATH:$(dir $(ADB))" mono --debug $(TOP)/sdks/out/android-bcl/monodroid_tools/nunit-lite-console.exe \
189 -labels \
190 -exclude:NotOnMac,NotWorking,CAS,InetAccess,MobileNotWorking,AndroidNotWorking,LargeFileSupport,AndroidSdksNotWorking \
191 -android:$(PACKAGE)/$(RUNNER) \
192 -result:TestResult-$*.xml \
193 -format:nunit2 \
194 $(if $(TESTNAME),-test:$(TESTNAME)) \
195 $(TOP)/sdks/out/android-bcl/monodroid/tests/monodroid_$*_test.dll
197 attach-lldb:
198 PATH="$$PATH:$(dir $(ADB))" $(TOP)/sdks/android/lldb-android.sh "$(PACKAGE)"