web-dev-qa-db-ja.com

autoconf save ./configureコマンドラインをconfig.hに保存

一部のバイナリは、バイナリ内でそれらを構成するために使用されるコマンドラインを保存します(私はそれを覚えていません、そうでなければ私はソースをチェックします)。 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++"
4
zje

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になります。

4
James O'Gorman