autoconf

Autoconf: dnl vs.#



automake (2)

En configure.ac, las líneas comentadas con ''#'' que ocurren después de que AC_INIT aparecerá en el script de configuración resultante. dnl comentarios no. Uno de los propósitos de dnl es descartar líneas nuevas no deseadas en un esfuerzo por hacer que el script configure sea legible. Además, es apropiado usar comentarios dnl para documentar una macro m4; esos comentarios no tienen sentido en el script de configuración, ya que la macro m4 no aparece allí, solo su expansión.

Los comentarios en Makefile.am se tratan de manera diferente. Makefile.am no es procesado por m4, sino por automake, donde la convención es descartar líneas que comienzan con ## precedidas únicamente por espacios en blanco. (Aunque ### comentarios llevan a Makefile.in) Como Makefile.am no es procesado por m4, ''dnl'' no introduce un comentario.

El manual de Autoconfig establece que las líneas de comentario pueden comenzar con dnl o # .

¿Hay alguna diferencia entre ellos, alguna razón para usar uno en lugar de otro en cualquier circunstancia? ¿O es puramente una cuestión de gusto?


dnl es una macro m4 que descarta todas las entradas que le siguen en la misma línea (incluida la nueva línea). # no significa nada en m4, por lo que termina en el destino (Makefile?), en el que actúa como un comentario.

Entonces la diferencia clave es que dnl es un comentario en la fuente original, mientras que # convierte en un comentario en el archivo generado.