Makefileインストールでディレクトリを所定の場所に移動する最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/417236

  •  03-07-2019
  •  | 
  •  

質問

現在、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 にディレクトリが含まれている場合、それらはコピーされません。

リンクは別の実行可能な代替手段です。これにより、複数のディレクトリ(異なるバージョンを表す)にアクセスできるようになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top