38 lines
817 B
Makefile
38 lines
817 B
Makefile
|
CXX := g++
|
||
|
CXXFLAGS := -Wall -Wextra -std=c++17 -O2
|
||
|
TARGET := emulator
|
||
|
|
||
|
# Source files
|
||
|
SRC := main.cpp \
|
||
|
imgui/imgui.cpp \
|
||
|
imgui/imgui_draw.cpp \
|
||
|
imgui/imgui_widgets.cpp \
|
||
|
imgui/imgui_tables.cpp \
|
||
|
imgui/imgui_demo.cpp \
|
||
|
imgui/imgui_impl_glfw.cpp \
|
||
|
imgui/imgui_impl_opengl3.cpp
|
||
|
|
||
|
# Object file targets in build/
|
||
|
OBJ := $(SRC:%.cpp=build/%.o)
|
||
|
|
||
|
# Include and library paths for MSYS2
|
||
|
INCLUDES := -Iimgui -IC:/msys64/mingw64/include
|
||
|
LIBS := -LC:/msys64/mingw64/lib -lglfw3 -lopengl32
|
||
|
|
||
|
all: $(TARGET)
|
||
|
|
||
|
# Linking
|
||
|
$(TARGET): $(OBJ)
|
||
|
$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
|
||
|
|
||
|
# Build .o files into build/ directory
|
||
|
build/%.o: %.cpp
|
||
|
@if not exist "$(dir $@)" mkdir "$(dir $@)"
|
||
|
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
|
||
|
|
||
|
run: $(TARGET)
|
||
|
./$(TARGET)
|
||
|
|
||
|
clean:
|
||
|
@rm -rf build $(TARGET)
|