ANDROID_SDK_ROOT ?= /opt/android-sdk ANDROID_NDK_ROOT ?= /opt/android-ndk JAVA_HOME ?= /usr/lib/jvm/java-25-openjdk PATH := $(JAVA_HOME)/bin:$(ANDROID_SDK_ROOT)/cmdline-tools/latest/bin:$(ANDROID_SDK_ROOT)/platform-tools:$(PATH) APP_ID ?= org.julianfamily.keepassgo APK_OUT ?= build/keepassgo.apk APK_VERSION ?= 0.1.0.1 ANDROID_MIN_SDK ?= 28 ANDROID_TARGET_SDK ?= 35 .PHONY: apk apk: @test -x "$(JAVA_HOME)/bin/java" || { echo "JAVA_HOME must point to a JDK 17+ install"; exit 1; } @test -d "$(ANDROID_SDK_ROOT)" || { echo "ANDROID_SDK_ROOT must point to an Android SDK install"; exit 1; } @test -d "$(ANDROID_NDK_ROOT)" || { echo "ANDROID_NDK_ROOT must point to an Android NDK install"; exit 1; } @test -x "$(ANDROID_SDK_ROOT)/cmdline-tools/latest/bin/sdkmanager" || { echo "Android SDK cmdline-tools are missing"; exit 1; } @test -d "$(ANDROID_SDK_ROOT)/platforms/android-$(ANDROID_TARGET_SDK)" || { echo "Android platform android-$(ANDROID_TARGET_SDK) is missing"; exit 1; } @test -d "$(ANDROID_SDK_ROOT)/build-tools" || { echo "Android build-tools are missing"; exit 1; } @mkdir -p "$(dir $(APK_OUT))" ANDROID_HOME="$(ANDROID_SDK_ROOT)" \ ANDROID_SDK_ROOT="$(ANDROID_SDK_ROOT)" \ ANDROID_NDK_ROOT="$(ANDROID_NDK_ROOT)" \ JAVA_HOME="$(JAVA_HOME)" \ go tool gogio -target android \ -buildmode exe \ -appid $(APP_ID) \ -o $(APK_OUT) \ -version $(APK_VERSION) \ -minsdk $(ANDROID_MIN_SDK) \ -targetsdk $(ANDROID_TARGET_SDK) \ .