blob: 86964b84804d629bab5b8a10c848889f65306a4c [file] [log] [blame]
Alexandre Lision43b9aeb2014-07-15 14:21:19 -04001# Sources and objects
Tristan Matthewsccf51e32013-07-18 14:40:51 -04002
Alexandre Lision43b9aeb2014-07-15 14:21:19 -04003export ANDROID_HOME=$(ANDROID_SDK)
Tristan Matthews5bb1b5d2013-07-18 14:32:58 -04004
Alexandre Lision43b9aeb2014-07-15 14:21:19 -04005ARCH = $(ANDROID_ABI)
Tristan Matthews322b9fd2013-07-18 15:55:43 -04006
Adrien Béraud04d822c2015-04-02 17:44:36 -04007SRC=ring-android
Adrien Béraud7f97ca92015-06-07 15:36:06 -04008LIBRINGJNI_H=ring-daemon/src/dring/dring.h
Adrien Béraud04d822c2015-04-02 17:44:36 -04009LIBRINGJNI=$(SRC)/obj/local/$(ARCH)/libring.so
Alexandre Lisionec1f3ee2014-08-04 19:12:42 -040010
Adrien Béraud87d878d2015-06-03 15:09:19 -040011JAVA_SOURCES=$(shell find $(SRC)/src/cx/ring/ -type f -name "*.java")
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040012
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040013ifneq ($(V),)
14ANT_OPTS += -v
15VERBOSE =
16GEN =
17else
18VERBOSE = @
19GEN = @echo "Generating" $@;
20endif
21
22ifeq ($(RELEASE),1)
23ANT_TARGET = release
Adrien Béraud04d822c2015-04-02 17:44:36 -040024RING_APK=$(SRC)/bin/Ring-release-unsigned.apk
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040025NDK_DEBUG=0
26else
27ANT_TARGET = debug
Adrien Béraud04d822c2015-04-02 17:44:36 -040028RING_APK=$(SRC)/bin/Ring-debug.apk
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040029NDK_DEBUG=1
30endif
31
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040032define build_apk
33 @echo
Adrien Béraud04d822c2015-04-02 17:44:36 -040034 @echo "=== Building $(RING_APK) for $(ARCH) ==="
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040035 @echo
36 date +"%Y-%m-%d" > $(SRC)/assets/builddate.txt
37 echo `id -u -n`@`hostname` > $(SRC)/assets/builder.txt
38 git rev-parse --short HEAD > $(SRC)/assets/revision.txt
39 ./gen-env.sh $(SRC)
40 $(VERBOSE)cd $(SRC) && ant $(ANT_OPTS) $(ANT_TARGET)
41endef
42
Adrien Béraud04d822c2015-04-02 17:44:36 -040043$(RING_APK): $(LIBRINGJNI) $(JAVA_SOURCES)
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040044 @echo
45 @echo "=== Building $@ for $(ARCH) ==="
46 @echo
47 date +"%Y-%m-%d" > $(SRC)/assets/builddate.txt
48 echo `id -u -n`@`hostname` > $(SRC)/assets/builder.txt
49 git rev-parse --short HEAD > $(SRC)/assets/revision.txt
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040050 $(VERBOSE)cd $(SRC) && ant $(ANT_OPTS) $(ANT_TARGET)
51
Adrien Béraud04d822c2015-04-02 17:44:36 -040052$(LIBRINGJNI): $(LIBRINGJNI_H)
53 @if [ -z "$(RING_BUILD_DIR)" ]; then echo "RING_BUILD_DIR not defined" ; exit 1; fi
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040054 @if [ -z "$(ANDROID_NDK)" ]; then echo "ANDROID_NDK not defined" ; exit 1; fi
55 @echo
Adrien Béraud04d822c2015-04-02 17:44:36 -040056 @echo "=== Building libringjni ==="
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040057 @echo
Adrien Béraud7f97ca92015-06-07 15:36:06 -040058 $(VERBOSE)if [ -z "$(RING_SRC_DIR)" ] ; then RING_SRC_DIR=./ring-daemon; fi ; \
Adrien Béraud87d878d2015-06-03 15:09:19 -040059 if [ -z "$(RING_CONTRIB)" ] ; then RING_CONTRIB="$$RING_SRC_DIR/contrib/$(TARGET_TUPLE)"; fi ; \
Adrien Béraud04d822c2015-04-02 17:44:36 -040060 if [ `echo "$(RING_BUILD_DIR)" | head -c 1` != "/" ] ; then \
61 RING_BUILD_DIR="../$(RING_BUILD_DIR)"; \
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040062 fi ; \
Adrien Béraud04d822c2015-04-02 17:44:36 -040063 [ `echo "$$RING_CONTRIB" | head -c 1` != "/" ] && RING_CONTRIB="../$$RING_CONTRIB"; \
64 [ `echo "$$RING_SRC_DIR" | head -c 1` != "/" ] && RING_SRC_DIR="../$$RING_SRC_DIR"; \
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040065 $(ANDROID_NDK)/ndk-build -C $(SRC) \
Adrien Béraud04d822c2015-04-02 17:44:36 -040066 RING_SRC_DIR="$$RING_SRC_DIR" \
67 RING_CONTRIB="$$RING_CONTRIB" \
68 RING_BUILD_DIR="$$RING_BUILD_DIR" \
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040069 NDK_DEBUG=$(NDK_DEBUG) \
Adrien Béraud04d822c2015-04-02 17:44:36 -040070 TARGET_CFLAGS="$$RING_EXTRA_CFLAGS"
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040071
Alexandre Lision7d5df5d2014-10-27 13:10:01 -040072apk:
73 $(call build_apk)
74
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040075apkclean:
Adrien Béraud04d822c2015-04-02 17:44:36 -040076 rm -f $(RING_APK)
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040077
78lightclean:
Adrien Béraud04d822c2015-04-02 17:44:36 -040079 cd $(SRC) && rm -rf libs/armeabi-v7a libs/x86 libs/mips obj bin $(RING_APK)
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040080
81clean: lightclean
Tristan Matthews1b5d1322014-09-29 17:29:16 -040082 rm -rf $(SRC)/gen java-libs/*/gen java-libs/*/bin .sdk
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040083
84jniclean: lightclean
Adrien Béraud04d822c2015-04-02 17:44:36 -040085 rm -f $(LIBRINGJNI)
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040086
87distclean: clean jniclean
88
Adrien Béraud04d822c2015-04-02 17:44:36 -040089install: $(RING_APK)
Adrien Béraud87d878d2015-06-03 15:09:19 -040090 @echo "=== Installing Ring on device ==="
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040091 adb wait-for-device
Adrien Béraud04d822c2015-04-02 17:44:36 -040092 adb install -r $(RING_APK)
Tristan Matthews5bb1b5d2013-07-18 14:32:58 -040093
Tristan Matthewsfdd94e52013-07-19 16:44:44 -040094uninstall:
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040095 adb wait-for-device
Adrien Béraud04d822c2015-04-02 17:44:36 -040096 adb uninstall cx.ring
Tristan Matthewsfdd94e52013-07-19 16:44:44 -040097
Alexandre Lision43b9aeb2014-07-15 14:21:19 -040098run:
Adrien Béraud87d878d2015-06-03 15:09:19 -040099 @echo "=== Running Ring on device ==="
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400100 adb wait-for-device
Adrien Béraud04d822c2015-04-02 17:44:36 -0400101 adb shell am start -n cx.ring/cx.ring.client.HomeActivity
Alexandre Lision43b9aeb2014-07-15 14:21:19 -0400102
103build-and-run: install run
104
105apkclean-run: apkclean build-and-run
106 adb logcat -c
107
108distclean-run: distclean build-and-run
109 adb logcat -c
110
111vlc-sdk.7z: .sdk
112 7z a $@ vlc-sdk/
113
114.sdk:
115 mkdir -p vlc-sdk/libs
116 cd vlc-android; cp -r libs/* ../vlc-sdk/libs
117 mkdir -p vlc-sdk/src/org/videolan
118 cp -r vlc-android/src/org/videolan/libvlc vlc-sdk/src/org/videolan
119 touch $@
120
121.PHONY: lightclean clean jniclean distclean distclean-run apkclean apkclean-run install run build-and-run