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