Provided by: manpages-fr_4.26.0-1_all bug

NOM

       make — Utilitaire GNU Make pour la maintenance de groupes de programmes

SYNOPSIS

       make [OPTION]... [CIBLE]...

DESCRIPTION

       L'utilitaire  make  détermine  automatiquement  quels  éléments  d'un  programme  complexe  doivent  être
       recompilés et génère les commandes appropriées à cette recompilation. Ce manuel  décrit  l'implémentation
       GNU  de  make qui a été écrite 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  être  invoqué  à
       l'aide  de  l'interpréteur  de  commandes. En fait, l'usage de make ne se limite pas aux programmes. Vous
       pouvez aussi l'utiliser pour toute tâche où certains fichiers doivent être automatiquement mis à  jour  à
       partir d'autres fichiers chaque fois que ces autres fichiers sont modifiés.

       Préalablement  à  l'utilisation  de  make,  vous  devez écrire un fichier qui se nomme le makefile et qui
       décrit les relations entre les fichiers de votre programme et fournit les commandes pour  mettre  à  jour
       chacun  d'entre  eux.  Dans  un  programme,  le fichier exécutable est en général mis à jour à partir des
       fichiers objet, qui sont eux-mêmes générés en compilant les fichiers source.

       Une fois le fichier makefile écrit, chaque fois que vous modifierez un ou plusieurs fichiers  source,  la
       simple commande de l'interpréteur :

              make

       suffira  pour effectuer toutes les recompilations nécessaires. Le programme make utilise les descriptions
       du makefile et la date de dernière modification des fichiers pour déterminer lesquels doivent être mis  à
       jour. Pour chacun d'entre eux, il génère les commandes enregistrées dans le makefile.

       make  exécute  les  commandes  du makefile pour mettre à jour une ou plusieurs cibles, chacune des cibles
       correspondant habituellement à un programme. Si aucune option -f n'est présente, 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 apparaîtra alors en premier au début du listing du contenu d'un répertoire et à proximité d'autres
       fichiers importants comme README). Le premier nom de fichier recherché, GNUmakefile, n'est pas recommandé
       pour la plupart des makefile. Ce nom devra cependant être utilisé si votre makefile est spécifique à  GNU
       Make et ne sera pas compréhensible par les autres versions de make. Si makefile est « - », c'est l'entrée
       standard qui est lue.

       make  met  à  jour une cible si elle dépend de fichiers prérequis qui ont été modifiés depuis la dernière
       modification de cette cible ou si cette cible n'existe pas.

