android-simple/Makefile

64 lines
1.4 KiB
Makefile
Raw Normal View History

2023-04-13 00:00:19 +02:00
.POSIX:
2023-09-01 17:03:13 +02:00
.SUFFIXES: .apk .unsigned .aligned
2023-04-13 00:00:19 +02:00
PROJECT = helloworld
ANDROIDSDK = /usr/lib/android-sdk
DX = $(ANDROIDSDK)/build-tools/debian/dx
MANIFEST = AndroidManifest.xml
2023-04-13 00:00:19 +02:00
PLATFORM = $(ANDROIDSDK)/platforms/android-23/android.jar
OBJECTS = \
2023-04-14 01:19:29 +02:00
HelloWorld.class \
Test.class
2023-04-13 00:00:19 +02:00
RESOURCES = \
res/layout/activity_main.xml
R = helloworld/R.java
2020-06-17 19:45:30 +02:00
# Resources:
# https://www.hanshq.net/command-line-android.html
2023-09-01 17:03:31 +02:00
all: $(PROJECT).apk
2023-09-01 17:03:13 +02:00
$(PROJECT).apk: keystore.jks
.aligned.apk:
2023-04-13 00:00:19 +02:00
apksigner sign \
--ks keystore.jks \
--ks-key-alias androidkey \
--ks-pass pass:android \
--key-pass pass:android \
--out $@ $<
2020-06-17 19:45:30 +02:00
keystore.jks:
2023-04-13 00:00:19 +02:00
keytool \
-genkeypair \
-keystore $@ \
-alias androidkey \
-validity 10000 \
-keyalg RSA \
-keysize 4096 \
-storepass android \
-keypass android
2023-09-01 17:03:13 +02:00
.unsigned.aligned:
2020-06-17 19:45:30 +02:00
zipalign -f -p 4 $< $@
2023-09-01 17:03:13 +02:00
$(PROJECT).unsigned: dex/classes.dex $(MANIFEST)
aapt package -f -F $@ -I $(PLATFORM) -M $(MANIFEST) -S res dex
2020-06-17 19:45:30 +02:00
dex/classes.dex: $(OBJECTS) $(MANIFEST)
2023-04-13 00:00:19 +02:00
mkdir -p dex
$(DX) --dex --output=$@ $(OBJECTS)
2020-06-17 19:45:30 +02:00
2023-04-13 00:00:19 +02:00
$(OBJECTS): $(OBJECTS:.class=.java) $(R)
2023-09-01 17:00:34 +02:00
javac -bootclasspath $(PLATFORM) -source 1.7 $(OBJECTS:.class=.java)
2020-06-17 19:45:30 +02:00
$(R): $(MANIFEST) $(RESOURCES)
aapt package -f -m -S res -M $(MANIFEST) -I $(PLATFORM) -J .
2020-06-17 19:45:30 +02:00
clean:
2023-10-02 23:25:02 +02:00
rm -f $(R) $(OBJECTS) $(PROJECT).unsigned \
$(PROJECT).aligned $(PROJECT).apk.idsig dex/classes.dex
2020-06-17 19:45:30 +02:00
distclean: clean
2023-04-13 00:00:19 +02:00
rm -rf dex/ *.apk keystore.jks