summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNimbusFox <[email protected]>2019-08-06 22:06:26 +0100
committerRay <[email protected]>2019-08-06 23:06:26 +0200
commite53e42f43dc77c7c8f631b22493f8ef09304d793 (patch)
tree687e4f03b86e33d7021977c72df1e1762c74a7b7
parent94abe0db88e421a0fc33303bfd50f1e289b102a3 (diff)
downloadraylib-e53e42f43dc77c7c8f631b22493f8ef09304d793.tar.gz
raylib-e53e42f43dc77c7c8f631b22493f8ef09304d793.zip
Improved Android Building (#930)
Added in a check for x86 and x86_64 branches of android Added in $(OS) checks to see if we're running on windows or *nix Added a default location for android ndks and sdks at /usr/lib/android
-rw-r--r--src/Makefile41
1 files changed, 35 insertions, 6 deletions
diff --git a/src/Makefile b/src/Makefile
index 4af01d91..f43a722f 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -160,15 +160,23 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID)
# Android architecture: ARM64
# Starting at 2019 using ARM64 is mandatory for published apps
ANDROID_ARCH ?= ARM
- ANDROID_API_VERSION = 21
+ ANDROID_API_VERSION = 26
# Android required path variables
# NOTE: Android NDK is just required to generate the standalone toolchain,
# in case is not already provided
- ANDROID_NDK = C:/android-ndk
+ ifeq ($(OS),Windows_NT)
+ ANDROID_NDK = C:/android-ndk
+ else
+ ANDROID_NDK = /usr/lib/android/ndk
+ endif
# Android standalone toolchain path
- ANDROID_TOOLCHAIN = C:/android_toolchain_$(ANDROID_ARCH)_API$(ANDROID_API_VERSION)
+ ifeq ($(OS),Windows_NT)
+ ANDROID_TOOLCHAIN = C:/android_toolchain_$(ANDROID_ARCH)_API$(ANDROID_API_VERSION)
+ else
+ ANDROID_TOOLCHAIN = /usr/lib/android/toolchain_$(ANDROID_ARCH)_API$(ANDROID_API_VERSION)
+ endif
ifeq ($(ANDROID_ARCH),ARM)
ANDROID_ARCH_NAME = armeabi-v7a
@@ -176,6 +184,12 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID)
ifeq ($(ANDROID_ARCH),ARM64)
ANDROID_ARCH_NAME = arm64-v8a
endif
+ ifeq ($(ANDROID_ARCH),x86)
+ ANDROID_ARCH_NAME = i686
+ endif
+ ifeq ($(ANDROID_ARCH),x86_64)
+ ANDROID_ARCH_NAME = x86_64
+ endif
endif
# Define raylib source code path
@@ -242,6 +256,14 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID)
CC = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android-clang
AR = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android-ar
endif
+ ifeq ($(ANDROID_ARCH),x86)
+ CC = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android$(ANDROID_API_VERSION)-clang
+ AR = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android-ar
+ endif
+ ifeq ($(ANDROID_ARCH),x86_64)
+ CC = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android$(ANDROID_API_VERSION)-clang
+ AR = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android-ar
+ endif
endif
@@ -305,6 +327,12 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID)
ifeq ($(ANDROID_ARCH),ARM64)
CFLAGS += -target aarch64 -mfix-cortex-a53-835769
endif
+ ifeq ($(ANDROID_ARCH), x86)
+ CFLAGS += -march=i686
+ endif
+ ifeq ($(ANDROID_ARCH), x86_64)
+ CFLAGS += -march=x86-64
+ endif
# Compilation functions attributes options
CFLAGS += -ffunction-sections -funwind-tables -fstack-protector-strong -fPIE -fPIC
# Compiler options for the linker
@@ -356,11 +384,12 @@ ifeq ($(PLATFORM),PLATFORM_RPI)
INCLUDE_PATHS += -I$(RPI_TOOLCHAIN_SYSROOT)/opt/vc/include/interface/vcos/pthreads
endif
ifeq ($(PLATFORM),PLATFORM_ANDROID)
+ NATIVE_APP_GLUE = $(RAYLIB_RELEASE_PATH)/external/android/native_app_glue
+ #NATIVE_APP_GLUE = $(ANDROID_NDK)/sources/android/native_app_glue
# Android required libraries
INCLUDE_PATHS += -I$(ANDROID_TOOLCHAIN)/sysroot/usr/include
# Include android_native_app_glue.h
- INCLUDE_PATHS += -Iexternal/android/native_app_glue
- #INCLUDE_PATHS += -I$(ANDROID_NDK)/sources/android/native_app_glue
+ INCLUDE_PATHS += -I$(NATIVE_APP_GLUE)
endif
# Define linker options
@@ -635,6 +664,6 @@ else
rm -fv *.o $(RAYLIB_RELEASE_PATH)/libraylib.a $(RAYLIB_RELEASE_PATH)/libraylib.bc $(RAYLIB_RELEASE_PATH)/libraylib.so*
endif
ifeq ($(PLATFORM),PLATFORM_ANDROID)
- rm -rf $(ANDROID_TOOLCHAIN)
+ rm -rf $(ANDROID_TOOLCHAIN) $(NATIVE_APP_GLUE)/android_native_app_glue.o
endif
@echo "removed all generated files!"