Cómo agregar comentarios de varias líneas en archivos MAKE

113

¿Hay alguna manera de comentar varias líneas en archivos MAKE como en la sintaxis de C /* */?

Ankur Agarwal
fuente
¿Qué versión de make estás usando?
egrunin

Respuestas:

152

No, no hay nada como los /* */comentarios de estilo C en los archivos MAKE. Como sugirió otra persona, puede hacer un comentario de varias líneas utilizando continuaciones de línea. Por ejemplo:

# 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

Sin embargo, imagino que probablemente esté buscando comentar temporalmente una parte de su archivo MAKE por razones de depuración, y agregar una barra invertida en cada línea no es realmente práctico. Si está utilizando GNU make, le sugiero que utilice la ifeqdirectiva con una expresión deliberadamente falsa. Por ejemplo:

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

Espero que ayude.

Eric Melski
fuente
3
Tenga en cuenta que si desea "comentar" líneas en una regla, no aplique sangría a las líneas ifeq, endif.
Simon Márton
13

Creo que la respuesta es no. El único estilo de comentario que puedo encontrar es # para cada línea, o usar \ para ajustar la primera línea.

BowlesCR
fuente
10

Una nota sobre la idea de usar ifeqpara hacer comentarios de varias líneas en make (1). No funcionan muy bien ya que si escribes lo siguiente:

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

El texto entre ifeq y endif seguirá siendo analizado por make, lo que significa que no puede escribir lo que quiera en esa sección. Y si desea escribir un comentario largo y escribir lo que quiera en el comentario (incluidos los signos $, dos puntos y más, que tienen un significado para hacer), debe comentar cada línea. Entonces, ¿por qué el ifeq... :)

Mark Veltzer
fuente
Eso no es correcto. El único "parsing" que hace gmake del texto dentro del ifeq es buscar un endif. Puede verificar esto fácilmente con un archivo MAKE que tenga una sintaxis falsa dentro del ifeq. Siempre que la condición en ifeq se evalúe como falsa, gmake ignorará felizmente los errores de sintaxis dentro del ifeq.
Eric Melski
3
Eso no es correcto. Pruebe el siguiente ejemplo: ifeq (0, 1) no se arriesguen los comentarios ifeq, de lo contrario, el problema lo encontrará endif El else al comienzo de la línea arroja errores. Entonces , si no , ifeq , ifneq y posiblemente muchos otros símbolos que no conozco te darán problemas.
Mark Veltzer
Ese es un buen punto, pero la mayoría de los errores sintácticos se ignorarán.
Eric Melski
5
define BOGUS
lines
.....
endef
giuliolunati
fuente
1
sujeto a las mismas advertencias ifeqque supongo, pero funciona para mí. ¡Gracias!
jcomeau_ictx
3

No es exactamente lo que estás buscando, pero tiene un espíritu similar. No espero que sea la respuesta aceptada, pero tal vez pueda ayudar a alguien.

Suponiendo que está editando sus archivos MAKE en VIM:
decida qué líneas desea comentar o selecciónelas con 'v'.

Luego puede usar la expresión regular s/^/#/para comentar las líneas
y s/^#//revertirlas.

--Notas--

  • Para abrir la línea de comando de vim, presione :(dos puntos)
  • Para preparar el comando para las siguientes 'n' líneas, use .,+n
  • Una línea de muestra que usa "v" se ve así: '<,'>s/^/#/
goodguy5
fuente
2
En su lugar, es más fácil usar el modo de bloqueo. Vaya al comienzo de la primera línea para comentar, ctrl-v, flecha hacia abajo hasta el final, I mayúscula, #, escape. Para eliminar los comentarios: ctrl-v, flecha hacia abajo hasta el final, x
brunch875
1

En emacs, puede marcar la región que desea comentar y presionar M-;(que se ejecuta comment-dwim).

Dror
fuente