In Makefile.in I see variable definition where an external variable name is enclosed between two @ symbols
# @configure_input@
package = @PACKAGE_NAME@
Where those external variables come from? Also, I couldn’t find in GNU manual what does exactly enclosing a variable between two @ symbols mean? Is it something specific to Makefile.in?
Thank you.
It’s an autoconf thing.
When
./configurefinishes running, it generates and executes a file calledconfig.status, which is a shell script that has the final value of the variable substitutions (anything declared withAC_SUBST).Anything that is declared in
AC_CONFIG_FILESis processed byconfig.status, usually by turningfoo.inintofoo.When automake processes
Makefile.amintoMakefile.in, anyAC_SUBSTvariable is automatically made available (using a declaration likeFOO = @FOO@), unless it’s suppressed by a call toAM_SUBST_NOTMAKE.