Alguns binários salvam a linha de comando usada para configurá-los dentro do binário (não me lembro de nenhum que o faça, caso contrário verificaria a fonte). Existe uma maneira de obter a linha de comando usada como macro no configure.ac?
Por exemplo, se eu compilar meu código com
./configure --foo bar CXX=g++
Eu gostaria de salvar--foo barra CXX=g++para uma macro em config.h para que possa ser gerada pelo binário usando um sinalizador
./myprogram -V
Version 1.0, compiled using: "./configure --foo bar CXX=g++"
Responder1
configure
é essencialmente um script de shell inicializado a partir de macros M4, para que você possa usar $*
para capturar todos os argumentos para ./configure
. Conformeo manual do autoconfvocê deve fazer isso logo depois AC_INIT
, por exemplo:
AC_INIT([My Program], 1.0, ...)
config_flags="$*"
AC_DEFINE_UNQUOTED([CONFIG_FLAGS],["$config_flags"],[Flags passed to configure])
Isso estará #define CONFIG_FLAGS
em config.h.