autoconfは./configureコマンドラインをconfig.hに保存します。

autoconfは./configureコマンドラインをconfig.hに保存します。

一部のバイナリは、バイナリ内で設定するために使用されるコマンドラインを保持します(これを行ったことを覚えていません。そうでなければ、ソースコードを確認したかもしれません)。 configure.acでマクロとして使用するコマンドラインを取得する方法はありますか?

たとえば、次のようにコードをコンパイルすると、

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

保存したい--foo 列 CXX=g++フラグがバイナリによって出力されるように、config.hのマクロに

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

答え1

configureデフォルトではM4マクロでブートストラップされたシェルスクリプトなので、$*これを使用して./configureFollowを取得できます。自動構成マニュアルこれは直後に行う必要がありますAC_INIT。たとえば、次のようになります。

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

これは#define CONFIG_FLAGSconfig.hにあります。

関連情報