Skip to content

Commit 5ef7772

Browse files
committed
Reviewed templates Makefiles
1 parent ac79d22 commit 5ef7772

7 files changed

Lines changed: 193 additions & 251 deletions

File tree

examples/Makefile.Android

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -42,55 +42,64 @@ else
4242
endif
4343

4444
ifeq ($(ANDROID_ARCH),ARM)
45-
ANDROID_ARCH_NAME = armeabi-v7a
45+
ANDROID_ARCH_NAME = armeabi-v7a
4646
endif
4747
ifeq ($(ANDROID_ARCH),ARM64)
48-
ANDROID_ARCH_NAME = arm64-v8a
48+
ANDROID_ARCH_NAME = arm64-v8a
4949
endif
5050
ifeq ($(ANDROID_ARCH),x86)
51-
ANDROID_ARCH_NAME = i686
51+
ANDROID_ARCH_NAME = i686
5252
endif
5353
ifeq ($(ANDROID_ARCH),x86_64)
54-
ANDROID_ARCH_NAME = x86_64
54+
ANDROID_ARCH_NAME = x86_64
5555
endif
5656

5757
# Required path variables
5858
# NOTE: JAVA_HOME must be set to JDK (using OpenJDK 13)
5959
JAVA_HOME ?= C:/open-jdk
6060
ANDROID_HOME ?= C:/android-sdk
61-
ANDROID_BUILD_TOOLS = $(ANDROID_HOME)/build-tools/29.0.3
61+
ANDROID_BUILD_TOOLS ?= $(ANDROID_HOME)/build-tools/29.0.3
6262
ANDROID_PLATFORM_TOOLS = $(ANDROID_HOME)/platform-tools
6363

6464
# Android project configuration variables
6565
PROJECT_NAME ?= raylib_game
6666
PROJECT_LIBRARY_NAME ?= main
67-
PROJECT_BUILD_PATH ?= android.$(PROJECT_NAME)
67+
PROJECT_BUILD_ID ?= android
68+
PROJECT_BUILD_PATH ?= $(PROJECT_BUILD_ID).$(PROJECT_NAME)
6869
PROJECT_RESOURCES_PATH ?= resources
6970
PROJECT_SOURCE_FILES ?= raylib_game.c
71+
NATIVE_APP_GLUE_PATH = $(ANDROID_NDK)/sources/android/native_app_glue
7072

7173
# Some source files are placed in directories, when compiling to some
7274
# output directory other than source, that directory must pre-exist.
7375
# Here we get a list of required folders that need to be created on
7476
# code output folder $(PROJECT_BUILD_PATH)\obj to avoid GCC errors.
75-
PROJECT_SOURCE_DIRS = $(sort $(dir $(PROJECT_SOURCE_FILES)))
77+
PROJECT_SOURCE_DIRS = $(sort $(dir $(PROJECT_SOURCE_FILES)))
7678

7779
# Android app configuration variables
78-
APP_LABEL_NAME ?= rGame
79-
APP_COMPANY_NAME ?= raylib
80-
APP_PRODUCT_NAME ?= rgame
81-
APP_VERSION_CODE ?= 1
82-
APP_VERSION_NAME ?= 1.0
83-
APP_ICON_LDPI ?= $(RAYLIB_PATH)/logo/raylib_36x36.png
84-
APP_ICON_MDPI ?= $(RAYLIB_PATH)/logo/raylib_48x48.png
85-
APP_ICON_HDPI ?= $(RAYLIB_PATH)/logo/raylib_72x72.png
80+
APP_LABEL_NAME ?= rGame
81+
APP_COMPANY_NAME ?= raylib
82+
APP_PRODUCT_NAME ?= rgame
83+
APP_VERSION_CODE ?= 1
84+
APP_VERSION_NAME ?= 1.0
85+
APP_ICON_LDPI ?= $(RAYLIB_PATH)/logo/raylib_36x36.png
86+
APP_ICON_MDPI ?= $(RAYLIB_PATH)/logo/raylib_48x48.png
87+
APP_ICON_HDPI ?= $(RAYLIB_PATH)/logo/raylib_72x72.png
8688
APP_SCREEN_ORIENTATION ?= landscape
87-
APP_KEYSTORE_PASS ?= raylib
89+
APP_KEYSTORE_PASS ?= raylib
8890

