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

3

Alguns binários salvam a linha de comando usada para configurá-los dentro do binário (não me lembro de nenhum deles, senão eu verificaria a origem). Existe uma maneira de obter a linha de comando usada como uma macro no configure.ac?

Por exemplo, se eu compilar meu código com

./configure --foo bar CXX=g++

Eu gostaria de salvar - foo bar CXX = g + + em uma macro em config.h para que possa ser gerado pelo binário usando um sinalizador

./myprogram -V
Version 1.0, compiled using: "./configure --foo bar CXX=g++"
    
por zje 06.04.2012 / 22:11

1 resposta

3

configure é essencialmente um script de shell autoinicializado a partir de macros M4, portanto, você pode usar $* para pegar todos os argumentos para ./configure . De acordo com o manual do autoconf , você deve fazer isso logo após AC_INIT , por exemplo :

AC_INIT([My Program], 1.0, ...)
config_flags="$*"
AC_DEFINE_UNQUOTED([CONFIG_FLAGS],["$config_flags"],[Flags passed to configure])

Isto irá #define CONFIG_FLAGS em config.h.

    
por 07.04.2012 / 00:54