Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 1 | # Sources and objects |
Tristan Matthews | ccf51e3 | 2013-07-18 14:40:51 -0400 | [diff] [blame] | 2 | |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 3 | export ANDROID_HOME=$(ANDROID_SDK) |
Tristan Matthews | 5bb1b5d | 2013-07-18 14:32:58 -0400 | [diff] [blame] | 4 | |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 5 | ARCH = $(ANDROID_ABI) |
Tristan Matthews | 322b9fd | 2013-07-18 15:55:43 -0400 | [diff] [blame] | 6 | |
Adrien Béraud | b00ed3f | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 7 | PSRC=ring-android |
| 8 | SRC=$(PSRC)/app/src/main |
Adrien Béraud | 7f97ca9 | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 9 | LIBRINGJNI_H=ring-daemon/src/dring/dring.h |
Adrien Béraud | b00ed3f | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 10 | LIBRINGJNI=$(SRC)/obj/local/${ANDROID_ABI}/libring.so |
Alexandre Lision | ec1f3ee | 2014-08-04 19:12:42 -0400 | [diff] [blame] | 11 | |
Adrien Béraud | b00ed3f | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 12 | JAVA_SOURCES=$(shell find $(SRC)/java/cx/ring/ -type f -name "*.java") |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 13 | |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 14 | ifneq ($(V),) |
Adrien Béraud | b00ed3f | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 15 | GRADLE_OPTS += -d |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 16 | VERBOSE = |
| 17 | GEN = |
| 18 | else |
| 19 | VERBOSE = @ |
| 20 | GEN = @echo "Generating" $@; |
| 21 | endif |
| 22 | |
| 23 | ifeq ($(RELEASE),1) |
Adrien Béraud | b00ed3f | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 24 | GRADLE_TARGET = assembleRelease |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 25 | RING_APK=$(SRC)/bin/Ring-release-unsigned.apk |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 26 | NDK_DEBUG=0 |
| 27 | else |
Adrien Béraud | b00ed3f | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 28 | GRADLE_TARGET = assembleDebug |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 29 | RING_APK=$(SRC)/bin/Ring-debug.apk |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 30 | NDK_DEBUG=1 |
| 31 | endif |
| 32 | |
Alexandre Lision | 7d5df5d | 2014-10-27 13:10:01 -0400 | [diff] [blame] | 33 | define build_apk |
| 34 | @echo |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 35 | @echo "=== Building $(RING_APK) for $(ARCH) ===" |
Alexandre Lision | 7d5df5d | 2014-10-27 13:10:01 -0400 | [diff] [blame] | 36 | @echo |
| 37 | date +"%Y-%m-%d" > $(SRC)/assets/builddate.txt |
| 38 | echo `id -u -n`@`hostname` > $(SRC)/assets/builder.txt |
| 39 | git rev-parse --short HEAD > $(SRC)/assets/revision.txt |
| 40 | ./gen-env.sh $(SRC) |
Adrien Béraud | b00ed3f | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 41 | # many times the gradlew script is not executable by default |
| 42 | $(VERBOSE)cd $(PSRC) && chmod +x ./gradlew && ./gradlew $(GRADLE_OPTS) $(GRADLE_TARGET) |
Alexandre Lision | 7d5df5d | 2014-10-27 13:10:01 -0400 | [diff] [blame] | 43 | endef |
| 44 | |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 45 | $(RING_APK): $(LIBRINGJNI) $(JAVA_SOURCES) |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 46 | @echo |
| 47 | @echo "=== Building $@ for $(ARCH) ===" |
| 48 | @echo |
| 49 | date +"%Y-%m-%d" > $(SRC)/assets/builddate.txt |
| 50 | echo `id -u -n`@`hostname` > $(SRC)/assets/builder.txt |
| 51 | git rev-parse --short HEAD > $(SRC)/assets/revision.txt |
Adrien Béraud | b00ed3f | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 52 | # many times the gradlew script is not executable by default |
| 53 | $(VERBOSE)cd $(PSRC) && chmod +x ./gradlew && ./gradlew $(GRADLE_OPTS) $(GRADLE_TARGET) |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 54 | |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 55 | $(LIBRINGJNI): $(LIBRINGJNI_H) |
| 56 | @if [ -z "$(RING_BUILD_DIR)" ]; then echo "RING_BUILD_DIR not defined" ; exit 1; fi |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 57 | @if [ -z "$(ANDROID_NDK)" ]; then echo "ANDROID_NDK not defined" ; exit 1; fi |
| 58 | @echo |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 59 | @echo "=== Building libringjni ===" |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 60 | @echo |
Adrien Béraud | 7f97ca9 | 2015-06-07 15:36:06 -0400 | [diff] [blame] | 61 | $(VERBOSE)if [ -z "$(RING_SRC_DIR)" ] ; then RING_SRC_DIR=./ring-daemon; fi ; \ |
Adrien Béraud | 87d878d | 2015-06-03 15:09:19 -0400 | [diff] [blame] | 62 | if [ -z "$(RING_CONTRIB)" ] ; then RING_CONTRIB="$$RING_SRC_DIR/contrib/$(TARGET_TUPLE)"; fi ; \ |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 63 | if [ `echo "$(RING_BUILD_DIR)" | head -c 1` != "/" ] ; then \ |
| 64 | RING_BUILD_DIR="../$(RING_BUILD_DIR)"; \ |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 65 | fi ; \ |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 66 | [ `echo "$$RING_CONTRIB" | head -c 1` != "/" ] && RING_CONTRIB="../$$RING_CONTRIB"; \ |
| 67 | [ `echo "$$RING_SRC_DIR" | head -c 1` != "/" ] && RING_SRC_DIR="../$$RING_SRC_DIR"; \ |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 68 | $(ANDROID_NDK)/ndk-build -C $(SRC) \ |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 69 | RING_SRC_DIR="$$RING_SRC_DIR" \ |
| 70 | RING_CONTRIB="$$RING_CONTRIB" \ |
| 71 | RING_BUILD_DIR="$$RING_BUILD_DIR" \ |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 72 | NDK_DEBUG=$(NDK_DEBUG) \ |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 73 | TARGET_CFLAGS="$$RING_EXTRA_CFLAGS" |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 74 | |
Alexandre Lision | 7d5df5d | 2014-10-27 13:10:01 -0400 | [diff] [blame] | 75 | apk: |
| 76 | $(call build_apk) |
| 77 | |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 78 | apkclean: |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 79 | rm -f $(RING_APK) |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 80 | |
| 81 | lightclean: |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 82 | cd $(SRC) && rm -rf libs/armeabi-v7a libs/x86 libs/mips obj bin $(RING_APK) |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 83 | |
| 84 | clean: lightclean |
Tristan Matthews | 1b5d132 | 2014-09-29 17:29:16 -0400 | [diff] [blame] | 85 | rm -rf $(SRC)/gen java-libs/*/gen java-libs/*/bin .sdk |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 86 | |
| 87 | jniclean: lightclean |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 88 | rm -f $(LIBRINGJNI) |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 89 | |
| 90 | distclean: clean jniclean |
| 91 | |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 92 | install: $(RING_APK) |
Adrien Béraud | 87d878d | 2015-06-03 15:09:19 -0400 | [diff] [blame] | 93 | @echo "=== Installing Ring on device ===" |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 94 | adb wait-for-device |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 95 | adb install -r $(RING_APK) |
Tristan Matthews | 5bb1b5d | 2013-07-18 14:32:58 -0400 | [diff] [blame] | 96 | |
Tristan Matthews | fdd94e5 | 2013-07-19 16:44:44 -0400 | [diff] [blame] | 97 | uninstall: |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 98 | adb wait-for-device |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 99 | adb uninstall cx.ring |
Tristan Matthews | fdd94e5 | 2013-07-19 16:44:44 -0400 | [diff] [blame] | 100 | |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 101 | run: |
Adrien Béraud | 87d878d | 2015-06-03 15:09:19 -0400 | [diff] [blame] | 102 | @echo "=== Running Ring on device ===" |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 103 | adb wait-for-device |
Adrien Béraud | 04d822c | 2015-04-02 17:44:36 -0400 | [diff] [blame] | 104 | adb shell am start -n cx.ring/cx.ring.client.HomeActivity |
Alexandre Lision | 43b9aeb | 2014-07-15 14:21:19 -0400 | [diff] [blame] | 105 | |
| 106 | build-and-run: install run |
| 107 | |
| 108 | apkclean-run: apkclean build-and-run |
| 109 | adb logcat -c |
| 110 | |
| 111 | distclean-run: distclean build-and-run |
| 112 | adb logcat -c |
| 113 | |
| 114 | vlc-sdk.7z: .sdk |
| 115 | 7z a $@ vlc-sdk/ |
| 116 | |
| 117 | .sdk: |
| 118 | mkdir -p vlc-sdk/libs |
| 119 | cd vlc-android; cp -r libs/* ../vlc-sdk/libs |
| 120 | mkdir -p vlc-sdk/src/org/videolan |
| 121 | cp -r vlc-android/src/org/videolan/libvlc vlc-sdk/src/org/videolan |
| 122 | touch $@ |
| 123 | |
| 124 | .PHONY: lightclean clean jniclean distclean distclean-run apkclean apkclean-run install run build-and-run |