是否可以构建 `git` 使得安装目录和部署前缀不相同?

Is it possible to build `git` such that the install directory and the deployment prefix is not the same?

我正在尝试从源代码构建 git,我希望 make install 将二进制文件放入我的源目录中名为 dist 的目录中,因此我使用以下命令configure行。

./configure --prefix=`pwd`/dist

不幸的是,这也会导致构建输出假定这是 git 的最终安装位置,因此将路径硬编码到各种脚本和二进制文件中,例如 libexec/git-core/git-difftool

有没有办法在 configuremake 期间指定我想要不同的实际部署路径,例如 /usr/bin/local,但仍然有 make install进入目录 pwd/dist?

由于这个问题好几天没有人回答,我emailed the git developers,得到了如下回答,说明我应该把prefix设置为实际安装路径,并使用DESTDIR 环境变量来控制 make install 放置文件的位置。

./configure --prefix=/usr/local
make
DESTDIR=$(PWD)/dist make install

因此,部署前缀应在 ./configure 期间设置为 --prefix,而安装目标应由 DESTDIR 指定。

更新:我已经测试了这个解决方案并确认它可以正常工作。