Faster or slower is entirely a question of which does a better job of correctly computing the needed recompilations and extracting the maximum parallelism. Makefiles are frequently not very good at this. Either triggering unnecessary compilation steps or missing implicit dependencies that require the occasional "make clean." If the dependency graph is poor enough that developers learn to "always make clean" then you have pretty much eliminated the entire purpose of make and could just use a shells script. IDEs can be bad at this too, but are probably better than most hand built Makefiles.