From: Jan Engelhardt Date: Fri, 14 Sep 2007 14:31:10 +0000 (-0400) Subject: Add per-file dependency tracking X-Git-Tag: upstream/0.20.rc1~367 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f6f922953798e6d2f5a864b48b4f37d998bb3a6d;p=platform%2Fupstream%2Fbtrfs-progs.git Add per-file dependency tracking The dependency archive ".depend" is only created once. Changing a C file's dependencies does not remake .depend, so make will recompile either too few or too many things. Use of per-.c file dependencies that are created and update during compile solve this. --- diff --git a/Makefile b/Makefile index cf1b6f9..02c7961 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ objects = ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o \ # CHECKFLAGS=-D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise \ -Wuninitialized -Wshadow -Wundef +DEPFLAGS = -Wp,-MMD,$(@D)/.$(@F).d,-MT,$@ INSTALL= install prefix ?= /usr/local @@ -22,16 +23,11 @@ endif .c.o: $(check) $< - $(CC) $(CFLAGS) -c $< + $(CC) $(DEPFLAGS) $(CFLAGS) -c $< all: $(progs) -$(progs): depend - -depend: - @$(CC) -MM $(ALL_CFLAGS) *.c 1> .depend - btrfsctl: btrfsctl.o gcc $(CFLAGS) -o btrfsctl btrfsctl.o @@ -51,12 +47,10 @@ quick-test: $(objects) quick-test.o gcc $(CFLAGS) -o quick-test $(objects) quick-test.o clean : - rm -f $(progs) cscope.out *.o .depend + rm -f $(progs) cscope.out *.o .*.d install: $(progs) $(INSTALL) -m755 -d $(DESTDIR)$(bindir) $(INSTALL) $(progs) $(DESTDIR)$(bindir) -ifneq ($(wildcard .depend),) -include .depend -endif +-include .*.d