MAKE(1) Commandes de l'utilisateur MAKE(1) NOM make -- Utilitaire GNU Make pour la maintenance de groupes de programmes SYNOPSIS make [OPTION]... [CIBLE]... DESCRIPTION L'utilitaire make determine automatiquement quels elements d'un programme complexe doivent etre recompiles et genere les commandes appropriees a cette recompilation. Ce manuel decrit l'implementation GNU de make qui a ete ecrite par Richard Stallman et Roland McGrath, et est actuellement entretenue par Paul Smith. Nos exemples montrent des programmes en langage C, car ils sont parmi les plus courants, mais vous pouvez utiliser make avec tout langage de programmation dont le compilateur peut etre invoque a l'aide de l'interpreteur de commandes. En fait, l'usage de make ne se limite pas aux programmes. Vous pouvez aussi l'utiliser pour toute tache ou certains fichiers doivent etre automatiquement mis a jour a partir d'autres fichiers chaque fois que ces autres fichiers sont modifies. Prealablement a l'utilisation de make, vous devez ecrire un fichier qui se nomme le makefile et qui decrit les relations entre les fichiers de votre programme et fournit les commandes pour mettre a jour chacun d'entre eux. Dans un programme, le fichier executable est en general mis a jour a partir des fichiers objet qui sont eux-memes generes en compilant les fichiers source. Une fois le fichier makefile ecrit, chaque fois que vous modifierez un ou plusieurs fichiers source, la simple commande de l'interpreteur : make suffira pour effectuer toutes les recompilations necessaires. Le programme make utilise les descriptions du makefile et la date de derniere modification des fichiers pour determiner lesquels doivent etre mis a jour. Pour chacun d'entre eux, il genere les commandes enregistrees dans le makefile. make execute les commandes du makefile pour mettre a jour une ou plusieurs cibles, chacune des cibles correspondant generalement a un programme. Si aucune option -f n'est presente, make va rechercher les fichiers de description GNUmakefile, makefile et Makefile, dans cet ordre. Normalement, vous devez nommer votre fichier makefile makefile ou Makefile (nous recommandons Makefile, car il apparaitra alors en premier au debut du listing du contenu d'un repertoire et a proximite d'autres fichiers importants comme README). Le premier nom de fichier recherche, GNUmakefile, n'est pas recommande pour la plupart des makefile. Ce nom devra cependant etre utilise si votre makefile est specifique a GNU Make et ne sera pas comprehensible par les autres versions de make. Si makefile est << - >>, c'est l'entree standard qui est lue. make met a jour une cible si elle depend de fichiers prerequis qui ont ete modifies depuis la derniere modification de cette cible ou si cette cible n'existe pas. OPTIONS -b, -m Ces options sont ignorees pour des raisons de compatibilite avec les autres versions de make. -B, --always-make Traiter toutes les cibles de maniere inconditionnelle. -C repertoire, --directory=repertoire Se positionner dans le repertoire repertoire avant de lire les makefile ou de faire quoi que ce soit. Si plusieurs options -C sont specifiees, chacune d'entre elles est interpretee relativement a la precedente : -C / -C etc est equivalent a -C /etc. C'est souvent le cas avec les invocations recursives de make. -d Afficher les informations de debogage en plus du traitement normal. Les informations de debogage indiquent quels fichiers sont susceptibles d'etre reconstruits, quelles dates de fichiers sont comparees et avec quel resultat, quels fichiers doivent etre effectivement reconstruits, quelles regles implicites sont susceptibles d'etre mises en jeu et lesquelles seront appliquees -- en un mot tout ce qui explique comment make decide ce qu'il doit faire. --debug[=DRAPEAUX] Afficher des informations de debogage en plus du traitement normal. Si DRAPEAUX est omis, l'effet de cette option est identique a celui de l'option -d. DRAPEAUX peut contenir un, plusieurs ou tous les noms suivants separes par des virgules ou des espaces. Seul le premier caractere est significatif : le reste peut etre omis : all pour la totalite des sorties de debogage (identique a -d), basic pour un debogage basique, verbose pour un debogage basique plus explicite, implicit pour afficher les operations de recherche de regles implicites, jobs pour des details sur l'invocation de commandes, makefile pour un debogage de la reconstruction des makefile, print pour montrer toutes les recettes qui sont appliquees, meme si elles sont silencieuses et why pour montrer la raison pour laquelle make a decide de recompiler chaque cible. Specifiez none pour desactiver tous les drapeaux de debogage precedents. -e, --environment-overrides Donner la priorite aux variables d'environnement par rapport aux variables contenues dans les makefile. -E chaine, --eval chaine Interpreter chaine en utilisant la fonction eval avant l'interpretation de tout makefile. -f fichier, --file=fichier, --makefile=fichier Utiliser fichier comme makefile. -i, --ignore-errors Ignorer toutes les erreurs provoquees par les commandes executees pour reconstruire les fichiers. -I repertoire, --include-dir=repertoire Specifier un repertoire pour rechercher des makefile inclus. Si plusieurs options -I sont utilisees pour specifier plusieurs repertoires, la recherche s'effectue dans ces repertoires selon l'ordre dans lequel ils sont specifies. A la difference des arguments des autres drapeaux de make, les repertoires specifies par le drapeau -I peuvent etre places directement apres le drapeau : -Irepertoire est correct, tout comme -I repertoire. Cette syntaxe est permise a des fins de compatibilite avec le drapeau -I du preprocesseur C. -j [travaux], --jobs[=travaux] Specifier le nombre de travaux (commandes) a executer simultanement. S'il y a plusieurs options -j, c'est la derniere qui est prise en compte. Si l'option -j est specifiee sans argument, make ne fixera aucune limite au nombre de travaux pouvant etre executes simultanement. --jobserver-style=style Le style de serveur de travaux (jobserver) a utiliser. Les differents styles possibles sont fifo, pipe ou sem (Windows seulement). -k, --keep-going Continuer autant que possible apres une erreur. Alors que la cible qui a echoue, ainsi que celles qui en dependent, ne peuvent pas etre reconstruites, les autres dependances de ces cibles peuvent tout de meme etre traitees. -l [charge], --load-average[=charge] Empecher le demarrage de nouveaux travaux (commandes) si d'autres travaux sont en cours d'execution et si la charge moyenne est au moins de charge (un nombre en virgule flottante). Si aucun argument n'est specifie, une eventuelle limitation de charge precedemment definie sera annulee. -L, --check-symlink-times Utiliser le dernier mtime entre les liens symboliques et la cible. -n, --just-print, --dry-run, --recon Afficher les commandes qui seraient executees, mais ne pas les executer (sauf dans certaines circonstances). -o fichier, --old-file=fichier, --assume-old=fichier Ne pas reconstruire le fichier fichier meme s'il est plus ancien que les fichiers dont il depend, et ne pas reconstruire ce qui devrait l'etre suite aux modifications de fichier. En gros, le fichier est considere comme tres ancien et ses regles sont ignorees. -O[type], --output-sync[=type] Lorsque plusieurs travaux sont executes en parallele avec -j, s'assurer que les sorties de chaque travail sont affichees d'un seul bloc, au lieu d'etre intercalees avec les sorties des autres travaux. Si type n'est pas specifie ou egal a target, les sorties de l'ensemble du traitement de chaque cible sont affichees d'un seul bloc. Si type est egal a line, les sorties de chaque ligne de commande d'une recette sont affichees d'un seul bloc. Si type est egal a recurse, les sorties de l'ensemble d'un make recursif sont affichees d'un seul bloc. Enfin, si type est egal a none, la synchronisation des sorties est desactivee. -p, --print-data-base Afficher la base de donnees (les regles et les valeurs des variables) generee par l'interpretation des makefile, puis fonctionner de la maniere habituelle ou selon instructions particulieres. Afficher aussi les informations de version telles qu'elles sont fournies avec l'option -v (voir plus bas). Pour afficher la base de donnees sans essayer de reconstruire aucun fichier, utilisez make -p -f/dev/null. -q, --question << Mode question >>. N'executer aucune commande et ne rien afficher ; renvoyer simplement un code d'etat de sortie egal a zero si les cibles specifiees sont deja a jour ou different de zero dans le cas contraire. -r, --no-builtin-rules Empecher l'utilisation des regles implicites integrees. Effacer aussi la liste de suffixes par defaut pour les regles de suffixe. -R, --no-builtin-variables Ne definir aucune variable integree. -s, --silent, --quiet Operation silencieuse ; ne pas afficher les commandes a mesure qu'elles sont executees. --no-silent Annuler l'effet de l'option -s. -S, --no-keep-going, --stop Annuler l'effet de l'option -k. -t, --touch Marquer les fichiers comme modifies (les marquer comme a jour sans vraiment les modifier) au lieu d'executer leurs commandes. Cette fonctionnalite permet de pretendre que les commandes ont ete executees afin de tromper les futures invocations de make. --trace Afficher des informations a propos de la situation de chaque cible (pourquoi la cible est reconstruite et quelles commandes sont executees pour cette reconstruction). -v, --version Afficher la version du programme make plus un copyright, une liste d'auteurs et un avertissement indiquant qu'il n'y a aucune garantie. -w, --print-directory Afficher un message contenant le repertoire de travail avant et apres d'autres traitements. Cela peut s'averer utile pour rechercher des erreurs issues d'une imbrication complexe de commandes make recursives. --no-print-directory Desactiver -w, meme si cette option avait ete implicitement activee. --shuffle[=MODE] Activer le brassage de l'ordre d'execution des cibles et de leurs prerequis. Les valeurs possibles de MODE sont les suivantes : none pour desactiver le mode brassage, random pour brasser les prerequis dans un ordre aleatoire, reverse pour brasser les prerequis dans l'ordre inverse ou un entier qui activera le mode random avec la valeur de graine specifiee. Si MODE est omis, sa valeur par defaut est random. -W fichier, --what-if=fichier, --new-file=fichier, --assume-new=fichier Pretendre que la cible fichier vient d'etre modifiee. Lorsqu'elle est utilisee avec le drapeau -n, cette option vous permet de voir ce qui se passerait si vous modifiez ce fichier. Sans -n, cette option produit le meme effet que d'executer une commande touch sur le fichier donne avant d'executer make, a la difference que la date de modification n'est modifiee que dans l'imagination de make. --warn-undefined-variables Afficher un avertissement lorsqu'une variable non definie est referencee. CODE DE RETOUR GNU Make rend la main avec un etat 0 si tous les makefile ont ete traites avec succes et si aucune construction de cible n'a echoue. Un etat 1 sera renvoye si le drapeau -q a ete active et si make determine qu'une cible a besoin d'etre reconstruite. Un etat 2 sera renvoye si une erreur est rencontree. VOIR AUSSI La documentation complete de make est maintenue sous forme de manuel Texinfo. Si les programmes info et make sont correctement installes sur votre systeme, la commande info make devrait vous donner acces au manuel complet. BOGUES Voir le chapitre << Problems and Bugs >> dans Le manuel de GNU Make. AUTEUR Cette page de manuel a ete redigee par Dennis Morse de l'Universite de Stanford. Des mises a jour ulterieures ont ete apportees par Mike Frysinger. Elle a ete remaniee par Roland McGrath et est maintenue par Paul Smith. COPYRIGHT Copyright (C) 1992-1993, 1996-2023 Free Software Foundation, Inc. Ce programme fait partie de GNU Make. GNU Make est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier selon les termes de la GNU General Public License telle qu'elle est publiee par la Free Software Foundation ; la version 3 de la licence ou (selon votre choix) toute version ulterieure. GNU Make est distribue dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans meme la garantie implicite de QUALITE MARCHANDE ou d'ADEQUATION A UN USAGE PARTICULIER. Voir la GNU General Public License pour plus de details. Vous devriez avoir recu une copie de la GNU General Public License avec ce programme. Dans le cas contraire, voir https://www.gnu.org/licenses/. TRADUCTION La traduction francaise de cette page de manuel a ete creee par Lucien Gentis Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . GNU 26 mai 2023 MAKE(1)