私は、より大きなシステムの一部として使用するCORBA .idl
の定義をコンパイルするために、最初のMakefileを作成しています。私はomniORBのomniidl
プログラムを使用して、file.idl
を取得し、file.hh
とfileSK.cc
を作成します。各.idl
は依存性がなく、コマンドomniidl -bcxx file.idl
で作成されます。.idlsをコンパイルするためのMakefile
GNU Makeチュートリアルを読むことで、パターンルールが私の必要とするものを正確に実行できるようです。 .idl
変換のターゲットは、GNUマニュアルのSection 10.5.2のbison
の例に触発されています。私の主な質問は、実際にこれらのルールをどのように引き起こすのかです。私はすべてのターゲットを入れて、.idl
に依存関係を導入しようとしましたが、役に立たないです。
OMNIIDL := omniidl
DEPENDFLAGS := -g
CXX := g++
CXXFLAGS := $(DEPENDFLAGS) -Wall -Werror -ansi
%.o : %.cc
$(CXX) $(CXXFLAGS) -c $< -o [email protected]
%.hh %SK.cc : %.idl
$(OMNIIDL) -bcxx $<
all : $(wildcard *.idl)
通常、自動生成コードはどこに配置されるべきですか?コンパイルされた.o
ファイルをプロジェクトの/lib
または/include
ディレクトリにコピーしますが、.hh
と.cc
ファイルはsrc
フォルダに残すか、クリーニングプロセスを容易にするために別の場所に配置する必要がありますか?