This seems to work just fine for source file changes. But I cant seem to figure out how to add header file dependencies to it? The reason I didnt put the OBJ file rule in the makefile is because I dont want the .o files, I create an .a file out of all the .o's so I delete the .o's. So I skipped that step, thats y compiling and archiving are in one step.
Now if I add $(INCLUDES) in the OUT_LIB target then if I change the header file, it tries to compile it, and I can see y it does that. I want when the header file is changed it should remake all the $(SRCS) files or a subset of those that depend on it.