small-projects/cpu-emulator/Makefile

38 lines
817 B
Makefile
Raw Normal View History

2025-04-11 01:15:38 +00:00
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)