CC ?= gcc CFLAGS ?= -lpthread SOURCES := $(wildcard *.c) OBJECTS := $(patsubst %.c, %.o, $(SOURCES)) .PHONY: all all: $(OBJECTS) .PHONY: debug debug: CFLAGS += -g -DDEBUG=1 .PHONY: clean clean: rm -rf *.o %.o: %.c $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@