
objs := main.o sub.o

test : $(objs)
	gcc -o test $^


# 需要判断是否存在依赖文件
# .main.o.d .sub.o.d
dep_files := $(foreach f, $(objs), .$(f).d)
dep_files := $(wildcard $(dep_files))

# 把依赖文件包含进来
ifneq ($(dep_files),)
  include $(dep_files)
endif


%.o : %.c
	gcc -Wp,-MD,.$@.d  -c -o $@  $<
	

clean:
	rm *.o test -f

distclean:
	rm  $(dep_files) *.o test -f