Initial
This commit is contained in:
57
Makefile
Normal file
57
Makefile
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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
|
||||
CC = g++
|
||||
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)
|
||||
Reference in New Issue
Block a user