私はこのようなルールを持つRakefileを持っています:
rule '.so' => '.cc' do |t|
puts "@ Compiling #{t.source}"
output = t.source.ext("so")
output['stdlib'] = 'build'
sh "mkdir -p #{File.dirname(output)}"
sh "#{CXX} #{t.source} -o#{output} #{STDLIB_CFLAGS} #{STDLIB_LFLAGS}"
end
ご覧のとおり、「stdlib」ディレクトリ (ソースを含む) からバイナリが格納されている「build」ディレクトリに多くの .so ライブラリが生成されます。
ここでの問題は、この「ディレクトリ交換」が原因で、rake が .so ファイルを生成したファイルとして認識しないように見え、rake コマンドを実行するたびに、何も変更されていない場合でも、各 .so モジュールの再コンパイルが発生することです。
これを解決する方法はありますか?
ありがとう