Aller au contenu

Basique

Indépendamment du type du projet (python, bash...), voici les quelques "targets" (cibles) toujours disponibles implémentés par l'inclusion de common_makefile.mk dans votre Makefile.

1. make help

Affiche la liste des "targets" (cibles) disponibles et une aide succinte.

2. make

La target par défaut est positionnée à all.

3. make all

Cette cible peut être overridée (avec la syntaxe all::) :

  • soit par un "common makefile" particulier (python par exemple)
  • soit par votre propre `Makefile``

Dans son comportement par défaut, elle est responsable de déployer des scripts utiles au fonctionnement des "common makefiles" en général et d'instancier un environnement d'exécution (appelé runenv) ou un environnement de développement (appelé devenv). Par défaut, c'est un environnement d'exécution qui est créé/mis à jour dans ce cas. make devenv permet de basculer sur un environnement de développement.

Vous pouvez également définir des commandes qui seront exécutées avant le comportement par défaut des "common makefiles" en définissant une cible before_all:: dans votre Makefile.

4. make devenv

Instancie un environnement de développement (devenv) par rapport à un environement de simple exécution (runenv). La différence n'a pas vraiment de sens au niveau du commmon_makefile.mk mais par exemple si vous avez également chargé python_makefile.mk, vous aurez la possibilité d'exprimer (et donc d'installer) des dépendances spécifiques à l'environnement de développement.

Cette cible devenv est automatiquement en prérequis de la plupart des autres, notamment : lint, reformat, coverage_*, check. Dans la plupart des cas, il n'est donc pas réellement nécessaire de l'invoquer explicitement.

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_devenv:: : permet d'exécuter des commandes AVANT l'instanciation du devenv
  • before_remove_devenv:: : permet d'exécuter des commandes AVANT la suppression du devenv
  • custom_remove_devenv:: : permet d'exécuter des commandes APRES la suppression du devenv

Vous pouvez également ajouter des pré-requis via la variable DEVENV_PREREQ (utilisez += pour ajouter des pré-requis).

5. make runenv

Instancie un environnement d'exécution (runenv) par rapport à un environement de développement (devenv). Voir la cible make devenv pour plus de détails.

ça sert à quoi un environnement d'exécution dans un Makefile ?

Le Makefile étant un outil de développement, la présence d'une distinction entre un environnement d'exécution simple et un environnement de développement peut sembler inutile mais cela permet différentes choses comme par exemple tester simplement le fonctionnement de son projet sans toutes les dépendances de développement.

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_runenv:: : permet d'exécuter des commandes AVANT l'instanciation du runenv
  • before_remove_runenv:: : permet d'exécuter des commandes AVANT la suppression du runenv
  • custom_remove_runenv:: : permet d'exécuter des commandes APRES la suppression du runenv

Vous pouvez également ajouter des pré-requis via la variable RUNENV_PREREQ (utilisez += pour ajouter des pré-requis).

6. make lint

Execute les "linters" configurés sur le projet.

Note

Selon les cas, cette cible peut ne rien faire du tout (aucun linter configuré).

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_lint:: : permet d'exécuter des commandes AVANT l'appel réel des linters.
  • custom_lint:: : permet de définir et exécuter vos propres linters (qui seront exécutées automatiquement APRES les linters standards).

7. make reformat

Reformate le projet avec les reformaters configurés.

Note

Selon les cas, cette cible peut ne rien faire du tout (aucun reformater configuré).

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_reformat:: : permet d'exécuter des commandes AVANT l'appel réel des reformaters.
  • custom_reformat:: : permet de définir et exécuter vos propres reformaters (qui seront exécutées automatiquement APRES les reformaters standards).

8. make check

Execute les tests configurés.

Note

Selon les cas, cette cible peut ne rien faire du tout (aucun outil de test configuré).

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_check:: : permet d'exécuter des commandes AVANT l'appel réel des checkers.
  • custom_check:: : permet de définir et exécuter vos propres checkers (qui seront exécutées automatiquement APRES les checkers standards).

9. make clean

Nettoie des fichiers temporaires.

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_clean:: : permet d'exécuter des commandes AVANT l'appel réel des nettoyages.
  • custom_clean:: : permet de définir et exécuter vos propres nettoyages (qui seront exécutées automatiquement APRES les nettoyages standards).

10. make distclean

Nettoie des fichiers temporaires de manière plus agressive, notamment les outils automatiquement téléchargés, les environnements virtuels constitués...

Note

La cible "distclean" invoque en dépendance la cible "clean".

Attention

Cette cible n'est pas overridable.

11. make coverage_console

Calcule une couverture du code par les tests et affiche le résultat dans la console.

Note

Selon les cas, cette cible peut ne rien faire du tout (aucun outil de test/coverage configuré).

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_coverage_console:: : permet d'exécuter des commandes AVANT l'appel réel des tests de couverture.
  • custom_coverage_console:: : permet de définir et exécuter vos propres tests de couverture (qui seront exécutées automatiquement APRES les tests de couverture standards).

12. make coverage_html

Calcule une couverture du code par les tests et fabrique un site statique HTML avec les détails.

Note

Selon les cas, cette cible peut ne rien faire du tout (aucun outil de test/coverage configuré).

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_coverage_html:: : permet d'exécuter des commandes AVANT l'appel réel des tests de couverture.
  • custom_coverage_html:: : permet de définir et exécuter vos propres tests de couverture (qui seront exécutées automatiquement APRES les tests de couverture standards).

13. make coverage_sonar

Calcule une couverture du code par les tests et fabrique un livrable pour intégration dans SonarQube.

Note

Selon les cas, cette cible peut ne rien faire du tout (aucun outil de test/coverage configuré).

Comment overrider ce processus ?

Vous avez plusieurs points d'extension :

  • before_coverage_sonar:: : permet d'exécuter des commandes AVANT l'appel réel des tests de couverture.
  • custom_coverage_sonar:: : permet de définir et exécuter vos propres tests de couverture (qui seront exécutées automatiquement APRES les tests de couverture standards).

14. make refresh_common_makefiles

Met à jour le répertoire .common_makefiles par rapport à la version disponible sur le site de référence (sur github.com).

L'URL de référence est donné par la variable : COMMON_MAKEFILES_GIT_URL (url git) et la branche utilisée par la variable COMMON_MAKEFILES_GIT_BRANCH.