make example makefile autoconf automake

example - Makefile.in y sustitución de variables



makefile ubuntu (2)

En Makefile.in veo una definición de variable donde un nombre de variable externa se encierra entre dos símbolos @

# @configure_input@ package = @PACKAGE_NAME@

¿De dónde provienen esas variables externas? Además, no pude encontrar en el manual de GNU qué significa exactamente encerrar una variable entre dos símbolos @ . ¿Es algo específico de Makefile.in?

Gracias.



Es una cosa autoconf.

Cuando ./configure termina de ejecutarse, genera y ejecuta un archivo llamado config.status , que es un script de shell que tiene el valor final de las sustituciones de variables (cualquier cosa declarada con AC_SUBST ).

Todo lo que se declara en AC_CONFIG_FILES es procesado por config.status , generalmente convirtiendo foo.in en foo .

Cuando automake procesa Makefile.am en Makefile.in , cualquier variable AC_SUBST queda automáticamente disponible (usando una declaración como FOO = @FOO@ ), a menos que sea suprimida por una llamada a AM_SUBST_NOTMAKE .