[Btrfs-devel] [PATCH 2/2] Add per-file dependency tracking
Jan Engelhardt
jengelh at computergmbh.de
Thu Sep 13 10:11:28 PDT 2007
From: Jan Engelhardt <jengelh at computergmbh.de>
Adds 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.
---
Makefile | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
Index: btrfs-progs-0.8/Makefile
===================================================================
--- btrfs-progs-0.8.orig/Makefile
+++ btrfs-progs-0.8/Makefile
@@ -6,6 +6,7 @@ objects = ctree.o disk-io.o radix-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
More information about the Btrfs-devel
mailing list