特定のバージョンのプロジェクトをビルドするように構成するバージョンを作成したいとします。autotoolsでオプションのバージョンのconfigureを有効にするには?
基本的に私は、コンパイラフラグ-Dfooと、いくつかの異なるコンパイラオプションでビルドするコマンドラインオプション に./configure --enable-FOO を取るのconfigureを作成したいです。
どうすればいいですか?
特定のバージョンのプロジェクトをビルドするように構成するバージョンを作成したいとします。autotoolsでオプションのバージョンのconfigureを有効にするには?
基本的に私は、コンパイラフラグ-Dfooと、いくつかの異なるコンパイラオプションでビルドするコマンドラインオプション に./configure --enable-FOO を取るのconfigureを作成したいです。
どうすればいいですか?
ここでは、2つの異なる質問をしています。まず、--enable
引数をconfigure
に追加する方法。第二に、この議論を特定の方法でビルドに与える方法。
引数を追加するには、AC_ARG_ENABLE
を使用します。これは、機能の名前、ヘルプ文字列、およびいくつかのオプションのアクションを取ります。したがって、たとえば:
AC_ARG_ENABLE(something, [enable the something feature])
(。現実には、あなたがここにヘルプ文字列を構築するためにAS_HELP_STRING
を使用する必要があります)
これはconfigure
に--enable-something
と--disable-something
を追加します。重要なことは、ユーザーが何をしたかを確認するために使用できる新しいenable_something
変数を追加することです。
Cコンパイラに渡されるマクロの定義は、AC_DEFINE
で行われます。だから、新しい変数をチェックして、あなたが望むものを達成することができます
if test "$enable_something" = yes; then
AC_DEFINE([SOMETHING], [1], [define to enable the something feature])
fi
これは-DSOMETHING=1
は、コンパイルに渡すことになります。またはconfig.h
に#define SOMETHING 1
を送信します。
これは、これを行う方法の概要です。https://autotools.io/autoconf/arguments.html – ptomato