
ターゲット ビルド ディレクトリに多数のファイルをインストールする makefile があります。これらのファイルには実行可能なものもあれば、実行不可能なものもあります。
以前 Linux で非実行ファイル用のinstall
フラグ付きコマンドをテストしましたが、今は機能しません。OSX /BSD ではフラグが利用できないことがわかったので、削除しました。問題は、インストールするファイルのパス内のコンポーネント ディレクトリが必要に応じて作成されるようにする必要があることです。フラグが役立つと思い、次のようなことを試しました。-D -m 644
-D
-d
install .DS_Store ./tmp/build/some_dir/
...しかし、some_dir
「そのようなファイルまたはディレクトリはありません」というエラーが表示されます。つまり、存在しないということです (これは事実です)。次に、上記と同じことをフラグ付きで試したところ-d
、別のエラーが発生しました。
インストール: .DS_Store は存在しますが、ディレクトリではありません
ファイルを宛先にコピーするための、多かれ少なかれ安定した汎用的な方法が欲しいだけです。 に頼るべきでしょうかcp
? ただし、この 2 つの間には小さいながらも重要な違いがあることはわかっています。
答え1
install -d
すべての引数を、作成する必要がある (可能性がある) ディレクトリとして解釈します。したがって、次の 2 つのコマンドとして実行する必要があると思います。
install -d ./tmp/build/some_dir/
install .DS_Store ./tmp/build/some_dir/