6
makefileに「インストール」ターゲットが必要なのはなぜですか?
CとC ++の世界から来たほとんどのビルドシステムには、installターゲット、特にMakefiles(たとえばGNUが推奨する場所)またはCMakeがあります。このターゲットは、オペレーティングシステム(C:\Program Files\Windowsなど)のランタイムファイル(実行可能ファイル、ライブラリなど)をコピーします。 私にとっては、プログラムをインストールすることはビルドシステムの責任ではないため(実際にはオペレーティングシステム/パッケージマネージャーの責任です)、これは非常にハッキリしています。また、ビルドシステムまたはビルドスクリプトは、環境変数、レジストリ変数、シンボリックリンク、権限などを使用して、インストールされたプログラムの構成を認識している必要があります。 せいぜい、ビルドシステムにはrelease、インストール可能なプログラム(.debまたはなど.msi)を出力するターゲットがあり、そのプログラムをインストールするようオペレーティングシステムに親切に依頼する必要があります。また、ユーザーはを入力せずにアンインストールできmake uninstallます。 だから、私の質問:ビルドシステムは通常、installターゲットを持つことを推奨するのはなぜですか?