Linux |
CentOS 4.8 |
|
make(1) |
make − utilitaire GNU make pour maintenir des groupes de programmes |
make [ −f makefile ] [ option ] ... cible ... |
Cette page de manuel est un extrait de la documentation de GNU make . Elle n’est mise à jour qu’occasionnellement, car le projet GNU n’utilise pas nroff. Pour obtenir une documentation complète et actuelle, référez-vous au fichier Info make.info qui est créé à partir du fichier source Texinfo make.texinfo. |
Le but de l’utilitaire make est de déterminer automatiquement quelles parties d’un gros programme ont besoin d’être recompilées, et exécute les commandes nécessaires pour les recompiler. Le manuel décrit l’implémentation GNU de make, qui a été écrite par Richard Stallman et Roland McGrath. Nos exemples montrent des programmes C, puisqu’ils sont les plus courants, mais vous pouvez utiliser make avec n’importe quel langage de programmation dont le compilateur peut être lancé en tant que commande shell. En fait, make n’est pas limité aux seuls programmes. Vous pouvez l’utiliser pour décrire n’importe quelle tâche dans laquelle certains fichiers doivent être mis à jour automatiquement à partir d’autres fichiers quand ceux-ci sont modifiés. Avant d’utiliser make, vous devez écrire un fichier appelé makefile qui décrit les relations entre les fichiers de votre programme, et qui fournit les commandes nécessaires à la mise à jour de chaque fichier. Dans un programme, le fichier exécutable sera typiquement mis à jour à partir de fichiers objets, qui sont eux-mêmes créés en compilant des fichiers sources. Quand un fichier makefile adéquat existe, chaque fois que vous modifierez certains fichiers sources, cette simple commande shell : |
make |
suffira pour effectuer toutes les recompilations nécessaires. Le programme make utilise la base de données du makefile et les dates de dernière modification des fichiers pour décider quels fichiers doivent être mis à jour. Pour chacun de ces fichiers, il exécute les commandes enregistrées dans la base de données. make exécute les commandes du makefile pour mettre à jour un ou plusieurs noms de cibles, où nom est typiquement un programme. Si aucune option −f n’est présente, make recherchera les makefiles GNUmakefile, makefile, et Makefile, dans cet ordre. Normalement, vous devriez nommer votre makefile en makefile ou Makefile. (Nous recommandons Makefile car il apparaît de façon bien visible près du début du listing d’un répertoire, juste à côté d’autres fichiers importants comme README.) Le premier nom recherché, GNUmakefile, n’est pas recommandé pour la plupart des makefiles. Vous ne devriez utiliser ce nom que si vous avez un makefile qui est spécifique au make GNU, et qui ne sera pas compris par d’autres versions de make. Si makefile est « − », l’entrée standard 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 la cible, ou si la cible n’existe pas. |
−b |
|||
−m |
Ces options sont ignorées, et sont présentes pour assurer la compatibilité avec d’autres versions de make. |
−C rép |
Se déplacer dans le répertoire rép avant de lire les makefiles ou de faire quoi que ce soit d’autre. Si de multiples 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. Cela est typiquement utilisé lors d’invocations récursives de make. |
−d |
Afficher des informations de débogage en plus du traitement normal. Les informations de débogage indiquent quels fichiers sont évalués pour la reconstruction, quels dates de fichiers sont comparées et avec quels résultats, quels fichiers ont réellement besoin d’être recréés, quelles règles implicites sont prises en compte et lesquelles sont appliquées -- bref, tout ce qu’il y a d’intéressant à savoir sur la manière dont make décide de ce qu’il a à faire. |
||
−e |
Donner la priorité aux variables d’environnement par rapport aux variables des makefiles. |
−f fichier |
Utiliser fichier en tant que makefile. |
−i |
Ignorer toutes les erreurs dans les commandes exécutées pour reconstruire les fichiers. |
−I rép |
Spécifie un répertoire rép où il faut rechercher les makefiles inclus. Si plusieurs options −I sont utilisées pour spécifier plusieurs répertoires, les répertoires seront parcourus dans l’ordre spécifié. à la différence des autres drapeaux de make, les répertoires fournis avec les drapeaux −I peuvent venir directement après le drapeau : −Irép est permis, tout comme −I rép. Cette syntaxe est admise pour assurer la compatibilité avec le drapeau −I du préprocesseur C. |
−j travaux |
Spécifie le nombre de travaux (commandes) à exécuter simultanément. S’il y a plus d’une option −j , seule la dernière sera utilisée. Si l’option −j est fournie sans argument, make ne limitera pas le nombre de travaux qui peuvent être exécutés simultanément. |
−k |
Continuer autant que possible après une erreur. Même si la création de la cible a échoué (et donc celle des cibles qui en dépendent), les autres dé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 y a d’autres travaux en cours d’exécution et que la charge moyenne est charge (un nombre en virgule flottante). Sans argument, cette option supprime une limite de charge fournie antérieurement. |
−n |
Afficher les commandes qui doivent être exécutées, mais ne pas les exécuter réellement. |
−o fichier |
Ne pas reconstruire le fichier même s’il est plus ancien que ses dépendances, et ne pas reconstruire quoi que ce soit à cause de modifications dans fichier. Le fichier est essentiellement traité comme étant très âgé et ses règles sont ignorées. |
−p |
Afficher la base de données (règles et valeurs des variables) qui résultent de la lecture des makefiles ; ensuite exécuter la commande comme elle est spécifiée. Cela affiche également le numéro de version fourni par l’interrupteur −v (voir en dessous). Pour afficher la base de données sans essayer de reconstruire un seul fichier, utilisez make −p −f/dev/null. |
||
−q |
« Mode question ». Ne pas lancer de commandes, ni afficher quoi que ce soit, mais uniquement renvoyer une valeur de retour qui vaut 0 si les cibles 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 également la liste des suffixes par défaut pour les règles sur les suffixes. |
||
−s |
Opération silencieuse ; ne pas afficher les commandes quand elles sont exécutées. |
||
−S |
Annuler l’effet de l’option −k . Cela n’est jamais nécessaire sauf pour un make récursif où −k peut être hérité à partir du make du plus haut niveau via MAKEFLAGS, ou si vous fournissez −k dans la variable MAKEFLAGS de votre environnement. |
||
−t |
« Touch »er les fichiers (les marquer comme étant à jour sans réellement les modifier) au lieu d’exécuter leurs commandes. Cela est utilisé pour faire croire à make que les commandes ont été exécutées, afin de tromper les invocations futures de make. |
||
−v |
Afficher le numéro de version de make , un copyright, une liste des auteurs et une notice indiquant qu’il n’y a aucune garantie. |
||
−w |
Afficher un message contenant le répertoire de travail avant et après d’autres traitements. Cela peut être utile pour débusquer des erreurs se produisant dans des imbrications compliquées de commandes make récursives. |
−W fichier |
Faire croire que le fichier cible vient juste d’être modifié. Quand c’est utilisé avec le drapeau −n , cela montre ce qui se passerait si vous modifiiez ce fichier. Sans −n, c’est presque la même chose que d’exécuter la commande touch sur le fichier donné avant de lancer make, sauf que la date de modification n’est modifiée que dans l’imagination de make. |
The GNU Make Manual |
Voir le chapitre « Problems and Bugs » dans The GNU Make Manual . |
Cette page de manuel a été écrite par Dennis Morse de l’université de Stanford. Elle a été retravaillée par Roland McGrath. |
Frédéric Delanoy <delanoy_f at yahoo.com>, 2002. |
make(1) |