114 lines
5.4 KiB
Makefile
114 lines
5.4 KiB
Makefile
# Downloads and installs the Android SDK depending on supplied platform: darwin or linux
|
|
|
|
# Those android NDK/SDK variables can be override when running the file
|
|
ANDROID_NDK_VERSION ?= 25b
|
|
ANDROID_NDK_VERSION_LEGACY ?= 21e
|
|
ANDROID_SDK_TOOLS_VERSION ?= 6514223
|
|
ANDROID_SDK_BUILD_TOOLS_VERSION ?= 29.0.3
|
|
ANDROID_HOME ?= $(HOME)/.android
|
|
ANDROID_API_LEVEL ?= 27
|
|
|
|
# per OS dictionary-like
|
|
UNAME_S := $(shell uname -s)
|
|
TARGET_OS_Linux = linux
|
|
TARGET_OS_ALIAS_Linux = $(TARGET_OS_Linux)
|
|
TARGET_OS_Darwin = darwin
|
|
TARGET_OS_ALIAS_Darwin = mac
|
|
TARGET_OS = $(TARGET_OS_$(UNAME_S))
|
|
TARGET_OS_ALIAS = $(TARGET_OS_ALIAS_$(UNAME_S))
|
|
|
|
ANDROID_SDK_HOME=$(ANDROID_HOME)/android-sdk
|
|
ANDROID_SDK_TOOLS_ARCHIVE=commandlinetools-$(TARGET_OS_ALIAS)-$(ANDROID_SDK_TOOLS_VERSION)_latest.zip
|
|
ANDROID_SDK_TOOLS_DL_URL=https://dl.google.com/android/repository/$(ANDROID_SDK_TOOLS_ARCHIVE)
|
|
|
|
ANDROID_NDK_HOME=$(ANDROID_HOME)/android-ndk
|
|
ANDROID_NDK_FOLDER=$(ANDROID_HOME)/android-ndk-r$(ANDROID_NDK_VERSION)
|
|
ANDROID_NDK_ARCHIVE=android-ndk-r$(ANDROID_NDK_VERSION)-$(TARGET_OS).zip
|
|
|
|
ANDROID_NDK_HOME_LEGACY=$(ANDROID_HOME)/android-ndk-legacy
|
|
ANDROID_NDK_FOLDER_LEGACY=$(ANDROID_HOME)/android-ndk-r$(ANDROID_NDK_VERSION_LEGACY)
|
|
ANDROID_NDK_ARCHIVE_LEGACY=android-ndk-r$(ANDROID_NDK_VERSION_LEGACY)-$(TARGET_OS)-x86_64.zip
|
|
|
|
ANDROID_NDK_GFORTRAN_ARCHIVE_ARM64=gcc-arm64-linux-x86_64.tar.bz2
|
|
ANDROID_NDK_GFORTRAN_ARCHIVE_ARM=gcc-arm-linux-x86_64.tar.bz2
|
|
|
|
|
|
ANDROID_NDK_DL_URL=https://dl.google.com/android/repository/$(ANDROID_NDK_ARCHIVE)
|
|
ANDROID_NDK_DL_URL_LEGACY=https://dl.google.com/android/repository/$(ANDROID_NDK_ARCHIVE_LEGACY)
|
|
|
|
$(info Target install OS is : $(target_os))
|
|
$(info Android SDK home is : $(ANDROID_SDK_HOME))
|
|
$(info Android NDK home is : $(ANDROID_NDK_HOME))
|
|
$(info Android NDK Legacy home is : $(ANDROID_NDK_HOME_LEGACY))
|
|
$(info Android SDK download url is : $(ANDROID_SDK_TOOLS_DL_URL))
|
|
$(info Android NDK download url is : $(ANDROID_NDK_DL_URL))
|
|
$(info Android API level is : $(ANDROID_API_LEVEL))
|
|
$(info Android NDK version is : $(ANDROID_NDK_VERSION))
|
|
$(info Android NDK Legacy version is : $(ANDROID_NDK_VERSION_LEGACY))
|
|
$(info JAVA_HOME is : $(JAVA_HOME))
|
|
|
|
all: install_sdk install_ndk
|
|
|
|
install_sdk: download_android_sdk extract_android_sdk update_android_sdk
|
|
|
|
install_ndk: download_android_ndk download_android_ndk_legacy download_android_ndk_gfortran extract_android_ndk extract_android_ndk_legacy extract_android_ndk_gfortran
|
|
|
|
download_android_sdk:
|
|
curl --location --progress-bar --continue-at - \
|
|
$(ANDROID_SDK_TOOLS_DL_URL) --output $(ANDROID_SDK_TOOLS_ARCHIVE)
|
|
|
|
download_android_ndk:
|
|
curl --location --progress-bar --continue-at - \
|
|
$(ANDROID_NDK_DL_URL) --output $(ANDROID_NDK_ARCHIVE)
|
|
|
|
download_android_ndk_legacy:
|
|
curl --location --progress-bar --continue-at - \
|
|
$(ANDROID_NDK_DL_URL_LEGACY) --output $(ANDROID_NDK_ARCHIVE_LEGACY)
|
|
|
|
download_android_ndk_gfortran:
|
|
curl --location --progress-bar --continue-at - \
|
|
https://github.com/mzakharo/android-gfortran/releases/download/r$(ANDROID_NDK_VERSION_LEGACY)/$(ANDROID_NDK_GFORTRAN_ARCHIVE_ARM64) --output $(ANDROID_NDK_GFORTRAN_ARCHIVE_ARM64)
|
|
curl --location --progress-bar --continue-at - \
|
|
https://github.com/mzakharo/android-gfortran/releases/download/r$(ANDROID_NDK_VERSION_LEGACY)/$(ANDROID_NDK_GFORTRAN_ARCHIVE_ARM) --output $(ANDROID_NDK_GFORTRAN_ARCHIVE_ARM)
|
|
|
|
|
|
# Extract android SDK and remove the compressed file
|
|
extract_android_sdk:
|
|
mkdir -p $(ANDROID_SDK_HOME) \
|
|
&& unzip -q $(ANDROID_SDK_TOOLS_ARCHIVE) -d $(ANDROID_SDK_HOME) \
|
|
&& rm -f $(ANDROID_SDK_TOOLS_ARCHIVE)
|
|
|
|
|
|
# Extract android NDK and remove the compressed file
|
|
extract_android_ndk:
|
|
mkdir -p $(ANDROID_NDK_FOLDER) \
|
|
&& unzip -q $(ANDROID_NDK_ARCHIVE) -d $(ANDROID_HOME) \
|
|
&& mv $(ANDROID_NDK_FOLDER) $(ANDROID_NDK_HOME) \
|
|
&& rm -f $(ANDROID_NDK_ARCHIVE)
|
|
|
|
extract_android_ndk_legacy:
|
|
mkdir -p $(ANDROID_NDK_FOLDER_LEGACY) \
|
|
&& unzip -q $(ANDROID_NDK_ARCHIVE_LEGACY) -d $(ANDROID_HOME) \
|
|
&& mv $(ANDROID_NDK_FOLDER_LEGACY) $(ANDROID_NDK_HOME_LEGACY) \
|
|
&& rm -f $(ANDROID_NDK_ARCHIVE_LEGACY)
|
|
|
|
extract_android_ndk_gfortran:
|
|
rm -rf $(ANDROID_NDK_HOME_LEGACY)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/ \
|
|
&& mkdir $(ANDROID_NDK_HOME_LEGACY)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/ \
|
|
&& tar -xf $(ANDROID_NDK_GFORTRAN_ARCHIVE_ARM64) -C $(ANDROID_NDK_HOME_LEGACY)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/ --strip-components 1 \
|
|
&& rm -f $(ANDROID_NDK_GFORTRAN_ARCHIVE_ARM64) \
|
|
&& rm -rf $(ANDROID_NDK_HOME_LEGACY)/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/ \
|
|
&& mkdir $(ANDROID_NDK_HOME_LEGACY)/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/ \
|
|
&& tar -xf $(ANDROID_NDK_GFORTRAN_ARCHIVE_ARM) -C $(ANDROID_NDK_HOME_LEGACY)/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/ --strip-components 1 \
|
|
&& rm -f $(ANDROID_NDK_GFORTRAN_ARCHIVE_ARM)
|
|
|
|
|
|
|
|
# updates Android SDK, install Android API, Build Tools and accept licenses
|
|
update_android_sdk:
|
|
touch $(ANDROID_HOME)/repositories.cfg
|
|
yes | $(ANDROID_SDK_HOME)/tools/bin/sdkmanager --sdk_root=$(ANDROID_SDK_HOME) --licenses > /dev/null
|
|
$(ANDROID_SDK_HOME)/tools/bin/sdkmanager --sdk_root=$(ANDROID_SDK_HOME) "build-tools;$(ANDROID_SDK_BUILD_TOOLS_VERSION)" > /dev/null
|
|
$(ANDROID_SDK_HOME)/tools/bin/sdkmanager --sdk_root=$(ANDROID_SDK_HOME) "platforms;android-$(ANDROID_API_LEVEL)" > /dev/null
|
|
# Set avdmanager permissions (executable)
|
|
chmod +x $(ANDROID_SDK_HOME)/tools/bin/avdmanager
|