diff --git a/projects/VSCode/Makefile b/projects/VSCode/Makefile index 9794c1ab..83e26053 100644 --- a/projects/VSCode/Makefile +++ b/projects/VSCode/Makefile @@ -151,6 +151,9 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),LINUX) MAKE = make endif + ifeq ($(PLATFORM_OS),OSX) + MAKE = make + endif endif # Define compiler flags: @@ -279,17 +282,22 @@ ifeq ($(PLATFORM),PLATFORM_WEB) LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.bc endif +# Define a recursive wildcard function +rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) $(filter $(subst *,%,$2),$d)) + # Define all source files required -PROJECT_SOURCE_FILES ?= main.c +SRC_DIR = src +OBJ_DIR = obj # Define all object files from source files -OBJS = $(patsubst %.c, %.o, $(PROJECT_SOURCE_FILES)) +SRC = $(call rwildcard, *.c, *.h) +OBJS = $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) # For Android platform we call a custom Makefile.Android ifeq ($(PLATFORM),PLATFORM_ANDROID) MAKEFILE_PARAMS = -f Makefile.Android export PROJECT_NAME - export PROJECT_SOURCE_FILES + export SRC_DIR else MAKEFILE_PARAMS = $(PROJECT_NAME) endif @@ -305,7 +313,8 @@ $(PROJECT_NAME): $(OBJS) # Compile source files # NOTE: This pattern will compile every module defined on $(OBJS) -%.o: %.c +#%.o: %.c +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_PATHS) -D$(PLATFORM) # Clean everything