diff --git a/Makefile.include b/Makefile.include
index b93226d4622b1a3a07c0529ca4c3c597c0d46b1f..56cddaa8dc767717e3c86ae8203f99bbc44740e0 100644
--- a/Makefile.include
+++ b/Makefile.include
@@ -17,7 +17,7 @@ include $(RIOTBASE)/Makefile.modules
 
 # your binaries to link
 BASELIBS += $(RIOTBOARD)/$(BOARD)/bin/$(BOARD)_base.a
-BASELIBS += $(PROJBINDIR)/project.a
+BASELIBS += $(PROJBINDIR)/${PROJECT}.a
 
 PROJBINDIR =$(CURDIR)/bin
 
@@ -32,11 +32,24 @@ all: $(PROJBINDIR)/$(PROJECT).a
 
 ## your make rules
 ## Only basic example - modify it for larger projects!!
-$(PROJBINDIR)/$(PROJECT).a: $(PROJBINDIR)/$(PROJECT).o
-	$(AR) -rc $(PROJBINDIR)/project.a $(PROJBINDIR)/$(PROJECT).o 
-	
-$(PROJBINDIR)/$(PROJECT).o: main.c 
-	$(CC) $(CFLAGS) $(BOARDINCLUDE) $(INCLUDES) -c main.c -o $(PROJBINDIR)/$(PROJECT).o
+#$(PROJBINDIR)/$(PROJECT).a: $(PROJBINDIR)/$(PROJECT).o
+#	$(AR) -rc $(PROJBINDIR)/project.a $(PROJBINDIR)/$(PROJECT).o 
+
+# string array of all names of c files in dir
+SRC = $(wildcard *.c)
+
+# string array of all names replaced .c with .o 
+OBJ = $(SRC:%.c=${PROJBINDIR}/%.o)
+
+${PROJBINDIR}/$(PROJECT).a:  $(OBJ)
+	$(AR) -rc bin/$(PROJECT).a $(OBJ)
+
+# pull in dependency info for *existing* .o files
+-include $(OBJ:.o=.d)
+
+${PROJBINDIR}/%.o: %.c
+	@echo; echo "Compiling.... $*.c"; echo
+	$(CC) $(CFLAGS) $(BOARDINCLUDE) $(INCLUDES) -c $*.c -o bin/$*.o
 
 clean:
 	$(MAKE) -C $(RIOTBOARD) clean