次の Makefile セクションを使用します。
.PHONY: all
all: _MyModule.so
_%.so: %.pb.cc %.pb.h
python setup.py build
%.pb.cc %.pb.h: %.proto
protoc --cpp_out=. $^ # Generate these two files together
ファイルをmake
作成し_MyModule.so
、中間体MyModule.pb.cc
とMyModule.pb.h
. 実際には、ファイルの 1 つだけが削除されます (.h
または.cpp
)。_%.so
また、依存関係リストに表示される順序に依存していることにも気付きました。
誰でもこの動作を説明できますか?
すべての中間体をエレガントに削除するにはどうすればよいですか?