33 lines
686 B
Makefile
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)
|