Re: [PATCH 1/2] Makefile: Use the same source directory for "ln -s" as for "ln" / "cp"
- From
Kyle J. McKay <mackyle@gmail.com>
- Date
- Feb 5, 2015, 17:48 UTC
- Message-ID
- <D060A1E5-DAF3-49D5-B0B3-F831BCDFD41F@gmail.com>
- In-Reply-To
- <CAHGBnuOGv4Zn7dz6voEMn=PtMfm=0TQumt9PxV9nYgXyB0Xj=g@mail.gmail.com>
On Feb 5, 2015, at 07:51, Sebastian Schuberth wrote:
Show 19 quoted lines
> For consistency, we should use the same source for symbolic links as > for > hard links and copies. > > Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com> > --- > Makefile | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/Makefile b/Makefile > index c44eb3a..21f23cb 100644 > --- a/Makefile > +++ b/Makefile > @@ -2265,14 +2265,14 @@ endif > $(RM) "$$bindir/$$p" && \ > test -z "$(NO_INSTALL_HARDLINKS)" && \ > ln "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \ > - ln -s "git$X" "$$bindir/$$p" 2>/dev/null || \ > + ln -s "$$bindir/git$X" "$$bindir/$$p" 2>/dev/null || \
This is wrong.
Currently with symlinks you will get installed into bindir something like this:
git git-tag -> git git-show -> git
etc.
With your change you would have
git git-tag -> /usr/local/libexec/git-core/git git-show -> /usr/local/libexec/git-core/git
And I don't think we want that. While those absolute path symlinks are technically correct, what we have now is much simpler. While there are a number of build-time paths hard-coded into the executables, the binaries work for the most part if you relocate them as a whole. Your change totally breaks that.
-Kyle