autoconf speichert ./configure-Befehlszeile in config.h

autoconf speichert ./configure-Befehlszeile in config.h

Einige Binärdateien speichern die Befehlszeile, die zur Konfiguration verwendet wurde, innerhalb der Binärdatei (ich erinnere mich an keine, bei der das der Fall ist, sonst würde ich die Quelle prüfen). Gibt es eine Möglichkeit, die verwendete Befehlszeile als Makro in configure.ac abzurufen?

Wenn ich meinen Code beispielsweise kompiliere mit

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

Ich möchte sparen--foo bar CXX=g++in ein Makro in config.h, damit es von der Binärdatei mit einem Flag ausgegeben werden kann

./myprogram -V
Version 1.0, compiled using: "./configure --foo bar CXX=g++"

Antwort1

configureist im Wesentlichen ein Shell-Skript, das aus M4-Makros gebootet wurde, sodass Sie $*alle Argumente für verwenden können ./configure. Wie indas Autoconf-HandbuchSie sollten dies direkt danach tun AC_INIT, zB:

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

Dies wird #define CONFIG_FLAGSin config.h sein.

verwandte Informationen