Auto-detect Android NDK and javac paths in Makefile.android
Remove hardcoded /home/vladimir and /opt paths. NDK is now resolved via ANDROID_NDK_HOME, ANDROID_SDK_ROOT/ANDROID_HOME, or the default SDK location for Linux/macOS (latest version picked automatically). javac is resolved via JAVA_HOME, system PATH, or Android Studio JBR on Linux/macOS. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
4f44118299
commit
4313006fa6
@ -8,13 +8,36 @@
|
||||
# FFTW source is downloaded and extracted automatically.
|
||||
# Override FFTW_SRC to use an existing directory.
|
||||
|
||||
ANDROID_NDK ?= /home/vladimir/Android/Sdk/ndk/29.0.14206865
|
||||
# Auto-detect NDK path (can always be overridden by setting ANDROID_NDK explicitly):
|
||||
# 1. ANDROID_NDK_HOME environment variable
|
||||
# 2. Latest NDK under ANDROID_SDK_ROOT or ANDROID_HOME
|
||||
# 3. Default SDK locations: ~/Android/Sdk (Linux) or ~/Library/Android/sdk (macOS)
|
||||
ifeq ($(origin ANDROID_NDK),undefined)
|
||||
ifdef ANDROID_NDK_HOME
|
||||
ANDROID_NDK := $(ANDROID_NDK_HOME)
|
||||
else
|
||||
_SDK_ROOT := $(or $(ANDROID_SDK_ROOT),$(ANDROID_HOME),\
|
||||
$(wildcard $(HOME)/Android/Sdk),\
|
||||
$(wildcard $(HOME)/Library/Android/sdk))
|
||||
ifdef _SDK_ROOT
|
||||
ANDROID_NDK := $(lastword $(sort $(wildcard $(_SDK_ROOT)/ndk/*)))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifndef ANDROID_NDK
|
||||
$(error Cannot find Android NDK. Set ANDROID_NDK, ANDROID_NDK_HOME, ANDROID_SDK_ROOT, or ANDROID_HOME)
|
||||
endif
|
||||
ANDROID_API ?= 24
|
||||
ANDROID_ABIS ?= arm64-v8a armeabi-v7a x86_64
|
||||
ANDROID_HOST_TAG ?= $(shell uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/darwin/;s/linux/linux/')-$(shell uname -m | sed 's/aarch64/arm64/;s/x86_64/x86_64/')
|
||||
|
||||
JBR_BIN ?= /opt/android-studio/jbr/bin
|
||||
JAVAC ?= $(JBR_BIN)/javac
|
||||
# Auto-detect javac: JAVA_HOME > system PATH > Android Studio JBR (Linux/macOS)
|
||||
_JAVAC_CANDIDATES := \
|
||||
$(if $(JAVA_HOME),$(wildcard $(JAVA_HOME)/bin/javac)) \
|
||||
$(shell command -v javac 2>/dev/null) \
|
||||
$(wildcard /opt/android-studio/jbr/bin/javac) \
|
||||
$(wildcard /Applications/Android\ Studio.app/Contents/jbr/Contents/Home/bin/javac)
|
||||
JAVAC ?= $(firstword $(_JAVAC_CANDIDATES))
|
||||
|
||||
TOOLCHAIN := $(ANDROID_NDK)/toolchains/llvm/prebuilt/$(ANDROID_HOST_TAG)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user