Why do we describe build procedures with Makefiles instead of shell scripts?
问题 Remark This is a variation on the question “What is the purpose of linking object files separately in a Makefile?” by user4076675 taking a slightly different point of view. See also the corresponding META discussion. Let us consider the classical case of a C project. The gcc compiler is able to compile and link programs in one step. We can then easily describe the build routine with a shell script: case $1 in build) gcc -o test *.c;; clean) rm -f test;; esac # This script is intentionally