8991
# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll)
90-
RAYLIB_LIBTYPE ?= STATIC
92+
RAYLIB_LIBTYPE ?= STATIC
9193

9294
# Library path for libraylib.a/libraylib.so
93-
RAYLIB_LIB_PATH = $(RAYLIB_PATH)/src
95+
RAYLIB_LIB_PATH = $(RAYLIB_PATH)/src
96+
97+
# Define copy command depending on OS
98+
ifeq ($(OS),Windows_NT)
99+
COPY_COMMAND ?= copy /Y
100+
else
101+
COPY_COMMAND ?= cp -f
102+
endif
94103

95104
# Shared libs must be added to APK if required
96105
# NOTE: Generated NativeLoader.java automatically load those libraries
@@ -107,6 +116,14 @@ ifeq ($(ANDROID_ARCH),ARM64)
107116
CC = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android$(ANDROID_API_VERSION)-clang
108117
AR = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android-ar
109118
endif
119+
ifeq ($(ANDROID_ARCH),x86)
120+
CC = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android$(ANDROID_API_VERSION)-clang
121+
AR = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android-ar
122+
endif
123+
ifeq ($(ANDROID_ARCH),x86_64)
124+
CC = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android$(ANDROID_API_VERSION)-clang
125+
AR = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android-ar
126+
endif
110127

111128
# Compiler flags for arquitecture
112129
ifeq ($(ANDROID_ARCH),ARM)
@@ -123,7 +140,7 @@ CFLAGS += -Wall -Wa,--noexecstack -Wformat -Werror=format-security -no-canonical
123140
CFLAGS += -DANDROID -DPLATFORM_ANDROID -D__ANDROID_API__=$(ANDROID_API_VERSION)
124141

125142
# Paths containing required header files
126-
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(ANDROID_NDK)/sources/android/native_app_glue
143+
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(NATIVE_APP_GLUE_PATH)
127144

128145
# Linker options
129146
LDFLAGS = -Wl,-soname,lib$(PROJECT_LIBRARY_NAME).so -Wl,--exclude-libs,libatomic.a
@@ -153,8 +170,8 @@ all: create_temp_project_dirs \
153170
compile_project_class \
154171
compile_project_class_dex \
155172
create_project_apk_package \
156-
sign_project_apk_package \
157-
zipalign_project_apk_package
173+
zipalign_project_apk_package \
174+
sign_project_apk_package
158175

159176
# Create required temp directories for APK building
160177
create_temp_project_dirs:
@@ -203,12 +220,6 @@ define create_dir
203220
mkdir -p $(PROJECT_BUILD_PATH)/obj/$(1)
204221
endef
205222

206-
ifeq ($(OS),Windows_NT)
207-
COPY_COMMAND ?= copy /Y
208-
else
209-
COPY_COMMAND ?= cp -f
210-
endif
211-
212223
# Copy required shared libs for integration into APK
213224
# NOTE: If using shared libs they are loaded by generated NativeLoader.java
214225
copy_project_required_libs:
@@ -325,7 +336,7 @@ config_project_package:
325336

326337
# Compile native_app_glue code as static library: obj/libnative_app_glue.a
327338
compile_native_app_glue:
328-
$(CC) -c $(ANDROID_NDK)/sources/android/native_app_glue/android_native_app_glue.c -o $(PROJECT_BUILD_PATH)/obj/native_app_glue.o $(CFLAGS)
339+
$(CC) -c $(NATIVE_APP_GLUE_PATH)/android_native_app_glue.c -o $(PROJECT_BUILD_PATH)/obj/native_app_glue.o $(CFLAGS)
329340
$(AR) rcs $(PROJECT_BUILD_PATH)/obj/libnative_app_glue.a $(PROJECT_BUILD_PATH)/obj/native_app_glue.o
330341

