CC = cc CFLAGS = -Wall -Wextra -Wpedantic -Werror -std=c99 -lX11 SRCDIR = src OBJDIR = obj SRC = $(wildcard $(SRCDIR)/*.c) OBJ = $(SRC:$(SRCDIR)/%.c=$(OBJDIR)/%.o) TARGET = pgb debug: CFLAGS += -g3 -fsanitize=address debug: all release: CFLAGS += -O3 -s release: all all: $(OBJDIR) $(TARGET) $(TARGET): $(OBJ) $(CC) $(CFLAGS) -o $@ $^ $(OBJDIR): mkdir -p $(OBJDIR) $(OBJDIR)/%.o: $(SRCDIR)/%.c $(CC) $(CFLAGS) -c $< -o $@ clean: rm -rf $(OBJDIR) $(TARGET) .PHONY: clean all debug release