- La commande
make
sert à exécuter des tâches dépendantes les unes des autres:Exemples:
- Exécuter le jeu nécessite que l’exécutable
snake
soit créé- L’exécutable
snake
doit être compilé si les fichiers*.cpp
et*.hpp
sont plus récents que lui- etc.
- L’exécutable
- Exécuter le jeu nécessite que l’exécutable
- La commande
make
utilise par défaut le fichierMakefile
du dossier courant - Un fichier
Makefile
peut définir plusieurs cibles:snake
,uml/classes.png
, etc.
snake: *.cpp *.hpp
g++ *.cpp -lSDL2 -o snake
Avec:
snake
(danssnake:
): la cible (target)*.cpp *.hpp
: les prérequis (prerequisites) -> Ce sont les dépendances nécessaires à la création de la cible (snake
)g++ *.cpp *.hpp -lSDL2 -o snake
: la commande à exécuter pour créer la cible (snake
)
snake: *.cpp *.hpp
g++ *.cpp -lSDL2 -o $@
Avec:
$@
la valeur de la cible (icisnake
)
Note: Il existe aussi $^
la valeurs des prérequis (ici *.cpp *.hpp
).
CC=g++
EXE=snake
CPP=*.cpp
HPP=*.hpp
$(EXE): $(CPP) $(HPP)
$(CC) $(CPP) -lSDL2 -o $(EXE)
Cf. fichier snake/Makefile.