Skip to content

Latest commit

 

History

History
70 lines (46 loc) · 1.72 KB

coaching_08.org

File metadata and controls

70 lines (46 loc) · 1.72 KB

G.Tech 1 – Projet#7 – C++ sous Linux / Git

Commande make et Makefile

Principe

  • 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.
  • La commande make utilise par défaut le fichier Makefile du dossier courant
  • Un fichier Makefile peut définir plusieurs cibles: snake, uml/classes.png, etc.

Example de fichier Makefile “manuel”

snake: *.cpp *.hpp
        g++ *.cpp -lSDL2 -o snake

Avec:

  • snake (dans snake:): 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)

Example de fichier Makefile “automatisé”

snake: *.cpp *.hpp
        g++ *.cpp -lSDL2 -o $@

Avec:

  • $@ la valeur de la cible (ici snake)

Note: Il existe aussi $^ la valeurs des prérequis (ici *.cpp *.hpp).

Example de fichier Makefile “automatisé” avec variables de configuration

CC=g++
EXE=snake
CPP=*.cpp
HPP=*.hpp

$(EXE): $(CPP) $(HPP)
        $(CC) $(CPP) -lSDL2 -o $(EXE)

Snake: Fichier Makefile mis à jour pour compiler

Cf. fichier snake/Makefile.