Files
eng-pad/Makefile
2026-03-24 20:26:27 -07:00

54 lines
1.3 KiB
Makefile

ANDROID_HOME ?= $(HOME)/Library/Android/sdk
ADB := $(ANDROID_HOME)/platform-tools/adb
EMULATOR := $(ANDROID_HOME)/emulator/emulator
AVD ?= DC-1
PACKAGE := net.metacircular.engpad
ACTIVITY := $(PACKAGE).MainActivity
.PHONY: build test lint clean run devrun apk all
# Build everything (compile + test + lint)
all: lint test build
# Compile debug and release APKs
build:
./gradlew build
# Run unit tests
test:
./gradlew test
# Run a single test class: make test-one CLASS=net.metacircular.engpad.data.StrokeBlobTest
test-one:
./gradlew test --tests "$(CLASS)"
# Run Android lint
lint:
./gradlew lint
# Build release APK
apk:
./gradlew assembleRelease
@echo "APK: app/build/outputs/apk/release/app-release-unsigned.apk"
# Clean build artifacts
clean:
./gradlew clean
# Install and launch on the Android emulator.
# Starts the emulator if it isn't already running.
run: build
@if ! $(ADB) devices | grep -q emulator; then \
echo "Starting emulator ($(AVD))..."; \
$(EMULATOR) -avd $(AVD) -no-snapshot-load &>/dev/null & \
$(ADB) wait-for-device; \
echo "Emulator ready."; \
fi
./gradlew installDebug
$(ADB) -e shell am start -n $(PACKAGE)/$(ACTIVITY)
# Install and launch on a connected USB device.
devrun: build
./gradlew installDebug
$(ADB) -d shell am start -n $(PACKAGE)/$(ACTIVITY)