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 :