CC = gcc LD = gcc CFLAGS = -Wall SRC = $(wildcard *.c) OBJ = $(SRC:.c=.o) TAR = main DEP = $(SRC:.c=.mk) .PHONY: all all: $(OBJ) $(DEP) $(CC) -o $(TAR) $(OBJ) @rm -f $(DEP) $(DEP): %.mk: %.c @$(CC) $(CFLAG) -MM $< > $@ -include $(DEP) clean: rm -f $(TAR) $(OBJ) $(DEP)