Makefileインストールでディレクトリを所定の場所に移動する最良の方法は何ですか?
質問
現在、Makefileで通常の手法を使用して個々のファイルをインストールしています:
install:
install -D executable ${BIN_DIR}
しかし、ディレクトリ全体とその下のすべてのファイルを所定の場所に移動する必要がある状況に遭遇しました。
cp -r
が最善の方法ですか、それとももっとlinux-y / unix-yの方法がありますか?
解決
ええ、-rは cp
に比較的遅れて追加されていますが、 cp -r
のようなよりユニックスな方法を考えるのは難しいです。私たちがそれを行うために使用した方法をあなたに伝えることができます、そしてそれはファイルシステムなどできれいに動作します:
src
を移動するソースディレクトリにし、 / path / to / target
をターゲットへの絶対パスにします。次に使用できます:
$ tar cf - src | (cd /path/to/target; tar xf -)
他のヒント
install(1)
(Debian)の私のバージョンは次のとおりです。
-d, --directory
treat all arguments as directory names; create all components of the specified directories
-t, --target-directory=DIRECTORY
copy all SOURCE arguments into DIRECTORY
Makefile全体で一貫して install(1)
を使用する場合は、次のようにします。
install -d destdir
install srcdir/* -t destdir
ただし、 -t
は再帰的ではありません- srcdir
にディレクトリが含まれている場合、それらはコピーされません。
リンクは別の実行可能な代替手段です。これにより、複数のディレクトリ(異なるバージョンを表す)にアクセスできるようになります。
所属していません StackOverflow