PROJECT = example CFLAGS += -Wall -Wextra -pedantic -Werror -std=c23 # For Debug Build CFLAGS += -g -O0 # For Release Build #CFLAGS += -O3 -DNDEBUG SOURCES = $(wildcard *.c) OBJECTS = $(SOURCES:.c=.o) DEPENDS = $(SOURCES:.c=.d) DEPFLAGS = -MMD -MP $(PROJECT): $(OBJECTS) $(CC) $(OBJECTS) -o $@ %.o: %.c $(CC) $(CFLAGS) $(DEPFLAGS) -c $< -o $@ -include $(DEPENDS) .PHONY: clean all all: $(PROJECT) clean: rm -f $(PROJECT) $(OBJECTS) $(DEPENDS)