2024-02-26 03:14:30 +00:00

33 lines
686 B
Makefile

PROGRAM = program
CC = gcc
CXX = g++
CPPFLAGS = -Wall
CXXFLAGS = -std=c++20 -O2
LDFLAGS =
LDLIBS = -lglfw -lvulkan -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi
DEPFLAGS = -MMD -MP
# remark : I'm not really sure what DEPFLAGS stuff does...
SRCS := $(shell find src -name '*.cc')
OBJS := $(patsubst src/%.cc, build/%.o, $(SRCS))
DEPS := $(OBJS:%.o=%.d)
all: $(OBJS)
@echo === LINKING $(PROGRAM)
$(CXX) $(CXXFLAGS) -o $(PROGRAM) $(OBJS) $(LDFLAGS) $(LDLIBS)
build/%.o: src/%.cc
@echo === COMPILING $@
mkdir -p $(dir $@)
$(CXX) $(DEPFLAGS) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
run: all
./$(PROGRAM)
clean:
rm -f $(OBJS) $(DEPS) $(PROGRAM)
.PHONY: run clean
-include $(DEPS)