MAKE
Section: Manuel de l’utilisateur Linux (1)
Updated: 22 août 1989
IndexReturn to Main Contents
NOM
make – Utilitaire GNU make pour maintenir des groupes de programmes
SYNOPSIS
make [-fmakefile] [ option ] …cible …
AVERTISSEMENT
Cette page de manuel est un extrait de la documentation deGNU make.Elle n’est mise à jour qu’occasionnellement, car le projet GNU n’utilisepas nroff. Pour obtenir une documentation complète et à jour, référez-vousau fichier Infomake.infoqui est créé à partir du fichier source Texinfomake.texinfo.
DESCRIPTION
Le but de l’utilitairemakeest de déterminer automatiquement quelles sont les parties d’un grosprogramme qu’il faut recompiler, et d’exécuter les commandes appropriées.Le manuel décrit l’implémentation GNU demake,qui a été écrite par Richard Stallman et Roland McGrath. Nos exemplesreprésentent des programmes C, puisqu’ils sont les plus courants, mais vouspouvez utilisermakeavec n’importe quel langage de programmation dont le compilateur peut êtrelancé en ligne de commandes. En fait,maken’est pas limité aux seuls programmes. Vous pouvez l’utiliser pour décriren’importe quelle tâche dans laquelle certains fichiers doivent être mis àjour automatiquement à partir d’autres fichiers quand ces derniers sontmodifiés.
Avant d’utilisermake,vous devez écrire un fichier appelémakefilequi décrit les relations entre les fichiers de votre programme, et quifournit les commandes nécessaires à la mise à jour de chacun d’entre eux.Dans un programme, le fichier exécutable sera typiquement mis à jour àpartir de fichiers objets, qui sont eux-mêmes créés en compilant desfichiers sources.
Quand un fichier makefile adéquat existe, chaque fois que vous modifierezcertains fichiers sources, cette simple commande shell :
- make
suffira pour effectuer toutes les recompilations nécessaires. Le programmemakeutilise la base de données du makefile et les dates de dernièremodification des fichiers pour décider quels fichiers doivent être mis àjour. Pour chacun de ces fichiers, il exécute les commandes enregistréesdans la base de données.
makeexécute les commandes dumakefilepour mettre à jour un ou plusieursnomsde cibles, oùnomest typiquement un programme. Si aucune option-fn’est présente,makerecherchera les makefilesGNUmakefile,makefileetMakefile,dans cet ordre.
Normalement, vous devriez appeler votre makefile soitmakefilesoitMakefile.(Nous recommandonsMakefilecar il apparaît de façon bien visible près du début du listage d’unrépertoire, juste à côté d’autres fichiers importants commeREADME.)Le premier nom recherché,GNUmakefile,n’est pas recommandé pour la plupart des makefiles. Vous ne devriezutiliser ce nom que si vous avez un makefile qui est spécifique aumakeGNU, et qui ne sera pas compris par d’autres versions demake.Simakefileest « - », l’entrée standard est lue.
makemet à jour une cible si elle dépend de fichiers prérequis qui ont étémodifiés depuis la dernière modification de la cible, ou si la ciblen’existe pas.
OPTIONS
- -b
- -m
- Ces options sont ignorées, et sont présentes pour assurer la compatibilitéavec d’autres versions demake.
- -C rép
- Se déplacer dans le répertoirerépavant de lire les makefiles ou de faire quoi que ce soit d’autre. Siplusieurs options-Csont spécifiées, chacune d’entre elles est interprétée relativement à laprécédente : « -C / -C etc » est équivalent à« -C /etc». Cela est typiquement utilisé lors d’invocationsrécursives demake.
- -d
- Afficher des informations de débogage en plus du traitement normal. Lesinformations de débogage indiquent quels fichiers sont évalués pour lareconstruction, quels dates de fichiers sont comparées et avec quelsrésultats, quels fichiers ont réellement besoin d’être recréés, quellesrègles implicites sont prises en compte et lesquelles sontappliquées - bref, tout ce qu’il y a d’intéressant à savoir sur lamanière dontmakedécide de ce qu’il doit faire.
- -e
- Donner la priorité aux variables d’environnement par rapport aux variablesdes makefiles.
- -f fichier
- Utiliserfichieren tant que makefile.
- -i
- Ignorer toutes les erreurs dans les commandes exécutées pour reconstruireles fichiers.
- -I rép
- Spécifie un répertoirerépoù il faut rechercher les makefiles inclus. Si plusieurs options-Isont utilisées pour spécifier plusieurs répertoires, les répertoires sontparcourus dans l’ordre spécifié. À la différence des autres drapeaux demake,les répertoires fournis avec les drapeaux-Ipeuvent venir directement après le drapeau :-Irépest permis, tout comme -I rép. Cette syntaxe est admise pourassurer la compatibilité avec le drapeau-Idu préprocesseur C.
- -j travaux
- Spécifie le nombre de travaux (commandes) à exécuter simultanément. S’il ya plus d’une option-j,seule la dernière est utilisée.Si l’option-jest fournie sans argument,makene limitera pas le nombre de travaux qui peuvent être exécutéssimultanément.
- -k
- Continuer autant que possible après une erreur. Même si la création de lacible a échoué (et donc celle des cibles qui en dépendent), les autresdépendances de ces cibles peuvent être traitées de la même façon.
- -l
- -l charge
- Spécifier qu’aucun nouveau travail (commande) ne doit être commencé s’il ya d’autres travaux en cours d’exécution et que la charge moyenne est d’aumoinscharge(un nombre en virgule flottante). Sans argument, cette option supprime unelimite de charge fournie antérieurement.
- -n
- Afficher les commandes qui seraient exécutées, mais ne pas les exécuterréellement.
- -o fichier
- Ne pas reconstruire lefichiermême s’il est plus ancien que ses dépendances, et ne pas reconstruire quoique ce soit à cause de modifications dansfichier.Le fichier est essentiellement traité comme étant très âgé et ses règlessont ignorées.
- -p
- Afficher la base de données (règles et valeurs des variables) qui résultentde la lecture des makefiles ; exécuter ensuite la commande comme elle estspécifiée. Cela affiche également les informations de version fournies parl’interrupteur-v(voir en dessous). Pour afficher la base de données sans essayer dereconstruire le moindre fichier, utilisez make -p -f /dev/null.
- -q
- « Mode question ». Ne pas lancer de commandes, ni afficher quoi que cesoit, mais uniquement renvoyer une valeur de retour qui vaut 0 si lescibles spécifiées sont déjà à jour, ou une valeur non nulle sinon.
- -r
- Interdire l’utilisation des règles implicites intégrées. Effacer égalementla liste des suffixes par défaut pour les règles se rapportant auxsuffixes.
- -s
- Opération silencieuse ; ne pas afficher les commandes quand elles sontexécutées.
- -S
- Annuler l’effet de l’option-k.Cela n’est jamais nécessaire sauf pour unmakerécursif où-kpeut être hérité à partir dumakedu plus haut niveau via MAKEFLAGS, ou si vous fournissez-kdans la variable MAKEFLAGS de votre environnement.
- -t
- « Touch »er les fichiers (les marquer comme étant à jour sans réellementles modif
ier) au lieu d’exécuter leurs commandes. Cela est utilisé pourfaire croire à make que les commandes ont été exécutées, afin de tromperles invocations futures demake. - -v
- Afficher la version demake,un copyright, une liste des auteurs et un avertissement indiquant l’absencede garantie.
- -w
- Afficher un message contenant le répertoire de travail avant et aprèsd’autres traitements. Cela peut être utile pour débusquer des erreurs seproduisant dans des imbrications compliquées de commandesmakerécursives.
- -W fichier
- Faire croire que lefichiercible vient d’être modifié. Quand c’est utilisé avec le drapeau-n,cela montre ce qui se passerait si ce fichier était modifié. Sans-n,cela revient presque à exécuter la commandetouchsur le fichier donné avant de lancermake,mis à part que la date de modification n’est modifiée que dansl’imagination demake.
VOIR AUSSI
BOGUES
Voir le chapitre « Problems and Bugs » dansThe GNU Make Manual.
AUTEUR
Cette page de manuel a été écrite par Dennis Morse de l’Université deStanford. Elle a été retravaillée par Roland McGrath.
TRADUCTION
Frédéric Delanoy <delanoy_f at yahoo.com>, 2002.
Index
desc:
MAKE
Section: Manuel de l’utilisateur Linux (1)
Updated: 22 août 1989
IndexReturn to Main Contents
NOM
make – Utilitaire GNU make pour maintenir des groupes de programmes
keywords: linux, manual, pages, make
[tags]linux, manual, pages, make[/tags]