Use default rule for %.o: %.c
add dependencies on include files explictly
consistent naming: libruntime.a not runtime.a
all is also phony
break out CPPFLAGS from CFLAGS
getting -Wextra clean is harder