OPTIONS

       -b, -m
            Ces options sont ignorées pour des raisons de compatibilité avec les autres versions de make.

       -B, --always-make
            Traiter toutes les cibles de manière inconditionnelle.

       -C répertoire, --directory=répertoire
            Se positionner dans le répertoire répertoire avant de lire les makefile ou  de  faire  quoi  que  ce
            soit.  Si plusieurs options -C sont spécifiées, chacune d'entre elles est interprétée relativement à
            la précédente : -C / -C etc est équivalent à -C /etc. C'est souvent  le  cas  avec  les  invocations
            récursives de make.

       -d   Afficher  les  informations  de  débogage en plus du traitement normal. Les informations de débogage
            indiquent quels fichiers sont susceptibles d'être  reconstruits,  quelles  dates  de  fichiers  sont
            comparées  et  avec  quel  résultat, quels fichiers doivent être effectivement reconstruits, quelles
            règles implicites sont susceptibles d'être mises en jeu et lesquelles seront appliquées — en un  mot
            tout ce qui explique comment make décide ce qu'il doit faire.

       --debug[=DRAPEAUX]
            Afficher des informations de débogage en plus du traitement normal. Si DRAPEAUX est omis, l'effet de
            cette  option  est identique à celui de l'option -d. DRAPEAUX peut prendre les valeurs suivantes : a
            pour afficher toutes les informations de débogage (identique à -d), b pour un  débogage  basique,  v
            pour  un  débogage basique plus explicite, i pour afficher les règles implicites, j pour des détails
            sur l'invocation des commandes et m pour  un  débogage  lors  de  la  reconstruction  des  makefile.
            Utiliser n pour désactiver tous les drapeaux de débogage en cours.

       -e, --environment-overrides
            Donner  la  priorité  aux  variables  d'environnement  par  rapport aux variables contenues dans les
            makefile.

       -f fichier, --file=fichier, --makefile=fichier
            Utiliser fichier comme makefile.

       -i, --ignore-errors
            Ignorer toutes les erreurs provoquées par les commandes exécutées pour reconstruire les fichiers.

       -I répertoire, --include-dir=répertoire
            Spécifier un répertoire pour rechercher des makefile inclus. Si plusieurs options -I sont  utilisées
            pour  spécifier  plusieurs  répertoires,  la recherche s'effectue dans ces répertoires selon l'ordre
            dans lequel ils sont spécifiés. À la différence des arguments  des  autres  drapeaux  de  make,  les
            répertoires  spécifiés  par  le  drapeau  -I  peuvent  être  placés  directement  après le drapeau :
            -Irépertoire est correct, tout comme -I  répertoire.  Cette  syntaxe  est  permise  à  des  fins  de
            compatibilité avec le drapeau -I du préprocesseur C.

       -j [travaux], --jobs[=travaux]
            Spécifier  le nombre de travaux (commandes) à exécuter simultanément. S'il y a plusieurs options -j,
            c'est la dernière qui est prise en compte. Si l'option -j  est  spécifiée  sans  argument,  make  ne
            fixera  aucune limite au nombre de travaux pouvant être exécutés simultanément. Lorsque make invoque
            sub-make, toutes les instances de make vont se  coordonner  pour  exécuter  le  nombre  spécifié  de
            travaux  à  un  instant  t  :  voir  la section MAKE PARALLÈLE ET LE SERVEUR DE TRAVAUX pour plus de
            détails.

       --jobserver-fds [R,W]
            Option interne que make utilise pour passer aux sub-makes les numéros de descripteur de  fichier  de
            type  tube  en  lecture  et  écriture  du  serveur de travaux ; voir la section MAKE PARALLÈLE ET LE
            SERVEUR DE TRAVAUX pour plus de détails.

       -k, --keep-going
            Continuer autant que possible après une erreur. Alors que la cible qui a échoué,  ainsi  que  celles
            qui  en  dépendent,  ne peuvent pas être reconstruites, les autres dépendances de ces cibles peuvent
            tout de même être traitées.

       -l [charge], --load-average[=charge]
            Empêcher le démarrage de nouveaux travaux (commandes) si d'autres travaux sont en cours  d'exécution
            et  si  la charge moyenne est au moins de charge (un nombre en virgule flottante). Si aucun argument
            n'est spécifié, une éventuelle limitation de charge précédemment définie sera annulée.

       -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 exécutées,  mais  ne  pas  les  exécuter  (sauf  dans  certaines
            circonstances).

       -o fichier, --old-file=fichier, --assume-old=fichier
            Ne pas reconstruire le fichier fichier même s'il est plus ancien que les fichiers dont il dépend, et
            ne  pas  reconstruire  ce qui devrait l'être suite aux modifications de fichier. En gros, le fichier
            est considéré comme très ancien et ses règles sont ignorées.

       -O[type], --output-sync[=type]
            Lorsque plusieurs travaux sont exécutés en parallèle avec -j, s'assurer que les  sorties  de  chaque
            travail  sont  affichées  d'un  seul  bloc,  au  lieu d'être intercalées avec les sorties des autres
            travaux. Si type n'est pas spécifié ou égal à target, les sorties de  l'ensemble  du  traitement  de
            chaque  cible sont affichées d'un seul bloc. Si type est égal à line, les sorties de chaque ligne de
            commande d'une recette sont affichées d'un seul bloc. Si type est égal à  recurse,  les  sorties  de
            l'ensemble  d'un  make  récursif  sont  affichées d'un seul bloc. Enfin, si type est égal à none, la
            synchronisation des sorties est désactivée.

       -p, --print-data-base
            Afficher la base de données (les règles et les valeurs des variables) générée  par  l'interprétation
            des  makefile,  puis  fonctionner  de  la  manière  habituelle  ou selon instructions particulières.
            Afficher aussi les informations de version telles qu'elles sont fournies avec l'option -v (voir plus
            bas). Pour afficher la base de données sans essayer de reconstruire aucun fichier, utilisez make  -p
            -f/dev/null.

       -q, --question
            «  Mode  question  ».  N'exécuter  aucune commande et ne rien afficher ; renvoyer simplement un code
            d'état de sortie égal à zéro si les cibles spécifiées sont déjà à jour ou différent de zéro dans  le
            cas contraire.

       -r, --no-builtin-rules
            Empêcher  l'utilisation  des  règles  implicites  intégrées.  Effacer aussi la liste de suffixes par
            défaut pour les règles de suffixe.

       -R, --no-builtin-variables
            Ne définir aucune variable intégrée.

       -s, --silent, --quiet
            Opération silencieuse ; ne pas afficher les commandes à mesure qu'elles sont exécutées.

       -S, --no-keep-going, --stop
            Annuler l'effet de l'option -k. Ce n'est jamais nécessaire, sauf dans un make récursif  où  -k  peut
            être  hérité  du  make  de  plus  haut  niveau  à l'aide de MAKEFLAGS, ou si vous définissez -k dans
            MAKEFLAGS dans votre environnement.

       -t, --touch
            Marquer les fichiers comme modifiés (les marquer comme à jour sans vraiment les  modifier)  au  lieu
            d'exécuter  leurs  commandes.  Cette  fonctionnalité  permet  de prétendre que les commandes ont été
            exécutées afin de tromper les futures invocations de make.

       --trace
            Afficher des informations à  propos  de  la  situation  de  chaque  cible  (pourquoi  la  cible  est
            reconstruite et quelles commandes sont exécutées 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 répertoire de travail avant et  après  d'autres  traitements.  Cela
            peut  s'avérer utile pour rechercher des erreurs issues d'une imbrication complexe de commandes make
            récursives.

       --no-print-directory
            Désactiver -w, même si cette option avait été implicitement activée.

       -W fichier, --what-if=fichier, --new-file=fichier, --assume-new=fichier
            Prétendre que la cible fichier vient d'être modifiée. Lorsqu'elle est utilisée 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 même effet que d'exécuter une commande touch sur le fichier donné avant d'exécuter
            make, à la différence que la date de modification n'est modifiée que dans l'imagination de make.

       --warn-undefined-variables
            Afficher un avertissement lorsqu'une variable non définie est référencée.

CODE DE RETOUR

       GNU Make rend la main avec un état 0 si tous les makefile ont  été  traités  avec  succès  et  si  aucune
       construction  de  cible  n'a  échoué.  Un  état  1  sera renvoyé si le drapeau -q a été activé et si make
       détermine qu'une cible a besoin d'être reconstruite. Un état 2 sera renvoyé si une erreur est rencontrée.

VOIR AUSSI

       La documentation complète de make est maintenue sous forme de manuel Texinfo. Si les programmes  info  et
       make sont correctement installés sur votre système, la commande

              info make

       devrait   vous   donner   accès   au   manuel  complet.  Le  manuel  est  aussi  disponible  en  ligne  à
       https://www.gnu.org/software/make/manual/html_node/index.html

MAKE PARALLÈLE ET LE SERVEUR DE TRAVAUX

       L'option -j permet à l'utilisateur de demander à make d'exécuter les tâches en parallèle. Il  peut  aussi
       ajouter  un  argument  numérique à -j pour définir une limite supérieure au nombre de tâches parallèles à
       exécuter.

       Lorsque l'environnement de compilation fait qu'un make de  premier  niveau  invoque  des  sub-makes  (par
       exemple  lorsque  chaque  sous-répertoire  possède  son propre Makefile), aucune instance de make ne peut
       déterminer de manière isolée combien de tâches s'exécutent en parallèle ; maintenir le nombre  de  tâches
       en dessous d'une certaine limite serait donc impossible sans une communication entre toutes les instances
       de  make  en cours d'exécution. Des solutions comme faire en sorte que le make de premier niveau serve de
       contrôleur central sont envisageables ; on pourrait aussi utiliser d'autres mécanismes de synchronisation
       comme la mémoire partagée ou les sockets ; l'implémentation actuelle utilise  cependant  un  simple  tube
       partagé.

       Ce  tube  est  créé par le processus make de plus haut niveau et passé à tous les sub-makes. Le processus
       make de plus haut niveau écrit N-1 jetons d'un octet dans le tube (le processus make de plus haut  niveau
       est censé réserver un jeton pour lui-même). Chaque fois qu'un des processus make (y compris celui de plus
       haut  niveau)  doit effectuer une nouvelle tâche, il lit un octet depuis le tube partagé. S'il n'y a plus
       de jetons à lire depuis le tube, il doit attendre  qu'un  jeton  y  soit  écrit.  Lorsque  sa  tâche  est
       terminée,  le  processus  make  écrit  un  jeton dans le tube (débloquant ainsi le premier processus make
       attendant la présence d'un jeton, dans le cas où il n'en restait plus  de  disponible).  Pas  plus  de  N
       tâches ne peuvent être exécutées en même temps, car seulement N-1 jetons sont écrits dans le tube.

       Si le travail à exécuter n'est pas un sub-make, make ferme les descripteurs de fichier du tube du serveur
       de  travaux  avant  d'invoquer  les  commandes  pour que la commande n'interfère pas avec le jobserver et
       qu'elle ne trouve pas de descripteurs de fichiers inhabituels.

