2009-06-11 16 views
1

私はここ数日間、autotoolsでツールを開発しています。私が抱えている問題の1つは、メインアプリケーションコードの前にコンパイルする必要のある2つのライブラリがあることです。私はこれをどうやって行うのかよく分かりません。私のディレクトリ構造は下にあり、configure.acのスニペットも同様です。アプリケーションの前に依存関係のAutoconfコンパイル

AC_CONFIG_FILES([Makefile 
     src/Makefile 
     gtkworkbook/Makefile 
     csv/Makefile]) 
AC_OUTPUT 

私は両方にCSV/Makefileのgtkworkbook/Makefileののsrc/Makefileの前にコンパイルする必要があります。これを指定する方法はありますか?現在、アプリケーションコンパイルプロセス中に存在しないライブラリ(csv)に関するエラーが発生しています。

答えて

4

AC_CONFIG_FILES()内の項目の順序は、ビルド順に影響しません。あなたが想定しているautomakeを使用している場合、各Makefile.amのSUBDIRSリストにあるディレクトリを順番にあなたのディレクトリツリーをたどります。

AC_CONFIG_FILES()内の項目の順序は、一貫性/保守性のためにビルド順を反映する必要があります。所望の順序で構築するためにどのようにあなたのトップレベルのMakefile.amのSUBDIRSの

例:

SUBDIRS = csv gtkworkbook src 

また、この単純なケースのためにあなたがAC_CONFIG_FILES()とAC_OUTPUT(両方を必要としません)。あなたはAC_OUTPUT()へのあなたのリストのディレクトリを渡すことができます。

AC_OUTPUT([ 
    Makefile 
    src/Makefile 
    gtkworkbook/Makefile 
    csv/Makefile 
]) 
+0

次のものが必要です。すなわち SUBDIRS = CSV gtkworkbook SRC (アンソニーは彼がしたようはい私は答えを入力しました!)私はこれをしなかったが、それはない – dajobe

+0

思われたトップディレクトリのMakefile.amは同じサブディレクトリを持ち、AC_OUTPUTも変更されています。助言がありますか? –

+0

あなたのMakefile.amからの変更がMakefileに反映されていますか? GNU makeは検出可能な場合にこれを自動的に実行しようとしますが、configure.inを編集した後に再起動が必要になることがあります。あなたのautogenスクリプトを再実行してください。 – anthony

関連する問題