発生IDLを用いたautomake/Makefile.am
-
26-09-2019 - |
質問
詳しくない読者のために説明IDLインタフェース記述言語)、抄録データ記述のための使用プラットフォーム(java,c,c++など)。私のプロジェクトは、依存関係Foo.c,Foo.h,FooHelper.c FooHelper.hあるいはFoo.を記述しています。どう実行し、任意のコマンドが変換される。idlの変化も含Foo.c FooHelper.cの構築ですか?
現在の私の試みを追加ルールのMakefile.amを多く所属しており、そのルールはコピーを生成したMakefile.
していました:
Foo.idl : Foo.idl
${the_generate_command}
その追加Foo.idlにmy_program_SOURCESな走the_generate_commandきます。
していた発生からIDLのと
Foo.c Foo.h FooHelper.h FooHelper.c : Foo.idl
${the_generate_command}
がんを追加Foo.c FooHelper.cをコンパイルのような過程をたどってきていない、生the_generate_command!
すべてのコードを含む、idl)で$PROJECT_DIR/src.
解決
rqの回答がほぼ正しいものに欠席カップルの微妙.してみてください:
bin_PROGRAMS = myprogram
myprogram_SOURCES = Foo.c Foo.h FooHelper.h FooHelper.c $(OTHER_SOURCES)
BUILT_SOURCES = Foo.c Foo.h FooHelper.h FooHelper.c
EXTRA_DIST = Foo.idl
MAINTAINERCLEANFILES = Foo.c Foo.h FooHelper.h FooHelper.c
Foo.c: Foo.idl
$(THE_GENERATE_COMMAND)
Foo.h FooHelper.h FooHelper.c: Foo.c
@if test -f $@; then \
touch $@; \
else \
## Recover from the removal of $@
rm -rf $<; \
$(MAKE) $(AM_MAKEFLAGS) $<; \
fi
追加のルール"の生成" Foo.h
, FooHelper.h
や FooHelper.c
から Foo.c
を並列をなしラ $(THE_GENERATE_COMMAND)
ます。このムの詳細に にAutomakeマニュアル る作業のための並列構造を作成する環境が整いましたまだまだ少な脆弱性はこちらユーザの場合、削除します(例えば) FooHelper.h
や FooHelper.c
開始平行うもの $(MAKE) $(AM_MAKEFLAGS) $<
回復のルールを複数回行なった。としてのマニュアルというこのレースできるようになれば、ユーザーは手動でmutilatesビルドツリーのものである make clean; make
できない。
の BUILT_SOURCES
線が確保され Foo.c
, Foo.h
, FooHelper.h
や FooHelper.c
建前を保存-管理することに myprogram
参照 ここでは にAutomakeのマニュアルを見なぜだけで追加する myprog_SOURCES
が不足する).の EXTRA_DIST
変数を確認する .idl
ファイルを獲れるよ make dist
(参考).
MAINTAINERCLEANFILES
定ファイルの削除を実行する場合 make maintainer-clean
;この遵守 GNU Makefile標準.参照変数の説明 にAutomakeマニュアル.