BOGUES

       Voir le chapitre « Problems and Bugs » dans Le manuel de GNU Make.

AUTEUR

       Cette page de manuel a été rédigée par Dennis Morse  de  l'Université  de  Stanford.  Des  mises  à  jour
       ultérieures ont été apportées par Mike Frysinger. Elle a été remaniée par Roland McGrath et est maintenue
       par Paul Smith.

COPYRIGHT

       Copyright © 1992-1993, 1996-2016 Free Software Foundation, Inc. Ce fichier 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 publiée par la Free Software Foundation ; la version 3 de la
       licence ou (selon votre choix) toute version ultérieure.

       GNU Make est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la  garantie
       implicite de QUALITÉ MARCHANDE ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la GNU General Public License
       pour plus de détails.

       Vous  devriez  avoir  reçu  une  copie  de  la  GNU General Public License avec ce programme. Dans le cas
       contraire, voir http://www.gnu.org/licenses/.

TRADUCTION

       La traduction française de cette page de manuel a été créée par Lucien Gentis <lucien.gentis@waika9.com>

       Cette traduction est une documentation libre ; veuillez vous  reporter  à  la  GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous  découvrez  un  bogue  dans la traduction de cette page de manuel, veuillez envoyer un message à
       debian-l10n-french@lists.debian.org.

GNU                                              28 février 2016                                         MAKE(1)