La compilation des différents fichiers et leur concaténation en un exécutable peut être obtenue à l'aide d'un script plutôt simple. Cependant, si on ne veut pas tout recompiler à chaque fois qu'on change quelques lignes, il y a beaucoup de cas à gérer et le script devient complexe.
L'outil make est dédié à ce cas de figure. Il est plus rapide de configurer cet outil pour un projet donné que d'écrire un script complet.
Le travail de make est de créer ou mettre à jour des fichiers. Il faut pour cela lui indiquer quels fichiers générer, à partir de quelles sources, et avec quelles commandes. En comparant les dates de modification des sources avec celles des résultats, il évite de générer des fichiers déjà à jour.
Les informations dont make a besoin sont trop nombreuses pour être passées sur
la ligne de commande. Elles sont donc rassemblées dans un fichier de configuration dont
le nom par défaut est Makefile.
La plupart du temps, l'invocation de make est très simple :
bob@box:~$ make
Il utilise alors le contenu du fichier Makefile du répertoire courant pour
savoir quoi faire.
Parfois, un unique Makefile peut servir à décrire plusieurs usages
possibles. L'usage souhaité peut alors être indiqué en argument à la commande.
bob@box:~$ make install
L'usage par défaut (sans argument) permet généralement de compiler un projet. D'autres usages fréquents sont :