autoconf save ./configure linha de comando para config.h

autoconf save ./configure linha de comando para config.h

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_FLAGSem config.h.

informação relacionada