Qu'est-ce qu'un Makefile et comment fonctionne-t-il sous Linux?

Qu'est-ce qu'un Makefile et comment fonctionne-t-il sous Linux

Si souhaitez exécuter ou mettre à jour une tâche lorsque certains fichiers sont mis à jour, l'utilitaire make peut être utile. L'utilitaire make nécessite un fichier, makefile, qui définit un ensemble de tâches à exécuter.

Ce nom vous paraîtra familier car vous avez peut-être utilisé make pour compiler un programme à partir du code source. La plupart des projets open source utilisent make pour compiler un binaire exécutable final, qui peut être installé en utilisant make install.

À cette occasion comprenons comment ce type de fichiers fonctionne sous Linux.

Un fichier makefile Il se distingue essentiellement en quatre types de déclarations de base:

  • Commentaires
  • Variables
  • Règles explicites.
  • Règles implicites.

Les règles explicites indiquent à make quels fichiers dépendent d'autres fichiers, ainsi que les commandes nécessaires pour compiler un fichier particulier.

Alors que les implicites sont similaires aux explicites, mais avec la différence, elles indiquent les commandes à exécuter, mais make utilise les extensions de fichier pour déterminer les commandes à exécuter.

Dans cet exemple, nous n'allons pas utiliser ces deux derniers, Nous allons seulement commencer par imprimer le classique "Hello World" dans le terminal.

Pour cela, nous allons créer un répertoire vide avec le nom que vous souhaitez.

Dans ce cas, appelons ça "exemple-faire" et dans ce Nous allons créer un makefile avec le contenu suivant:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
echo "Hola Mundo"

maintenant exécutez le fichier en tapant make dans le répertoire, la sortie sera:

make
echo "Hola Mundo"
Hola Mundo

Comme vous pouvez le voir lorsque le makefile a été exécuté, la commande echo "Hello World" est affichée, suivie de la sortie de la commande réelle. Nous ne voulons souvent pas de ça. Pour supprimer cette sortie lorsque vous exécutez make, ajoutez simplement un "@" avant echo:

L'exemple pratique de ceci est:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"

maintenant nous pouvons recommencer à exécuter le makefile. La sortie juste ceci devrait montrer:

make
Hola Mundo

C'est assez basique. Mais comme vous le savez, les makefiles contiennent beaucoup de choses, dont ils indiquent les séquences à suivre.

Nous pouvons ajouter quelques séquences simples à ce fichier.

Comme nous allons faire est d'éditer le fichier comme suit:

#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Lors de la réexécution du makefile, cela n'exécutera que le premier objectif. C'est parce que seule la première cible du makefile est la cible par défaut.

Pour que l'exécution soit effectuée en séquence il faut l'indiquer dans le fichier avec "tout". Il est de la responsabilité de «là» d'appeler d'autres cibles.

all: esta_es_una_variable crear_un_archivo_nuevo
#este es un comentario, todo lo que este dentro de esta línea simplemente es ignorado
esta_es_una_variable:
@echo "Hola Mundo"
crear_un_archivo_nuevo:
@ echo "Estoy creando un archivo.txt ..."
touch  archivo.txt

Vous pouvez recommencer à exécuter make et vous verrez que dans le répertoire un fichier appelé "File.txt".

De la même façon il est possible de pouvoir exécuter une cible dans le fichier makefile, c'est généralement très utilisé.

Nous allons modifier notre fichier et nous allons ajouter ce qui suit à la fin:
clean:
@ echo "Voy a eliminar el archivo txt creado”
rm archivo*.txt

Vous pouvez réexécuter make et il recréera le fichier txt. Comme vous le verrez, il fera la même chose que la fois précédente. Mais maintenant, nous allons exécuter la cible qui se trouve à l'intérieur du fichier makefile.

Nous faisons cela avec:

make clean

Avec cela, nous pouvons apprendre quelque chose d'assez basique sur la création de fichiers et comment ils peuvent être très utiles si nous voulons automatiser certaines choses.

Évidemment, vous pouvez créer un fichier plus volumineux et plus complexe, mais ce n'est qu'un simple exemple pour les débutants (je m'inclus moi-même) qui apprennent comment cela fonctionne.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   arg0s dit

    Article très intéressant. Une question ... ce que vous appelez "variables" ne serait pas des fonctions ou des méthodes?

    1.    David Orange dit

      En fait, oui mon ami, merci pour la correction.
      À votre santé! 🙂

  2.   Pedro dit

    Excellent, j'espère que vous continuez à creuser.

  3.   manuelalcocer dit

    Eh bien, ni une chose ni une autre, https://www.gnu.org/software/make/manual/make.html, sont des "cibles"

  4.   manuelalcocer dit

    règles

  5.   Sebas dit

    Espérons qu'ils continueront à expliquer des choses comme celle-ci, «omniprésentes et élémentaires», du fonctionnement quotidien de Linux, ce que personne n'explique jamais avec la même passion que la façon dont ces «avantages et fonctionnement» sont prêchés.