@ -4,7 +4,9 @@
#
# This file supports building raylib library for the following platforms:
#
# > PLATFORM_DESKTOP (GLFW backend):
# > PLATFORM_DESKTOP
# - Defaults to PLATFORM_DESKTOP_GLFW
# > PLATFORM_DESKTOP_GLFW (GLFW backend):
# - Windows (Win32, Win64)
# - Linux (X11/Wayland desktop mode)
# - macOS/OSX (x64, arm64)
@ -55,9 +57,15 @@
# Define required environment variables
#------------------------------------------------------------------------------------------------
# Define target platform: PLATFORM_DESKTOP, PLATFORM_DRM, PLATFORM_ANDROID, PLATFORM_WEB
# Define target platform
PLATFORM ?= PLATFORM_DESKTOP
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
TARGET_PLATFORM = PLATFORM_DESKTOP_GLFW
e l s e
TARGET_PLATFORM = $( PLATFORM)
e n d i f
# Define required raylib variables
RAYLIB_VERSION = 5.0.0
RAYLIB_API_VERSION = 500
@ -119,7 +127,7 @@ HOST_PLATFORM_OS ?= WINDOWS
PLATFORM_OS ?= WINDOWS
# Determine PLATFORM_OS when required
i f e q ( $( PLATFORM ) , $( filter $ ( PLATFORM ) ,PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_WEB PLATFORM_ANDROID PLATFORM_DESKTOP_RGFW ) )
i f e q ( $( TARGET_ PLATFORM) , $( filter $ ( TARGET_ PLATFORM) ,PLATFORM_DESKTOP_GLFW PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW PLATFORM_WEB PLATFORM_ANDROID ) )
# No uname.exe on MinGW!, but OS=Windows_NT on Windows!
# ifeq ($(UNAME),Msys) -> Windows
ifeq ( $( OS) ,Windows_NT)
@ -152,7 +160,7 @@ ifeq ($(PLATFORM),$(filter $(PLATFORM),PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLA
endif
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D R M )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D R M )
UNAMEOS = $( shell uname)
ifeq ( $( UNAMEOS) ,Linux)
PLATFORM_OS = LINUX
@ -161,7 +169,7 @@ ifeq ($(PLATFORM),PLATFORM_DRM)
PLATFORM_SHELL = sh
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ W E B )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ W E B )
ifeq ( $( PLATFORM_OS) ,LINUX)
ifndef PLATFORM_SHELL
PLATFORM_SHELL = sh
@ -169,7 +177,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB)
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ W E B )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ W E B )
ifeq ( $( PLATFORM_OS) , WINDOWS)
# Emscripten required variables
EMSDK_PATH ?= C:/emsdk
@ -181,7 +189,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB)
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ A N D R O I D )
# Android architecture
# Starting at 2019 using arm64 is mandatory for published apps,
# Starting on August 2020, minimum required target API is Android 10 (API level 29)
@ -221,7 +229,7 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID)
e n d i f
# Define raylib graphics api depending on selected platform
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P_ G L F W )
# By default use OpenGL 3.3 on desktop platforms
GRAPHICS ?= GRAPHICS_API_OPENGL_33
#GRAPHICS = GRAPHICS_API_OPENGL_11 # Uncomment to use OpenGL 1.1
@ -229,7 +237,11 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
#GRAPHICS = GRAPHICS_API_OPENGL_43 # Uncomment to use OpenGL 4.3
#GRAPHICS = GRAPHICS_API_OPENGL_ES2 # Uncomment to use OpenGL ES 2.0 (ANGLE)
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P _ R G F W )
i f e q ( $( TARGET_PLATFORM ) , P L A T F O R M _ D E S K T O P _ S D L )
# By default use OpenGL 3.3 on desktop platform with SDL backend
GRAPHICS ?= GRAPHICS_API_OPENGL_33
e n d i f
i f e q ( $( TARGET_PLATFORM ) , P L A T F O R M _ D E S K T O P _ R G F W )
# By default use OpenGL 3.3 on desktop platforms
GRAPHICS ?= GRAPHICS_API_OPENGL_33
#GRAPHICS = GRAPHICS_API_OPENGL_11 # Uncomment to use OpenGL 1.1
@ -237,20 +249,16 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_RGFW)
#GRAPHICS = GRAPHICS_API_OPENGL_43 # Uncomment to use OpenGL 4.3
#GRAPHICS = GRAPHICS_API_OPENGL_ES2 # Uncomment to use OpenGL ES 2.0 (ANGLE)
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P _ S D L )
# By default use OpenGL 3.3 on desktop platform with SDL backend
GRAPHICS ?= GRAPHICS_API_OPENGL_33
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D R M )
i f e q ( $( TARGET_PLATFORM ) , P L A T F O R M _ D R M )
# On DRM OpenGL ES 2.0 must be used
GRAPHICS = GRAPHICS_API_OPENGL_ES2
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ W E B )
i f e q ( $( TARGET_PLATFORM ) , P L A T F O R M _ W E B )
# On HTML5 OpenGL ES 2.0 is used, emscripten translates it to WebGL 1.0
GRAPHICS = GRAPHICS_API_OPENGL_ES2
#GRAPHICS = GRAPHICS_API_OPENGL_ES3 # Uncomment to use ES3/WebGL2 (preliminary support).
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ A N D R O I D )
# By default use OpenGL ES 2.0 on Android
GRAPHICS = GRAPHICS_API_OPENGL_ES2
e n d i f
@ -260,7 +268,7 @@ endif
CC = gcc
AR = ar
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P_ G L F W )
ifeq ( $( PLATFORM_OS) ,OSX)
# OSX default compiler
CC = clang
@ -271,7 +279,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
CC = clang
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D R M )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D R M )
ifeq ( $( USE_RPI_CROSS_COMPILER) ,TRUE)
# Define RPI cross-compiler
#CC = armv6j-hardfloat-linux-gnueabi-gcc
@ -279,12 +287,12 @@ ifeq ($(PLATFORM),PLATFORM_DRM)
AR = $( RPI_TOOLCHAIN) /bin/$( RPI_TOOLCHAIN_NAME) -ar
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ W E B )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ W E B )
# HTML5 emscripten compiler
CC = emcc
AR = emar
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ A N D R O I D )
# Android toolchain (must be provided for desired architecture and compiler)
ifeq ( $( ANDROID_ARCH) ,arm)
CC = $( ANDROID_TOOLCHAIN) /bin/$( ANDROID_COMPILER_ARCH) -linux-androideabi$( ANDROID_API_VERSION) -clang
@ -316,13 +324,13 @@ endif
# -D_GNU_SOURCE access to lots of nonstandard GNU/Linux extension functions
# -Werror=pointer-arith catch unportable code that does direct arithmetic on void pointers
# -fno-strict-aliasing jar_xm.h does shady stuff (breaks strict aliasing)
CFLAGS = -Wall -D_GNU_SOURCE -D$( PLATFORM) -D$( GRAPHICS) -Wno-missing-braces -Werror= pointer-arith -fno-strict-aliasing
CFLAGS = -Wall -D_GNU_SOURCE -D$( TARGET_ PLATFORM) -D$( GRAPHICS) -Wno-missing-braces -Werror= pointer-arith -fno-strict-aliasing
i f n e q ( $( RAYLIB_CONFIG_FLAGS ) , N O N E )
CFLAGS += -DEXTERNAL_CONFIG_FLAGS $( RAYLIB_CONFIG_FLAGS)
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ W E B )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ W E B )
# NOTE: When using multi-threading in the user code, it requires -pthread enabled
CFLAGS += -std= gnu99
e l s e
@ -338,13 +346,13 @@ ifeq ($(RAYLIB_BUILD_MODE),DEBUG)
e n d i f
i f e q ( $( RAYLIB_BUILD_MODE ) , R E L E A S E )
ifeq ( $( PLATFORM) ,PLATFORM_WEB)
ifeq ( $( TARGET_ PLATFORM) ,PLATFORM_WEB)
CFLAGS += -Os
endif
ifeq ( $( PLATFORM) ,PLATFORM_DESKTOP)
ifeq ( $( TARGET_ PLATFORM) ,PLATFORM_DESKTOP_GLFW )
CFLAGS += -O1
endif
ifeq ( $( PLATFORM) ,PLATFORM_ANDROID)
ifeq ( $( TARGET_ PLATFORM) ,PLATFORM_ANDROID)
CFLAGS += -O2
endif
e n d i f
@ -354,10 +362,10 @@ endif
# -Wmissing-prototypes warn if a global function is defined without a previous prototype declaration
# -Wstrict-prototypes warn if a function is declared or defined without specifying the argument types
# -Werror=implicit-function-declaration catch function calls without prior declaration
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P_ G L F W )
CFLAGS += -Werror= implicit-function-declaration
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ W E B )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ W E B )
# -Os # size optimization
# -O2 # optimization level 2, if used, also set --memory-init-file 0
# -sUSE_GLFW=3 # Use glfw3 library (context/input management) -> Only for linker!
@ -375,7 +383,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB)
endif
#CFLAGS += -sGL_ENABLE_GET_PROC_ADDRESS
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ A N D R O I D )
# Compiler flags for arquitecture
ifeq ( $( ANDROID_ARCH) ,arm)
CFLAGS += -march= armv7-a -mfloat-abi= softfp -mfpu= vfpv3-d16
@ -411,19 +419,18 @@ ifeq ($(RAYLIB_LIBTYPE),SHARED)
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D R M )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D R M )
# without EGL_NO_X11 eglplatform.h tears Xlib.h in which tears X.h in
# which contains a conflicting type Font
CFLAGS += -DEGL_NO_X11
CFLAGS += -Werror= implicit-function-declaration
e n d i f
# Use Wayland display on Linux desktop
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P_ G L F W )
ifeq ( $( PLATFORM_OS) , LINUX)
ifeq ( $( GLFW_LINUX_ENABLE_X11) ,TRUE)
CFLAGS += -D_GLFW_X11
endif
ifeq ( $( GLFW_LINUX_ENABLE_WAYLAND) ,TRUE)
CFLAGS += -D_GLFW_WAYLAND
LDFLAGS += $( shell pkg-config wayland-client wayland-cursor wayland-egl xkbcommon --libs)
@ -457,26 +464,26 @@ CFLAGS += $(CUSTOM_CFLAGS)
INCLUDE_PATHS = -I.
# Define additional directories containing required header files
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P_ G L F W )
INCLUDE_PATHS += -Iexternal/glfw/include
ifeq ( $( PLATFORM_OS) ,BSD)
INCLUDE_PATHS += -I/usr/local/include
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P _ S D L )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P _ S D L )
INCLUDE_PATHS += -I$( SDL_INCLUDE_PATH)
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ W E B )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ W E B )
INCLUDE_PATHS += -Iexternal/glfw/include
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D R M )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D R M )
INCLUDE_PATHS += -I/usr/include/libdrm
ifeq ( $( USE_RPI_CROSSCOMPILER) , TRUE)
INCLUDE_PATHS += -I$( RPI_TOOLCHAIN_SYSROOT) /usr/include
INCLUDE_PATHS += -I$( RPI_TOOLCHAIN_SYSROOT) /opt/vc/include
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ A N D R O I D )
NATIVE_APP_GLUE = $( ANDROID_NDK) /sources/android/native_app_glue
# Include android_native_app_glue.h
INCLUDE_PATHS += -I$( NATIVE_APP_GLUE)
@ -502,7 +509,7 @@ endif
#------------------------------------------------------------------------------------------------
LDFLAGS = $( CUSTOM_LDFLAGS) -L. -L$( RAYLIB_RELEASE_PATH)
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P_ G L F W )
ifeq ( $( PLATFORM_OS) ,WINDOWS)
ifneq ( $( CC) , tcc)
LDFLAGS += -Wl,--out-implib,$( RAYLIB_RELEASE_PATH) /lib$( RAYLIB_LIB_NAME) dll.a
@ -518,17 +525,17 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
LDFLAGS += -Wl,-soname,lib$( RAYLIB_LIB_NAME) .$( RAYLIB_API_VERSION) .so -Lsrc -L/usr/local/lib
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P _ S D L )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P _ S D L )
LDFLAGS += -Wl,-soname,lib$( RAYLIB_LIB_NAME) .so.$( RAYLIB_API_VERSION)
LDFLAGS += -L$( SDL_LIBRARY_PATH)
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D R M )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D R M )
LDFLAGS += -Wl,-soname,lib$( RAYLIB_LIB_NAME) .so.$( RAYLIB_API_VERSION)
ifeq ( $( USE_RPI_CROSSCOMPILER) , TRUE)
LDFLAGS += -L$( RPI_TOOLCHAIN_SYSROOT) /opt/vc/lib -L$( RPI_TOOLCHAIN_SYSROOT) /usr/lib
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ A N D R O I D )
LDFLAGS += -Wl,-soname,libraylib.$( RAYLIB_API_VERSION) .so -Wl,--exclude-libs,libatomic.a
LDFLAGS += -Wl,--build-id -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings
# Force linking of library module to define symbol
@ -542,7 +549,7 @@ endif
# Define libraries required on linking: LDLIBS
# NOTE: This is only required for dynamic library generation
#------------------------------------------------------------------------------------------------
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P_ G L F W )
ifeq ( $( PLATFORM_OS) ,WINDOWS)
ifeq ( $( CC) , tcc)
LDLIBS = -lopengl32 -lgdi32 -lwinmm -lshell32
@ -570,7 +577,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
LDLIBS = -lglfw
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P _ S D L )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ D E S K T O P _ S D L )
ifeq ( $( PLATFORM_OS) ,WINDOWS)
LDLIBS = -static-libgcc -lopengl32 -lgdi32
endif
@ -582,16 +589,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_SDL)
endif
LDLIBS += -lSDL2 -lSDL2main
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D R M )
LDLIBS = -lGLESv2 -lEGL -ldrm -lgbm -lpthread -lrt -lm -ldl
ifeq ( $( RAYLIB_MODULE_AUDIO) ,TRUE)
LDLIBS += -latomic
endif
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
LDLIBS = -llog -landroid -lEGL -lGLESv2 -lOpenSLES -lc -lm
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P _ R G F W )
i f e q ( $( TARGET_PLATFORM ) , P L A T F O R M _ D E S K T O P _ R G F W )
ifeq ( $( PLATFORM_OS) ,WINDOWS)
# Libraries for Windows desktop compilation
LDLIBS = -lgdi32 -lwinmm -lopengl32
@ -615,6 +613,15 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_RGFW)
LDLIBS += -lm -framework Foundation -framework AppKit -framework OpenGL -framework CoreVideo
endif
e n d i f
i f e q ( $( TARGET_PLATFORM ) , P L A T F O R M _ D R M )
LDLIBS = -lGLESv2 -lEGL -ldrm -lgbm -lpthread -lrt -lm -ldl
ifeq ( $( RAYLIB_MODULE_AUDIO) ,TRUE)
LDLIBS += -latomic
endif
e n d i f
i f e q ( $( TARGET_PLATFORM ) , P L A T F O R M _ A N D R O I D )
LDLIBS = -llog -landroid -lEGL -lGLESv2 -lOpenSLES -lc -lm
e n d i f
# Define source code object files required
#------------------------------------------------------------------------------------------------
@ -624,8 +631,7 @@ OBJS = rcore.o \
rtext.o \
utils.o
i f e q ( $( PLATFORM ) , P L A T F O R M _ D E S K T O P )
i f e q ( $( TARGET_PLATFORM ) , P L A T F O R M _ D E S K T O P _ G L F W )
ifeq ( $( USE_EXTERNAL_GLFW) ,FALSE)
OBJS += rglfw.o
endif
@ -640,7 +646,7 @@ ifeq ($(RAYLIB_MODULE_RAYGUI),TRUE)
OBJS += raygui.o
e n d i f
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ A N D R O I D )
OBJS += android_native_app_glue.o
e n d i f
@ -652,14 +658,14 @@ all: raylib
# Compile raylib library
# NOTE: Release directory is created if not exist
raylib : $( OBJS )
i f e q ( $( PLATFORM ) , P L A T F O R M _ W E B )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ W E B )
# Compile raylib libray for web
#$(CC) $(OBJS) -r -o $(RAYLIB_RELEASE_PATH)/lib$(RAYLIB_LIB_NAME).bc
$( AR) rcs $( RAYLIB_RELEASE_PATH) /lib$( RAYLIB_LIB_NAME) .a $( OBJS)
@echo " raylib library generated (lib $( RAYLIB_LIB_NAME) .a)! "
e l s e
ifeq ( $( RAYLIB_LIBTYPE) ,SHARED)
ifeq ( $( PLATFORM) ,$( filter $( PLATFORM) ,PLATFORM_DESKTOP PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW) )
ifeq ( $( TARGET_ PLATFORM) ,$( filter $( TARGET_ PLATFORM) ,PLATFORM_DESKTOP_GLFW PLATFORM_DESKTOP_SDL PLATFORM_DESKTOP_RGFW) )
ifeq ( $( PLATFORM_OS) ,WINDOWS)
# NOTE: Linking with provided resource file
$( CC) -shared -o $( RAYLIB_RELEASE_PATH) /$( RAYLIB_LIB_NAME) .dll $( OBJS) $( RAYLIB_RES_FILE) $( LDFLAGS) $( LDLIBS)
@ -688,7 +694,7 @@ else
cd $( RAYLIB_RELEASE_PATH) && ln -fs lib$( RAYLIB_LIB_NAME) .$( RAYLIB_VERSION) .so lib$( RAYLIB_LIB_NAME) .so
endif
endif
ifeq ( $( PLATFORM) ,PLATFORM_DRM)
ifeq ( $( TARGET_ PLATFORM) ,PLATFORM_DRM)
# Compile raylib shared library version $(RAYLIB_VERSION).
# WARNING: you should type "make clean" before doing this target
$( CC) -shared -o $( RAYLIB_RELEASE_PATH) /lib$( RAYLIB_LIB_NAME) .so.$( RAYLIB_VERSION) $( OBJS) $( LDFLAGS) $( LDLIBS)
@ -696,7 +702,7 @@ else
cd $( RAYLIB_RELEASE_PATH) && ln -fsv lib$( RAYLIB_LIB_NAME) .so.$( RAYLIB_VERSION) lib$( RAYLIB_LIB_NAME) .so.$( RAYLIB_API_VERSION)
cd $( RAYLIB_RELEASE_PATH) && ln -fsv lib$( RAYLIB_LIB_NAME) .so.$( RAYLIB_API_VERSION) lib$( RAYLIB_LIB_NAME) .so
endif
ifeq ( $( PLATFORM) ,PLATFORM_ANDROID)
ifeq ( $( TARGET_ PLATFORM) ,PLATFORM_ANDROID)
$( CC) -shared -o $( RAYLIB_RELEASE_PATH) /lib$( RAYLIB_LIB_NAME) .$( RAYLIB_VERSION) .so $( OBJS) $( LDFLAGS) $( LDLIBS)
@echo " raylib shared library generated (lib $( RAYLIB_LIB_NAME) . $( RAYLIB_VERSION) .so)! "
# WARNING: symbolic links creation on Windows should be done using mklink command, no ln available
@ -851,7 +857,7 @@ clean: clean_shell_$(PLATFORM_SHELL)
clean_shell_sh :
rm -fv *.o $( RAYLIB_RELEASE_PATH) /lib$( RAYLIB_LIB_NAME) .a $( RAYLIB_RELEASE_PATH) /lib$( RAYLIB_LIB_NAME) .bc $( RAYLIB_RELEASE_PATH) /lib$( RAYLIB_LIB_NAME) .so* raygui.c $( RAYLIB_RELEASE_PATH) /*-protocol.h $( RAYLIB_RELEASE_PATH) /*-protocol-code.h
i f e q ( $( PLATFORM ) , P L A T F O R M _ A N D R O I D )
i f e q ( $( TARGET_ PLATFORM) , P L A T F O R M _ A N D R O I D )
rm -fv $( NATIVE_APP_GLUE) /android_native_app_glue.o
e n d i f