Files
enignE/Makefile

58 lines
1.9 KiB
Makefile
Raw Normal View History

2026-01-07 14:06:26 -05:00
# SRCS specifies which files to compile as part of the project
SRC_PATH = src
OBJ_PATH = obj
BIN_PATH = bin
APP_NAME = main
OBJS = $(OBJ_PATH)/*.o
APP_PATH = $(BIN_PATH)/$(APP_NAME)
CPP_SRC= $(wildcard $(SRC_PATH)/*.cpp)
C_SRC= $(wildcard $(SRC_PATH)/*.c)
OBJ= $(patsubst $(SRC_PATH)/%.cpp,$(OBJ_PATH)/%.o,$(CPP_SRC)) \
$(patsubst $(SRC_PATH)/%.c,$(OBJ_PATH)/%.o,$(C_SRC))
#//OBJ= $(OBJS:.o)
# CC specifies which compiler we're using
2026-01-28 10:48:41 -05:00
CC = clang++
2026-01-07 14:06:26 -05:00
RM = rm
# INCLUDE_PATHS specifies the additional include paths we'll need
INCLUDE_PATHS = -I/usr/local/include -I/opt/X11/include -I/opt/homebrew/opt/glew/include -I/opt/homebrew/opt/glfw/include -I./include -I/opt/homebrew/opt/glm/include
# LIBRARY_PATHS specifies the additional library paths we'll need
LIBRARY_PATHS = -L/usr/local/lib -L/opt/X11/lib -L/opt/homebrew/opt/glfw/lib -L/opt/homebrew/opt/glew/lib -L/opt/homebrew/opt/glm/lib
# COMPILER_FLAGS specifies the additional compilation options we're using
# -w suppresses all warnings
COMPILER_FLAGS = -w
ifeq ($(DEBUG),yes)
COMPILER_FLAGS += -g
endif
# LINKER_FLAGS specifies the libraries we're linking against
# Cocoa, IOKit, and CoreVideo are needed for static GLFW3.
# The glfw3 is deprecated. Now when you run 'brew install glfw3' you actually installed the glfw with version 3.x
LINKER_FLAGS = -lglfw -lGLEW -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo
# APP_NAME specifies the name of our exectuable
$(OBJ_PATH)/%.o: $(SRC_PATH)/%.cpp
$(CC) -o $@ -c $< $(COMPILER_FLAGS) $(INCLUDE_PATHS)
$(OBJ_PATH)/%.o: $(SRC_PATH)/%.c
$(CC) -o $@ -c $< $(COMPILER_FLAGS) $(INCLUDE_PATHS)
#This is the target that compiles our executable
$(APP_NAME) : $(OBJ)
$(CC) $(OBJ) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(COMPILER_FLAGS) $(LINKER_FLAGS) -o $(APP_PATH)
# clean all sources
clean:
$(RM) -rf $(OBJS)
$(RM) -rf $(SRC_PATH)/*o
$(RM) -rf $(APP_PATH)