@@ -31,67 +31,60 @@ RAYLIB_PATH ?= ..\..
3131ANDROID_ARCH ?= ARM64
3232ANDROID_API_VERSION = 29
3333
34- # Android required path variables
35- # NOTE: Starting with Android NDK r21, no more toolchain generation is required, NDK is the toolchain on itself
36- ifeq ($(OS),Windows_NT)
37- ANDROID_NDK = C:/android-ndk
38- ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/windows-x86_64
39- else
40- ANDROID_NDK ?= /usr/lib/android/ndk
41- ANDROID_TOOLCHAIN = $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64
42- endif
43-
4434ifeq ($(ANDROID_ARCH),ARM)
45- ANDROID_ARCH_NAME = armeabi-v7a
35+ ANDROID_ARCH_NAME = armeabi-v7a
4636endif
4737ifeq ($(ANDROID_ARCH),ARM64)
48- ANDROID_ARCH_NAME = arm64-v8a
38+ ANDROID_ARCH_NAME = arm64-v8a
4939endif
5040ifeq ($(ANDROID_ARCH),x86)
51- ANDROID_ARCH_NAME = i686
41+ ANDROID_ARCH_NAME = i686
5242endif
5343ifeq ($(ANDROID_ARCH),x86_64)
54- ANDROID_ARCH_NAME = x86_64
44+ ANDROID_ARCH_NAME = x86_64
5545endif
5646
5747# Required path variables
5848# NOTE: JAVA_HOME must be set to JDK (using OpenJDK 13)
5949JAVA_HOME ?= C:/open-jdk
60- ANDROID_HOME = C:/android-sdk
61- ANDROID_TOOLCHAIN = C:/android-ndk/toolchains/llvm/prebuilt/windows-x86_64
62- ANDROID_BUILD_TOOLS = $(ANDROID_HOME)/build-tools/29.0.3
50+ ANDROID_HOME ?= C:/android-sdk
51+ ANDROID_NDK ?= C:/android-ndk
52+ ANDROID_TOOLCHAIN ?= $(ANDROID_NDK)/toolchains/llvm/prebuilt/windows-x86_64
53+ ANDROID_BUILD_TOOLS ?= $(ANDROID_HOME)/build-tools/29.0.3
6354ANDROID_PLATFORM_TOOLS = $(ANDROID_HOME)/platform-tools
6455
6556# Android project configuration variables
6657PROJECT_NAME ?= raylib_game
6758PROJECT_LIBRARY_NAME ?= main
68- PROJECT_BUILD_PATH ?= android.$(PROJECT_NAME)
59+ PROJECT_BUILD_ID ?= android
60+ PROJECT_BUILD_PATH ?= $(PROJECT_BUILD_ID).$(PROJECT_NAME)
6961PROJECT_RESOURCES_PATH ?= resources
70- PROJECT_SOURCE_FILES ?= raylib_game.c
62+ PROJECT_SOURCE_FILES ?= simple_game.c
63+ NATIVE_APP_GLUE_PATH = $(ANDROID_NDK)/sources/android/native_app_glue
7164
7265# Some source files are placed in directories, when compiling to some
7366# output directory other than source, that directory must pre-exist.
7467# Here we get a list of required folders that need to be created on
7568# code output folder $(PROJECT_BUILD_PATH)\obj to avoid GCC errors.
76- PROJECT_SOURCE_DIRS = $(sort $(dir $(PROJECT_SOURCE_FILES)))
69+ PROJECT_SOURCE_DIRS = $(sort $(dir $(PROJECT_SOURCE_FILES)))
7770
7871# Android app configuration variables
79- APP_LABEL_NAME ?= rGame
80- APP_COMPANY_NAME ?= raylib
81- APP_PRODUCT_NAME ?= rgame
82- APP_VERSION_CODE ?= 1
83- APP_VERSION_NAME ?= 1.0
84- APP_ICON_LDPI ?= $(RAYLIB_PATH)\logo\raylib_36x36.png
85- APP_ICON_MDPI ?= $(RAYLIB_PATH)\logo\raylib_48x48.png
86- APP_ICON_HDPI ?= $(RAYLIB_PATH)\logo\raylib_72x72.png
72+ APP_LABEL_NAME ?= rGame
73+ APP_COMPANY_NAME ?= raylib
74+ APP_PRODUCT_NAME ?= rgame
75+ APP_VERSION_CODE ?= 1
76+ APP_VERSION_NAME ?= 1.0
77+ APP_ICON_LDPI ?= $(RAYLIB_PATH)\logo\raylib_36x36.png
78+ APP_ICON_MDPI ?= $(RAYLIB_PATH)\logo\raylib_48x48.png
79+ APP_ICON_HDPI ?= $(RAYLIB_PATH)\logo\raylib_72x72.png
8780APP_SCREEN_ORIENTATION ?= landscape
88- APP_KEYSTORE_PASS ?= raylib
81+ APP_KEYSTORE_PASS ?= raylib
8982
9083# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll)
91- RAYLIB_LIBTYPE ?= STATIC
84+ RAYLIB_LIBTYPE ?= STATIC
9285
9386# Library path for libraylib.a/libraylib.so
94- RAYLIB_LIB_PATH = $(RAYLIB_PATH)\src
87+ RAYLIB_LIB_PATH = $(RAYLIB_PATH)\src
9588
9689# Shared libs must be added to APK if required
9790# NOTE: Generated NativeLoader.java automatically load those libraries
@@ -108,6 +101,14 @@ ifeq ($(ANDROID_ARCH),ARM64)
108101 CC = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android$(ANDROID_API_VERSION)-clang
109102 AR = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android-ar
110103endif
104+ ifeq ($(ANDROID_ARCH),x86)
105+ CC = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android$(ANDROID_API_VERSION)-clang
106+ AR = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android-ar
107+ endif
108+ ifeq ($(ANDROID_ARCH),x86_64)
109+ CC = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android$(ANDROID_API_VERSION)-clang
110+ AR = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android-ar
111+ endif
111112
112113# Compiler flags for arquitecture
113114ifeq ($(ANDROID_ARCH),ARM)
@@ -124,7 +125,7 @@ CFLAGS += -Wall -Wa,--noexecstack -Wformat -Werror=format-security -no-canonical
124125CFLAGS += -DANDROID -DPLATFORM_ANDROID -D__ANDROID_API__=$(ANDROID_API_VERSION)
125126
126127# Paths containing required header files
127- INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external/android/native_app_glue
128+ INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(NATIVE_APP_GLUE_PATH)
128129
129130# Linker options
130131LDFLAGS = -Wl,-soname,lib$(PROJECT_LIBRARY_NAME).so -Wl,--exclude-libs,libatomic.a
@@ -154,8 +155,8 @@ all: create_temp_project_dirs \
154155 compile_project_class \
155156 compile_project_class_dex \
156157 create_project_apk_package \
157- sign_project_apk_package \
158- zipalign_project_apk_package
158+ zipalign_project_apk_package \
159+ sign_project_apk_package
159160
160161# Create required temp directories for APK building
161162create_temp_project_dirs:
@@ -253,7 +254,7 @@ config_project_package:
253254
254255# Compile native_app_glue code as static library: obj/libnative_app_glue.a
255256compile_native_app_glue:
256- $(CC) -c $(RAYLIB_PATH)/src/external/android/native_app_glue /android_native_app_glue.c -o $(PROJECT_BUILD_PATH)/obj/native_app_glue.o $(CFLAGS)
257+ $(CC) -c $(NATIVE_APP_GLUE_PATH) /android_native_app_glue.c -o $(PROJECT_BUILD_PATH)/obj/native_app_glue.o $(CFLAGS)
257258 $(AR) rcs $(PROJECT_BUILD_PATH)/obj/libnative_app_glue.a $(PROJECT_BUILD_PATH)/obj/native_app_glue.o
258259
259260# Compile project code into a shared library: lib/lib$(PROJECT_LIBRARY_NAME).so
0 commit comments