Comment ajouter des commentaires sur plusieurs lignes dans des makefiles

113

Existe-t-il un moyen de commenter plusieurs lignes dans les makefiles comme dans la syntaxe C /* */?

Ankur Agarwal
la source
Quelle version de make utilisez-vous?
egrunin

Réponses:

152

Non, il n'y a rien de tel que les /* */commentaires de style C dans les makefiles. Comme quelqu'un d'autre l'a suggéré, vous pouvez faire un commentaire sur plusieurs lignes en utilisant des continuations de ligne. Par exemple:

# This is the first line of a comment \
and this is still part of the comment \
as is this, since I keep ending each line \
with a backslash character

Cependant, j'imagine que vous cherchez probablement à commenter temporairement une partie de votre makefile pour des raisons de débogage, et ajouter une barre oblique inverse sur chaque ligne n'est pas vraiment pratique. Si vous utilisez GNU make, je vous suggère d'utiliser la ifeqdirective avec une expression délibérément fausse. Par exemple:

ifeq ("x","y")
# here's all your 'commented' makefile content...
endif

J'espère que cela pourra aider.

Eric Melski
la source
3
Notez que si vous voulez "commenter" des lignes dans une règle, ne mettez pas en retrait les lignes ifeq, endif.
Simon Márton
13

Je crois que la réponse est non. Le seul style de commentaire que je peux trouver est # pour chaque ligne, ou utilisez \ pour envelopper la première ligne.

BowlesCR
la source
10

Une note sur l'idée d'utiliser ifeqpour faire des commentaires sur plusieurs lignes dans make (1). Ils ne fonctionnent pas très bien car si vous écrivez ce qui suit:

ifeq (0,1)
    do not risk ifeq comments
    else trouble will find you
    ifeq is even worse
endif

Le texte entre ifeq et endif sera toujours analysé par make, ce qui signifie que vous ne pouvez pas écrire ce que vous voulez dans cette section. Et si vous voulez écrire un long commentaire et écrire ce que vous voulez dans le commentaire (y compris les signes $, deux-points et plus qui ont tous une signification pour make), vous devez commenter chaque ligne. Alors pourquoi le ifeq... :)

Mark Veltzer
la source
Ce n'est pas correct. La seule «analyse» que gmake fait du texte à l'intérieur de l'ifeq est de rechercher un endif. Vous pouvez le vérifier facilement avec un makefile qui a une syntaxe bidon dans l'ifeq. Tant que la condition de l'ifeq est évaluée comme fausse, gmake ignorera volontiers les erreurs de syntaxe dans l'ifeq.
Eric Melski
3
Ce n'est pas correct. Essayez l'exemple suivant: ifeq (0, 1) ne risquez pas ifeq commentaires else trouble vous trouvera endif L' autre au début de la ligne lance des erreurs. Alors d' autre , ifeq , ifneq et peut - être beaucoup d' autres symboles que je ne sais pas pour vous donner des problèmes.
Mark Veltzer
C'est un bon point, mais la majorité des erreurs syntaxiques seront ignorées.
Eric Melski
5
define BOGUS
lines
.....
endef
giuliolunati
la source
1
sujet aux mêmes mises en garde que ifeqje suppose, mais fonctionne pour moi. Merci!
jcomeau_ictx
3

Pas exactement ce que vous recherchez, mais un esprit similaire. Je ne m'attends pas à ce que ce soit la réponse acceptée, mais peut-être que cela peut aider quelqu'un.

En supposant que vous modifiez vos makefiles dans VIM:
choisissez les lignes que vous souhaitez commenter ou sélectionnez-les avec 'v'.

Ensuite, vous pouvez utiliser l'expression régulière s/^/#/pour commenter les lignes
et s/^#//les inverser.

--Remarques--

  • Pour ouvrir la ligne de commande vim, appuyez sur :(deux-points)
  • Pour préparer la commande pour les n lignes suivantes, utilisez .,+n
  • Une tabulation utilisant "v" ressemble à ceci: '<,'>s/^/#/
goodguy5
la source
2
Plus facile d'utiliser le mode bloc à la place. Allez au début de la première ligne pour commenter, ctrl-v, flèche vers le bas jusqu'à la fin, majuscule I, #, échapper. Pour supprimer les commentaires: ctrl-v, flèche vers le bas tout le chemin, x
brunch875
1

Dans emacs, vous pouvez marquer la région que vous souhaitez commenter et appuyer sur M-;(qui s'exécute comment-dwim).

Dror
la source