1 TOP
=$(realpath
$(CURDIR
)/..
/..
)
2 -include $(TOP
)/sdks
/Make.config
3 include $(TOP
)/sdks
/versions.mk
4 include $(TOP
)/sdks
/paths.mk
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
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
)))
29 #This is hilarious, but we can't clean unless we got the 2 property files around
35 check: $(patsubst %,check-
%,$(CHECKS
))
41 $(ADB
) uninstall $(PACKAGE
)
45 $(ADB
) shell am force-stop
$(PACKAGE
)
55 ## Accept Android License
57 .PHONY
: accept-android-license
58 accept-android-license
:
59 yes |
$(SDK_DIR
)/tools
/bin
/sdkmanager
--licenses
64 echo
"sdk.dir=$(SDK_DIR)" > $@
65 echo
"ndk.dir=$(NDK_DIR)" >> $@
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
:
72 ## Package the monosgen-2.0, MonoPosixHelper and mono-native libraries
76 libMonoPosixHelper.so \
77 libmono-btls-shared.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
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
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
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
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
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
))
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
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
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
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
152 .stamp-package
: app
/assets
/x86_64
/lldb-server
154 ## Run Mono.Debugger.Soft, Mono.Profiler.Log and BCL tests
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
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 \
167 -exclude
:NotOnMac
,NotWorking
,CAS
,InetAccess
,MobileNotWorking
,AndroidNotWorking
,LargeFileSupport
,AndroidSdksNotWorking \
168 -remote
:android
:$(PACKAGE
)/$(RUNNER
) \
169 -result
:TestResult-Mono.Debugger.Soft.xml \
171 $(if
$(TESTNAME
),-test:$(TESTNAME
)) \
172 $(TOP
)/sdks
/out
/android-bcl
/monodroid_tools
/tests
/monodroid_tools_Mono.Debugger.Soft_test.dll
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 \
179 # -exclude:NotOnMac,NotWorking,CAS,InetAccess,MobileNotWorking,AndroidNotWorking,AndroidSdksNotWorking \
180 # -remote:android:$(PACKAGE)/$(RUNNER) \
181 # -result:TestResult-Mono.Profiler.Log.xml \
183 # $(if $(TESTNAME),-test:$(TESTNAME)) \
184 # $(TOP)/sdks/out/android-bcl/monodroid_tools/tests/monodroid_tools_Mono.Profiler.Log_test.dll
187 check-
%: .stamp-install
188 PATH
="$$PATH:$(dir $(ADB))" mono
--debug
$(TOP
)/sdks
/out
/android-bcl
/monodroid_tools
/nunit-lite-console.exe \
190 -exclude
:NotOnMac
,NotWorking
,CAS
,InetAccess
,MobileNotWorking
,AndroidNotWorking
,LargeFileSupport
,AndroidSdksNotWorking \
191 -android
:$(PACKAGE
)/$(RUNNER
) \
192 -result
:TestResult-
$*.xml \
194 $(if
$(TESTNAME
),-test:$(TESTNAME
)) \
195 $(TOP
)/sdks
/out
/android-bcl
/monodroid
/tests
/monodroid_
$*_test.dll
198 PATH
="$$PATH:$(dir $(ADB))" $(TOP
)/sdks
/android
/lldb-android.sh
"$(PACKAGE)"