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.
This commit is contained in:
Jan Engelhardt 2007-09-14 10:31:10 -04:00 committed by David Woodhouse
parent ddcaa0171a
commit f6f9229537
1 changed files with 4 additions and 10 deletions

View File

@ -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