Fixed things up with header file dependencies in the makes ystem
authorKevin Klues <klueska@eecs.berkeley.edu>
Thu, 13 Aug 2009 03:37:46 +0000 (20:37 -0700)
committerKevin Klues <klueska@eecs.berkeley.edu>
Thu, 13 Aug 2009 03:37:46 +0000 (20:37 -0700)
Now if we modfiy a header file that a c file includes, the makesystem will be sure and recompile that file.

GNUmakefile
scripts/mergedep.pl [changed mode: 0755->0644]

index 8404e86..a442acf 100644 (file)
@@ -48,7 +48,7 @@ GCCPREFIX := $(shell if i386-ros-elf-objdump -i 2>&1 | grep '^elf32-i386$$' >/de
 endif
 
 # Default programs for compilation
-CC         := ivycc --deputy --gcc=$(GCCPREFIX)gcc
+CC         = ivycc --deputy --gcc=$(GCCPREFIX)gcc --save-temps=$(@D)
 AS         := $(GCCPREFIX)as
 AR         := $(GCCPREFIX)ar
 LD         := $(GCCPREFIX)ld
@@ -107,6 +107,8 @@ $(OBJDIR)/.deps: $(foreach dir, $(OBJDIRS), $(wildcard $(OBJDIR)/$(dir)/*.d))
        @mkdir -p $(@D)
        @$(PERL) scripts/mergedep.pl $@ $^
 
+# By including this file we automatically force the target that generates it 
+# to be rerun
 -include $(OBJDIR)/.deps
 
 # For deleting the build
old mode 100755 (executable)
new mode 100644 (file)
index 1730d53..4691742
@@ -30,7 +30,9 @@ sub readdeps {
        open(DEPFILE, $filename) or return 0;
        while (<DEPFILE>) {
                if (/([^:]*):([^\\:]*)([\\]?)$/) {
-                       my $target = $1;
+                       my $target = $filename;
+                       chop($target);
+                       $target = $target . "o";
                        my $deplines = $2;
                        my $slash = $3;
                        while ($slash ne '') {