+-include config.mk
+
# Settings
-ANDROID := /opt/android-sdk-update-manager/platforms/android-10/android.jar
-PACKAGE := org.pileus.spades
-OUTPUT := bin/Spades.apk
+ANDROID ?= /opt/android-sdk-update-manager/platforms/android-10/android.jar
+PACKAGE ?= org.pileus.spades
+OUTPUT ?= bin/Spades.apk
# Sources
RES := $(shell find res -name '*.xml')
$(GEN:gen/%=obj/%))
# Targets
-default: run
+all: $(OUTPUT)
compile: $(OBJ)
-debug: $(OUTPUT)
-
clean:
rm -rf bin gen obj
+# ADB targets
logcat:
adb logcat Spades:D AndroidRuntime:E '*:S'
run: bin/install.stamp
adb shell am start -W -a android.intent.action.MAIN -n $(PACKAGE)/.Main
-
install bin/install.stamp: $(OUTPUT)
adb install -r $+
adb uninstall $(PACKAGE)
rm bin/install.stamp
+# Graphics targets
+graphics:
+ git checkout graphics -- \
+ 'opt/drawable/*.svg' \
+ 'opt/drawable/*.xcf' \
+ 'res/drawable/*.png' \
+ 'res/drawable/*.jpg' \
+ || true
+ git reset HEAD -- \
+ 'opt/drawable/*.svg' \
+ 'opt/drawable/*.xcf' \
+ 'res/drawable/*.png' \
+ 'res/drawable/*.jpg' \
+ || true
+
+convert:
+ for svg in opt/drawable/*.svg; do \
+ png=$${svg/svg/png}; \
+ png=$${png/opt/res}; \
+ rsvg-convert -w 2048 -h 2048 \
+ $$svg -o $$png; \
+ convert -trim -resize '256x256!' \
+ $$png $$png; \
+ done
+
# Rules
%.apk: %.dex %.res | bin
@echo "APK $@.in"
$(OBJ): $(SRC) $(GEN) | obj
@echo "JAVAC $@"
- @javac -g \
+ @javac -g -Xlint:unchecked \
-bootclasspath $(ANDROID) \
-encoding UTF-8 \
-source 1.5 \
$+
$(GEN): AndroidManifest.xml $(RES) | gen
+ @if ! [ -d "res/drawable" ]; then \
+ echo Please run \
+ \'make graphics\'; \
+ exit 1; \
+ fi
@echo "GEN $@"
@aapt package -f -m \
-I $(ANDROID) \
# Directories
bin gen obj:
@mkdir -p $@
+
+# Use parallel javac instead
+.NOTPARALLEL: