Au début était la flemme…
Ça fait bien longtemps que je me dit que quand j'écris un Makefile, je travaille trop.
Si on considère cet exemple :
main.o: main.c hello.h
gcc -o main.o -c main.c
Le kernel sait parfaitement que ma commande gcc -o main.o -c main.c
lit main.c, et écrit main.o.
Et donc que si main.c change, je dois recompiler, et si main.o n'est pas là, idem.
Et pareil pour les dépendances entre commandes.