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
.