331342
# Compile project code into a shared library: lib/lib$(PROJECT_LIBRARY_NAME).so

templates/advance_game/Makefile

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB)
246246
# --profiling # include information for code profiling
247247
# --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
248248
# --preload-file resources # specify a resources folder for data compilation
249+
# --source-map-base # allow debugging in browser with source map
249250
CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 -s FORCE_FILESYSTEM=1 --preload-file resources
250251

251252
# Define a custom shell .html and output extension
@@ -274,9 +275,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
274275
INCLUDE_PATHS += -I/usr/local/include
275276
endif
276277
ifeq ($(PLATFORM_OS),LINUX)
277-
# Reset everything.
278-
# Precedence: immediately local, installed version, raysan5 provided libs -I$(RAYLIB_H_INSTALL_PATH) -I$(RAYLIB_PATH)/release/include
279-
INCLUDE_PATHS = -I$(RAYLIB_H_INSTALL_PATH) -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/release/include -I$(RAYLIB_PATH)/src/external
278+
INCLUDE_PATHS = -I$(RAYLIB_H_INSTALL_PATH) -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external
280279
endif
281280
endif
282281

@@ -307,10 +306,6 @@ ifeq ($(PLATFORM),PLATFORM_RPI)
307306
LDFLAGS += -L/opt/vc/lib
308307
endif
309308

310-
ifeq ($(PLATFORM),PLATFORM_DRM)
311-
LDFLAGS += -lGLESv2 -lEGL -ldrm -lgbm
312-
endif
313-
314309
# Define any libraries required on linking
315310
# if you want to link libraries (libname.so or libname.a), use the -lname
316311
ifeq ($(PLATFORM),PLATFORM_DESKTOP)

templates/advance_game/Makefile.Android

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -31,67 +31,60 @@ RAYLIB_PATH ?= ..\..
3131
ANDROID_ARCH ?= ARM64
3232
ANDROID_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-
4434
ifeq ($(ANDROID_ARCH),ARM)
45-
ANDROID_ARCH_NAME = armeabi-v7a
35+
ANDROID_ARCH_NAME = armeabi-v7a
4636
endif
4737
ifeq ($(ANDROID_ARCH),ARM64)
48-
ANDROID_ARCH_NAME = arm64-v8a
38+
ANDROID_ARCH_NAME = arm64-v8a
4939
endif
5040
ifeq ($(ANDROID_ARCH),x86)
51-
ANDROID_ARCH_NAME = i686
41+
ANDROID_ARCH_NAME = i686
5242
endif
5343
ifeq ($(ANDROID_ARCH),x86_64)
54-
ANDROID_ARCH_NAME = x86_64
44+
ANDROID_ARCH_NAME = x86_64
5545
endif
5646

5747
# Required path variables
5848
# NOTE: JAVA_HOME must be set to JDK (using OpenJDK 13)
5949
JAVA_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
6354
ANDROID_PLATFORM_TOOLS = $(ANDROID_HOME)/platform-tools
6455

6556
# Android project configuration variables
6657
PROJECT_NAME ?= raylib_game
6758
PROJECT_LIBRARY_NAME ?= main
68-
PROJECT_BUILD_PATH ?= android.$(PROJECT_NAME)
59+
PROJECT_BUILD_ID ?= android
60+
PROJECT_BUILD_PATH ?= $(PROJECT_BUILD_ID).$(PROJECT_NAME)
6961
PROJECT_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
8780
APP_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
110103
endif
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
113114
ifeq ($(ANDROID_ARCH),ARM)
@@ -124,7 +125,7 @@ CFLAGS += -Wall -Wa,--noexecstack -Wformat -Werror=format-security -no-canonical
124125
CFLAGS += -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
130131
LDFLAGS = -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
161162
create_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
255256
compile_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

Comments
 (0)