You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.2 KiB
81 lines
2.2 KiB
|
|
|
|
CXX = g++ |
|
CXXFLAGS = -std=c++11 -g -ggdb3 -Wall -I/usr/include/SDL2 -Iext/aixlog/include -Iext/stb_libs |
|
SRC_DIR = src |
|
OBJ_DIR = build |
|
|
|
# TODO: incorporate imgui into project files and not use gl3w |
|
# can also remove -ldl from LDFLAGS then |
|
CC = gcc |
|
GL3W_CFLAGS = -g -Wall -I$(IMGUI_DIR)/examples/libs/gl3w |
|
CXXFLAGS += -I$(IMGUI_DIR)/examples/libs/gl3w |
|
GL3W_LDFLAGS += -ldl |
|
|
|
# libGLEW needs to be >= 2.0.0 to use opengl core context |
|
# don't know a good way to require this in make without forcing a specific version |
|
LDFLAGS = -lSDL2 -lGLEW -lGL |
|
|
|
# IMGUI |
|
IMGUI_DIR = ext/imgui |
|
CXXFLAGS += -I$(IMGUI_DIR) \ |
|
-I$(IMGUI_DIR)/examples/ \ |
|
-I$(IMGUI_DIR)/examples/libs/gl3w |
|
IMGUI_SOURCES = $(IMGUI_DIR)/imgui.cpp \ |
|
$(IMGUI_DIR)/imgui_demo.cpp \ |
|
$(IMGUI_DIR)/imgui_draw.cpp \ |
|
$(IMGUI_DIR)/imgui_widgets.cpp \ |
|
$(IMGUI_DIR)/examples/imgui_impl_opengl3.cpp \ |
|
$(IMGUI_DIR)/examplex/imgui_impl_sdl.cpp \ |
|
|
|
IMGUI_OBJECTS := $(patsubst %.cpp, $(OBJ_DIR)/%.o, $(notdir $(IMGUI_SOURCES))) |
|
|
|
# assimp |
|
LDFLAGS += -lassimp |
|
|
|
|
|
SOURCES = $(wildcard $(SRC_DIR)/*.cpp) |
|
OBJECTS = $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SOURCES)) |
|
|
|
all: $(IMGUI_OBJECTS) $(OBJ_DIR)/gl3w.o $(OBJECTS) |
|
$(CXX) -o $(OBJ_DIR)/hexgame $(LDFLAGS) $(GL3W_LDFLAGS) $(OBJ_DIR)/*.o |
|
mkdir -p bin |
|
mv $(OBJ_DIR)/hexgame bin |
|
|
|
-include $(OBJ_DIR)/*.d |
|
|
|
$(OBJECTS): $(OBJ_DIR)/%.o : $(SRC_DIR)/%.cpp |
|
$(CXX) $(CXXFLAGS) -c -MMD $< -o $@ |
|
|
|
info: |
|
@echo "SOURCES:" |
|
@echo $(SOURCES) |
|
@echo "OBJECTS:" |
|
@echo $(OBJECTS) |
|
|
|
# NOTE: couldn't find a nicer way to put these object files into build directory :( |
|
$(OBJ_DIR)/imgui.o: |
|
$(CXX) -c $(CXXFLAGS) $(IMGUI_DIR)/imgui.cpp -o $@ |
|
|
|
$(OBJ_DIR)/imgui_demo.o: |
|
$(CXX) -c $(CXXFLAGS) $(IMGUI_DIR)/imgui_demo.cpp -o $@ |
|
|
|
$(OBJ_DIR)/imgui_draw.o: |
|
$(CXX) -c $(CXXFLAGS) $(IMGUI_DIR)/imgui_draw.cpp -o $@ |
|
|
|
$(OBJ_DIR)/imgui_widgets.o: |
|
$(CXX) -c $(CXXFLAGS) $(IMGUI_DIR)/imgui_widgets.cpp -o $@ |
|
|
|
$(OBJ_DIR)/imgui_impl_opengl3.o: |
|
$(CXX) -c $(CXXFLAGS) $(IMGUI_DIR)/examples/imgui_impl_opengl3.cpp -o $@ |
|
|
|
$(OBJ_DIR)/imgui_impl_sdl.o: |
|
$(CXX) -c $(CXXFLAGS) $(IMGUI_DIR)/examples/imgui_impl_sdl.cpp -o $@ |
|
|
|
$(OBJ_DIR)/gl3w.o: |
|
$(CC) -c $(GL3W_CFLAGS) $(IMGUI_DIR)/examples/libs/gl3w/GL/gl3w.c -o $@ |
|
|
|
.PHONY: clean |
|
clean: |
|
rm -f bin/hexgame $(OBJ_DIR)/* |
|
|
|
|