2010-12-03 5 views
0

autotooledプロジェクトの一部を条件付きで有効にするには、autotoolsでサポートされていない言語で短いプログラムスタブをコンパイルするかどうかを確認する必要があります。Autoconf:サポートされていない言語のプログラムがコンパイルされていないか確認する

任意のコンパイラ実行ファイルを使用して、AC_TRY_COMPILEのようなものが必要です。テンポラリファイルを作成し、コードを書き、コンパイラを呼び出すと、ゼロに等しいかどうかを確認します(AC_CHECK_PROGS以前)。

これを行う最もエレガントな方法は何ですか? C、C++、Fortran 77の、FORTRAN、アーラン、オブジェクティブC、客観C++(source)(非推奨とAC_COMPILE_IFELSEで置き換えられている)

+2

'AC_TRY_COMPILE'に基づいて独自のマクロを作成します。また、Autoconf Archiveを試してみてください。他の人が書いているかもしれません:http://www.gnu.org/software/autoconf-archive/ – ptomato

答えて

2

AC_TRY_COMPILEは、言語の限られたセットをサポートします。

configure.acは、カスタムシェルコードを含めることができます - それはちょうどautoconf(本当にm4)によってスキップされます。なぜあなたのテストをシェルで書くのではないのですか?複数のテストを使用する場合は、AC_DEFUNにラップしてください。

+1

これは私が実際にやったことです。私はちょうどここで答えを書くことを忘れて、受け入れられたと印を付ける - とにかくあなたに感謝する。 – klickverbot

0

自動ツールプロジェクトのオプション部分を有効にするには、--enable-somethingオプションを使用する必要があります。ビルド環境で現在利用できるものに依存しないようにしてください。これは、自動ビルドのエラーをマスクする傾向があります。 (例:Linuxディストリビューションでは、ビルドの依存関係や環境上のその他の問題があるため、無駄なパッケージを配布することが知られていました)。