|
@@ -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
|