Provided by: manpages-fr_4.23.1-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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.