X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=Makefile.android;h=faaadb8a6911a0ec1aef26665fa51e1cf283e865;hb=e74cbdf3efc7f1ce704b4fa441d1b34db8dfdd0d;hp=0df3c9587d2fca6f34441ed313cbe991a647e44c;hpb=aa9f7c423c8c4111b3e1d0a7bbe73e376533ed80;p=andemo diff --git a/Makefile.android b/Makefile.android index 0df3c95..faaadb8 100644 --- a/Makefile.android +++ b/Makefile.android @@ -1,18 +1,44 @@ +SDK ?= /usr/lib/android-sdk NDK ?= /usr/lib/android-ndk CCSYSROOT = $(NDK)/sysroot ISYS = $(CCSYSROOT)/usr/include/aarch64-linux-android -LDSYSROOT = $(NDK)/platforms/anrdoid-21/arch-arm64 +LDSYSROOT = $(NDK)/platforms/android-23/arch-arm64 +PLATFORM_JAR = $(SDK)/platforms/android-23/android.jar TCPATH = $(NDK)/toolchains/llvm/prebuilt/linux-$(shell uname -m)/bin -TC = $(TCPATH)/aarch64-linux-android21- +TC = $(TCPATH)/aarch64-linux-android23- src = $(wildcard src/*.c) $(wildcard src/android/*.c) obj = $(src:.c=.arm64.o) dep = $(src:.c=.d) -lib_so = libandemo.so +name = andemo +lib_so = lib$(name).so + +pkgprefix = com.mutantstargoat +pkg = $(pkgprefix).$(name) +act = android.app.NativeActivity + +warn = -pedantic -Wall +dbg = -g +opt = -O3 -ffast-math -fno-strict-aliasing +incdir = -Isrc CC = $(TC)clang CFLAGS = --sysroot=$(CCSYSROOT) -isystem=$(ISYS) $(warn) $(dbg) $(opt) $(def) $(incdir) -fPIC -fcommon -MMD -LDFLAGS = --sysroot=$(LDSYSROOT) -lEGL -lGLESv2 +LDFLAGS = --sysroot=$(LDSYSROOT) -landroid -llog -lEGL -lGLESv2 + +$(name).apk: $(name).aligned.apk keystore.jks + apksigner sign --ks keystore.jks --ks-key-alias androidkey --ks-pass pass:android --key-pass pass:android --out $@ $< + +keystore.jks: + keytool -genkeypair -keystore $@ -alias androidkey -validity 10000 -keyalg RSA -keysize 2048 -storepass android -keypass android + +$(name).aligned.apk: $(name).unsigned.apk + zipalign -f -p 4 $< $@ + +$(name).unsigned.apk: $(lib_so) AndroidManifest.xml + mkdir -p apkbuild/lib/arm64-v8a + cp $(lib_so) apkbuild/lib/arm64-v8a + aapt package -f -v -F $@ -I $(PLATFORM_JAR) -M AndroidManifest.xml apkbuild $(lib_so): $(obj) $(CC) -o $@ -shared $(obj) $(LDFLAGS) @@ -29,3 +55,19 @@ clean: .PHONY: cleandep cleandep: rm -f $(dep) + +.PHONY: install +install: $(name).apk + adb install -r $(name).apk + +.PHONY: uninstall +uninstall: + adb uninstall $(pkg) + +.PHONY: run +run: + adb shell am start -n $(pkg)/$(act) + +.PHONY: stop +stop: + adb shell am force-stop $(pkg)