|
|
@ -21,7 +21,7 @@ |
|
|
|
#
|
|
|
|
#
|
|
|
|
#**************************************************************************************************
|
|
|
|
#**************************************************************************************************
|
|
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean |
|
|
|
.PHONY: all clean run |
|
|
|
|
|
|
|
|
|
|
|
# Define required environment variables
|
|
|
|
# Define required environment variables
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
@ -29,11 +29,11 @@ |
|
|
|
PLATFORM ?= PLATFORM_DESKTOP
|
|
|
|
PLATFORM ?= PLATFORM_DESKTOP
|
|
|
|
|
|
|
|
|
|
|
|
# Define project variables
|
|
|
|
# Define project variables
|
|
|
|
PROJECT_NAME ?= raylib_game
|
|
|
|
PROJECT_NAME ?= lemonade-stand
|
|
|
|
PROJECT_VERSION ?= 1.0
|
|
|
|
PROJECT_VERSION ?= 1.0
|
|
|
|
PROJECT_BUILD_PATH ?= .
|
|
|
|
PROJECT_BUILD_PATH ?= .
|
|
|
|
|
|
|
|
|
|
|
|
RAYLIB_PATH ?= ../../raylib
|
|
|
|
RAYLIB_PATH ?= ./lib/raylib
|
|
|
|
|
|
|
|
|
|
|
|
# Locations of raylib.h and libraylib.a/libraylib.so
|
|
|
|
# Locations of raylib.h and libraylib.a/libraylib.so
|
|
|
|
# NOTE: Those variables are only used for PLATFORM_OS: LINUX, BSD
|
|
|
|
# NOTE: Those variables are only used for PLATFORM_OS: LINUX, BSD
|
|
|
@ -52,11 +52,15 @@ USE_WAYLAND_DISPLAY ?= FALSE |
|
|
|
|
|
|
|
|
|
|
|
# PLATFORM_WEB: Default properties
|
|
|
|
# PLATFORM_WEB: Default properties
|
|
|
|
BUILD_WEB_ASYNCIFY ?= FALSE
|
|
|
|
BUILD_WEB_ASYNCIFY ?= FALSE
|
|
|
|
BUILD_WEB_SHELL ?= minshell.html
|
|
|
|
BUILD_WEB_SHELL ?= src/minshell.html
|
|
|
|
BUILD_WEB_HEAP_SIZE ?= 134217728
|
|
|
|
BUILD_WEB_HEAP_SIZE ?= 134217728
|
|
|
|
BUILD_WEB_RESOURCES ?= TRUE
|
|
|
|
BUILD_WEB_RESOURCES ?= TRUE
|
|
|
|
BUILD_WEB_RESOURCES_PATH ?= resources
|
|
|
|
BUILD_WEB_RESOURCES_PATH ?= resources
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BUILD_DIR ?= ./build
|
|
|
|
|
|
|
|
SRC_DIR ?= ./src
|
|
|
|
|
|
|
|
LIB_DIR ?= ./lib
|
|
|
|
|
|
|
|
|
|
|
|
# Use cross-compiler for PLATFORM_RPI
|
|
|
|
# Use cross-compiler for PLATFORM_RPI
|
|
|
|
ifeq ($(PLATFORM),PLATFORM_RPI) |
|
|
|
ifeq ($(PLATFORM),PLATFORM_RPI) |
|
|
|
USE_RPI_CROSS_COMPILER ?= FALSE
|
|
|
|
USE_RPI_CROSS_COMPILER ?= FALSE
|
|
|
@ -112,7 +116,7 @@ endif |
|
|
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP) |
|
|
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP) |
|
|
|
ifeq ($(PLATFORM_OS),LINUX)
|
|
|
|
ifeq ($(PLATFORM_OS),LINUX)
|
|
|
|
RAYLIB_PREFIX ?= ..
|
|
|
|
RAYLIB_PREFIX ?= ..
|
|
|
|
RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX))
|
|
|
|
RAYLIB_PATH ?= $(realpath $(RAYLIB_PREFIX))
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif |
|
|
|
endif |
|
|
|
|
|
|
|
|
|
|
@ -127,14 +131,16 @@ endif |
|
|
|
# Define raylib release directory for compiled library
|
|
|
|
# Define raylib release directory for compiled library
|
|
|
|
RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src
|
|
|
|
RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src
|
|
|
|
|
|
|
|
|
|
|
|
ifeq ($(PLATFORM),PLATFORM_WEB) |
|
|
|
ifeq ($(OS),Windows_NT) |
|
|
|
# Emscripten required variables
|
|
|
|
ifeq ($(PLATFORM),PLATFORM_WEB)
|
|
|
|
EMSDK_PATH ?= C:/emsdk
|
|
|
|
# Emscripten required variables
|
|
|
|
EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/upstream/emscripten
|
|
|
|
EMSDK_PATH ?= C:/emsdk
|
|
|
|
CLANG_PATH = $(EMSDK_PATH)/upstream/bin
|
|
|
|
EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/upstream/emscripten
|
|
|
|
PYTHON_PATH = $(EMSDK_PATH)/python/3.9.2-1_64bit
|
|
|
|
CLANG_PATH = $(EMSDK_PATH)/upstream/bin
|
|
|
|
NODE_PATH = $(EMSDK_PATH)/node/14.15.5_64bit/bin
|
|
|
|
PYTHON_PATH = $(EMSDK_PATH)/python/3.9.2-1_64bit
|
|
|
|
export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH):$$(PATH)
|
|
|
|
NODE_PATH = $(EMSDK_PATH)/node/14.15.5_64bit/bin
|
|
|
|
|
|
|
|
export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH):$$(PATH)
|
|
|
|
|
|
|
|
endif
|
|
|
|
endif |
|
|
|
endif |
|
|
|
|
|
|
|
|
|
|
|
# Define default C compiler: CC
|
|
|
|
# Define default C compiler: CC
|
|
|
@ -228,7 +234,7 @@ endif |
|
|
|
# Define include paths for required headers: INCLUDE_PATHS
|
|
|
|
# Define include paths for required headers: INCLUDE_PATHS
|
|
|
|
# NOTE: Some external/extras libraries could be required (stb, physac, easings...)
|
|
|
|
# NOTE: Some external/extras libraries could be required (stb, physac, easings...)
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external -I$(RAYLIB_PATH)/src/extras
|
|
|
|
INCLUDE_PATHS = -I$(SRC_DIR) -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external -I$(RAYLIB_PATH)/src/extras
|
|
|
|
|
|
|
|
|
|
|
|
# Define additional directories containing required header files
|
|
|
|
# Define additional directories containing required header files
|
|
|
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP) |
|
|
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP) |
|
|
@ -250,7 +256,7 @@ endif |
|
|
|
|
|
|
|
|
|
|
|
# Define library paths containing required libs: LDFLAGS
|
|
|
|
# Define library paths containing required libs: LDFLAGS
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
#------------------------------------------------------------------------------------------------
|
|
|
|
LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
|
|
|
|
LDFLAGS = -L$(SRC) -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
|
|
|
|
|
|
|
|
|
|
|
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP) |
|
|
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP) |
|
|
|
ifeq ($(PLATFORM_OS),WINDOWS)
|
|
|
|
ifeq ($(PLATFORM_OS),WINDOWS)
|
|
|
@ -381,7 +387,9 @@ PROJECT_SOURCE_FILES ?= \ |
|
|
|
screen_ending.c
|
|
|
|
screen_ending.c
|
|
|
|
|
|
|
|
|
|
|
|
# Define all object files from source files
|
|
|
|
# Define all object files from source files
|
|
|
|
OBJS = $(patsubst %.c, %.o, $(PROJECT_SOURCE_FILES))
|
|
|
|
OBJS = $(addprefix $(BUILD_DIR)/,$(patsubst %.c, %.o, $(PROJECT_SOURCE_FILES)))
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
SOURCE_FILES = $(addprefix $(SRC_DIR)/,$(PROJECT_SOURCE_FILES))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Define processes to execute
|
|
|
|
# Define processes to execute
|
|
|
@ -392,21 +400,22 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID) |
|
|
|
export PROJECT_NAME
|
|
|
|
export PROJECT_NAME
|
|
|
|
export PROJECT_SOURCE_FILES
|
|
|
|
export PROJECT_SOURCE_FILES
|
|
|
|
else |
|
|
|
else |
|
|
|
MAKEFILE_PARAMS = $(PROJECT_NAME)
|
|
|
|
MAKEFILE_PARAMS = $(BUILD_DIR)/$(PROJECT_NAME)
|
|
|
|
endif |
|
|
|
endif |
|
|
|
|
|
|
|
|
|
|
|
# Default target entry
|
|
|
|
# Default target entry
|
|
|
|
# NOTE: We call this Makefile target or Makefile.Android target
|
|
|
|
# NOTE: We call this Makefile target or Makefile.Android target
|
|
|
|
all: |
|
|
|
all: |
|
|
|
|
|
|
|
$(MAKE) -C $(RAYLIB_PATH)/src $(RAYLIB PLATFORM=$(PLATFORM) -B
|
|
|
|
$(MAKE) $(MAKEFILE_PARAMS)
|
|
|
|
$(MAKE) $(MAKEFILE_PARAMS)
|
|
|
|
|
|
|
|
|
|
|
|
# Project target defined by PROJECT_NAME
|
|
|
|
# Project target defined by PROJECT_NAME
|
|
|
|
$(PROJECT_NAME): $(OBJS) |
|
|
|
$(BUILD_DIR)/$(PROJECT_NAME): $(OBJS) |
|
|
|
$(CC) -o $(PROJECT_NAME)$(EXT) $(OBJS) $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
|
|
|
|
$(CC) -o $@$(EXT) $(OBJS) $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
|
|
|
|
|
|
|
|
|
|
|
|
# Compile source files
|
|
|
|
# Compile source files
|
|
|
|
# NOTE: This pattern will compile every module defined on $(OBJS)
|
|
|
|
# NOTE: This pattern will compile every module defined on $(OBJS)
|
|
|
|
%.o: %.c |
|
|
|
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c |
|
|
|
$(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_PATHS) -D$(PLATFORM)
|
|
|
|
$(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_PATHS) -D$(PLATFORM)
|
|
|
|
|
|
|
|
|
|
|
|
# Clean everything
|
|
|
|
# Clean everything
|
|
|
@ -434,3 +443,11 @@ ifeq ($(PLATFORM),PLATFORM_DRM) |
|
|
|
endif |
|
|
|
endif |
|
|
|
@echo Cleaning done
|
|
|
|
@echo Cleaning done
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
run: $(BUILD_DIR)/$(PROJECT_NAME)$(EXT) |
|
|
|
|
|
|
|
ifeq ($(PLATFORM),PLATFORM_DESKTOP) |
|
|
|
|
|
|
|
./$(BUILD_DIR)/$(PROJECT_NAME)
|
|
|
|
|
|
|
|
endif |
|
|
|
|
|
|
|
ifeq ($(PLATFORM),PLATFORM_WEB) |
|
|
|
|
|
|
|
npx live-server --open=$(BUILD_DIR)/$(PROJECT_NAME)$(EXT) \
|
|
|
|
|
|
|
|
--watch=$(BUILD_DIR)/*.wasm,$(BUILD_DIR)/*.html,$(BUILD_DIR)/*.js,$(BUILD_DIR)/*.data
|
|
|
|
|
|
|
|
endif |