一部のバイナリは、バイナリ内でそれらを構成するために使用されるコマンドラインを保存します(私はそれを覚えていません、そうでなければ私はソースをチェックします)。 configure.acでマクロとして使用されるコマンドラインを取得する方法はありますか?
たとえば、コードを次のようにコンパイルすると、
./configure --foo bar CXX=g++
-foo bar CXX = g ++をconfig.hのマクロに保存して、フラグを使用してバイナリで出力できるようにします。
./myprogram -V
Version 1.0, compiled using: "./configure --foo bar CXX=g++"
configure
は基本的にM4マクロからブートストラップされたシェルスクリプトであるため、$*
を使用して./configure
へのすべての引数を取得できます。 autoconfマニュアル のように、AC_INIT
の直後にこれを行う必要があります。例:
AC_INIT([My Program], 1.0, ...)
config_flags="$*"
AC_DEFINE_UNQUOTED([CONFIG_FLAGS],["$config_flags"],[Flags passed to configure])
これはconfig.hで#define CONFIG_FLAGS
になります。