2011-11-11 7 views
1

私はWindowsからSolarisポートにアプリケーションをしようとしていると私はImakefileのが明確に定義されていない、または少なくとも期待に動作していないことが判明。SolarisのImakefileのコピーファイルルール

として私はいくつかのいるProtobufのファイルをコピーするために定義されたいくつかのルールがあります:すべてのファイルがコピーされているWindows上で

file1.pb.cc: 
    cp -p $(PROTODIR)/file1.pb.cc . 

file2.pb.cc: 
    cp -p $(PROTODIR)/file2.pb.cc . 

file3.pb.cc: 
    cp -p $(PROTODIR)/file3.pb.cc . 

。 Solaris上

は、最初にコピーされ、その後、何も起こりません。

私は再実行させる場合には、私は「file1.pb.cc」は最新であるメッセージが表示されます(があるので、OKです)と実行が終了します。

それでは、なぜ他のファイルがコピーされませんか?あなたは、ファイルの先頭にルールを追加する必要が

おかげで、 ボグダン

+0

Imakefileは本当ですか?これは普通のMakefileのようです。 Imakefilesは、imakeまたはxmkmfとともにMakefileを生成するために使用されます。 – alanc

答えて

1

default: file1.pb.cc file2.pb.cc file3.pb.cc 

は、ルールの名前は、それが最初であるだけという、重要ではありません。なぜなら、makeは、デフォルトで引数が与えられていなければファイル内の最初のルールのみを実行するからです。

このdefaultルールは、あなたがコピーしたいファイルに依存し、makeはそれらのためのルールをチェックします。

0

あなたがdocumentationから見ることができるように、私はあなたのコピーの送信先を省略することができるとは思いません。

+0

ああ、私は目的地を質問に入れないのを忘れましたが、私のファイルには正しいコマンドラインがあります。 –