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.
(No soy un experto, pero) Sí, son específicos de Makefile.in y configure reemplaza al ensamblar el Makefile , consulte el Manual de Autoconf, sección 4.8 . Por ejemplo, @PACKAGE_NAME@ está definido por AC_INIT .
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 .