64 lines
1.4 KiB
Makefile
64 lines
1.4 KiB
Makefile
.POSIX:
|
|
.SUFFIXES: .apk .unsigned .aligned
|
|
|
|
PROJECT = helloworld
|
|
ANDROIDSDK = /usr/lib/android-sdk
|
|
DX = $(ANDROIDSDK)/build-tools/debian/dx
|
|
MANIFEST = AndroidManifest.xml
|
|
PLATFORM = $(ANDROIDSDK)/platforms/android-23/android.jar
|
|
OBJECTS = \
|
|
HelloWorld.class \
|
|
Test.class
|
|
RESOURCES = \
|
|
res/layout/activity_main.xml
|
|
R = helloworld/R.java
|
|
|
|
# Resources:
|
|
# https://www.hanshq.net/command-line-android.html
|
|
|
|
all: $(PROJECT).apk
|
|
|
|
$(PROJECT).apk: keystore.jks
|
|
|
|
.aligned.apk:
|
|
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 4096 \
|
|
-storepass android \
|
|
-keypass android
|
|
|
|
.unsigned.aligned:
|
|
zipalign -f -p 4 $< $@
|
|
|
|
$(PROJECT).unsigned: dex/classes.dex $(MANIFEST)
|
|
aapt package -f -F $@ -I $(PLATFORM) -M $(MANIFEST) -S res dex
|
|
|
|
dex/classes.dex: $(OBJECTS) $(MANIFEST)
|
|
mkdir -p dex
|
|
$(DX) --dex --output=$@ $(OBJECTS)
|
|
|
|
$(OBJECTS): $(OBJECTS:.class=.java) $(R)
|
|
javac -bootclasspath $(PLATFORM) -source 1.7 $(OBJECTS:.class=.java)
|
|
|
|
$(R): $(MANIFEST) $(RESOURCES)
|
|
aapt package -f -m -S res -M $(MANIFEST) -I $(PLATFORM) -J .
|
|
|
|
clean:
|
|
rm -f $(R) $(OBJECTS) $(PROJECT).unsigned \
|
|
$(PROJECT).aligned $(PROJECT).apk.idsig dex/classes.dex
|
|
|
|
distclean: clean
|
|
rm -rf dex/ *.apk keystore.jks
|