make : automatiser quelques tâches avec un Makefile

"Vue de rails de la ligne 14 du metro parisien, en station"Quand on parle d'automatisation, on pense tout de suite à des outils qui permettent du déploiement automatisé, comme Ansible, Chef, Puppet ou Salt. Mais bien avant d'en arriver là, il y a eu (GNU) make.

Après m'être pas mal amusé avec Fabric, en ce moment je me met à Ansible (mieux vaut tard que jamais). J'apprécie de pouvoir, assez rapidement, effacer des fichiers temporaires ou effectuer certaines vérifications. Avoir un Makefile est une solution qui, pour le moment, m'apparaît comme simple et élegante.

Ainsi, dans le répertoire où je stocke mes recettes Fabric, j'ai créé un fichier nommé, sans surprise, Makefile. Son contenu est à peu près le suivant :

clean:
        rm -f *.pyc *.pyo *~ */*.pyc */*.pyo */*~ .*~ .DS_Store */.DS_Store

pep8:
        pep8 *.py

J'ai donc deux cibles :

  • la première, clean, fait comme on s'en doute, du nettoyage, c'est-à-dire de la suppression de fichiers temporaires ou de fichiers qui n'ont pas vocation à servir (comme les paramètres d'affichage de répertoire sous macOS) ;
  • la deuxième me permet de vérifier que mon code Python est bien conforme aux standards de style Python, regroupés dans le PEP8 (voir chez Sam et Max pour une explication en français, mais attention, c'est un peu NSFW).

Une fois que je suis dans mon répertoire, et que j'ai fini d'éditer mes fichiers, je peux vérifier que tout cela respecte le PEP8 avec la commande “make pep8”. Pour faire le ménage dans mes fichiers, ça sera “make clean”. Ah, si je pouvais réellement faire le ménage chez moi comme ça ;)

En fait, make est bien plus complet et complexe que cela, et ne se limite pas à faire le ménage. On peut, et c'est pour cela qu'il existe, compiler et installer des programmes. Je m'en sers aussi pour installer mon petit confort sur une nouvelle machine.

Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux ! Et puis n'hésitez pas à proposer vos propres cibles make en commentaires !

Crédit photo : Daniel Lobo - Meteoro.