diff options
Diffstat (limited to 'src/Makefile')
| -rw-r--r-- | src/Makefile | 58 |
1 files changed, 37 insertions, 21 deletions
diff --git a/src/Makefile b/src/Makefile index 333abf6d..13be7844 100644 --- a/src/Makefile +++ b/src/Makefile @@ -54,6 +54,13 @@ ifeq ($(PLATFORM),PLATFORM_WEB) OPENAL_LIBTYPE = SHARED endif +# Use cross-compiler for PLATFORM_RPI +ifeq ($(PLATFORM),PLATFORM_RPI) + RPI_CROSS_COMPILE ?= YES + RPI_TOOLCHAIN ?= C:/SysGCC/Raspberry + RPI_TOOLCHAIN_SYSROOT ?= $(RPI_TOOLCHAIN)/arm-linux-gnueabihf/sysroot +endif + # Determine if the file has root access (only for installing raylib) # "whoami" prints the name of the user that calls him (so, if it is the root # user, "whoami" prints "root"). @@ -77,11 +84,6 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) endif endif -ifeq ($(PLATFORM),PLATFORM_RPI) - # RPI cross-compiler - RPI_CROSS_COMPILE ?= NO -endif - ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables EMSDK_PATH = C:/emsdk @@ -93,6 +95,17 @@ ifeq ($(PLATFORM),PLATFORM_WEB) EMSCRIPTEN=$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) endif +ifeq ($(PLATFORM),PLATFORM_ANDROID) + # Android required path variables + ANDROID_NDK = C:/android-ndk + ANDROID_TOOLCHAIN = C:/android_toolchain_arm_api16 + + # Android architecture: ARM or ARM64 + ANDROID_ARCH ?= ARM +endif + +RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/release/libs + # Define output directory for compiled library ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),WINDOWS) @@ -120,15 +133,6 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID) endif endif -ifeq ($(PLATFORM),PLATFORM_ANDROID) - # Android required path variables - ANDROID_NDK = C:/android-ndk - ANDROID_TOOLCHAIN = C:/android_toolchain_arm_api16 - - # Android architecture: ARM or ARM64 - ANDROID_ARCH ?= ARM -endif - # Define raylib graphics api depending on selected platform ifeq ($(PLATFORM),PLATFORM_DESKTOP) # By default use OpenGL 3.3 on desktop platforms @@ -164,8 +168,9 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) endif ifeq ($(PLATFORM),PLATFORM_RPI) ifeq ($(RPI_CROSS_COMPILE),YES) - # RPI cross-compiler - CC = armv6j-hardfloat-linux-gnueabi-gcc + # Define RPI cross-compiler + #CC = armv6j-hardfloat-linux-gnueabi-gcc + CC = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-gcc endif endif ifeq ($(PLATFORM),PLATFORM_WEB) @@ -186,6 +191,14 @@ endif # Default archiver program to pack libraries AR = ar +ifeq ($(PLATFORM),PLATFORM_RPI) + ifeq ($(RPI_CROSS_COMPILE),YES) + # Define RPI cross-archiver + #CC = armv6j-hardfloat-linux-gnueabi-gcc + AR = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-ar + endif +endif + # Android archiver (also depends on desired architecture) ifeq ($(PLATFORM),PLATFORM_ANDROID) ifeq ($(ANDROID_ARCH),ARM) @@ -249,9 +262,10 @@ INCLUDE_PATHS = -I. -Iexternal -Iexternal/include # Define additional directories containing required header files ifeq ($(PLATFORM),PLATFORM_RPI) # RPI requried libraries - INCLUDE_PATHS += -I/opt/vc/include - INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux - INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads + INCLUDE_PATHS += -I$(RPI_TOOLCHAIN_SYSROOT)/opt/vc/include + INCLUDE_PATHS += -I$(RPI_TOOLCHAIN_SYSROOT)/opt/vc/include/interface/vmcs_host/linux + INCLUDE_PATHS += -I$(RPI_TOOLCHAIN_SYSROOT)/opt/vc/include/interface/vcos/pthreads + INCLUDE_PATHS += -I$(RPI_TOOLCHAIN_SYSROOT)/opt/vc/include/interface/vcos/pthreads endif ifeq ($(PLATFORM),PLATFORM_ANDROID) # Android required libraries @@ -304,8 +318,9 @@ else ifeq ($(RAYLIB_LIBTYPE),SHARED) # NOTE: If using OpenAL Soft as static library, all its dependencies must be also linked in the shared library ifeq ($(PLATFORM_OS),WINDOWS) - $(CC) -shared -o $(RAYLIB_RELEASE_PATH)/raylib.dll $(OBJS) $(ALLIBS) -Lexternal/glfw3/lib/win32 -Lexternal/openal_soft/lib/win32 -lglfw3 -lgdi32 -Wl,--out-implib,$(RAYLIB_RELEASE_PATH)/libraylibdll.a + $(CC) -shared -o $(RAYLIB_RELEASE_PATH)/raylib.dll $(OBJS) -L$(RAYLIB_RELEASE_PATH) -lglfw3 -lgdi32 -lopenal32 -lwinmm -Wl,--out-implib,$(RAYLIB_RELEASE_PATH)/libraylibdll.a @echo "raylib dynamic library (raylib.dll) and import library (libraylibdll.a) generated!" + @echo "expected OpenAL Soft static library linking" endif ifeq ($(PLATFORM_OS),LINUX) # Compile raylib to shared library version for GNU/Linux. @@ -323,7 +338,8 @@ else @echo "raylib shared library generated (libraylib.so)!" endif else - # Compile raylib static library. + # Compile raylib static library + @echo raylib library release path is $(RAYLIB_RELEASE_PATH) $(AR) rcs $(RAYLIB_RELEASE_PATH)/libraylib.a $(OBJS) @echo "raylib static library generated (libraylib.a)!" ifeq ($(OPENAL_LIBTYPE),STATIC) |
