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 dudevenv
before_remove_devenv::
: permet d'exécuter des commandes AVANT la suppression dudevenv
custom_remove_devenv::
: permet d'exécuter des commandes APRES la suppression dudevenv
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 durunenv
before_remove_runenv::
: permet d'exécuter des commandes AVANT la suppression durunenv
custom_remove_runenv::
: permet d'exécuter des commandes APRES la suppression durunenv
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
.