summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2009-02-05 00:04:17 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-02-05 00:28:43 -0800
commit0c0ead7e79559013d6f9eea6f7e55d1845c11171 (patch)
tree64ddba7d633286cabac844dd48beac4b14a06903
parentMerge branch 'jc/fsck' (early part) (diff)
downloadtgif-0c0ead7e79559013d6f9eea6f7e55d1845c11171.tar.xz
Makefile: fix misdetection of relative pathnames
The installation rules wanted to differentiate between a template_dir that is given as an absolute path (e.g. /usr/share/git-core/templates) and a relative one (e.g. share/git-core/templates) but it was done by checking if $(abspath $(template_dir)) and $(template_dir) yield the same string. This was wrong in at least two ways. * The user can give template_dir with a trailing slash from the command line to invoke make or from the included config.mak. A directory path ought to mean the same thing with or without such a trailing slash but use of $(abspath) means an absolute path with a trailing slash fails the test. * Versions of GNU make older than 3.81 do not have $(abspath) to begin with. This changes the detection logic to see if the given path begins with a slash. Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Makefile4
1 files changed, 2 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index a82f173cb4..605b147e72 100644
--- a/Makefile
+++ b/Makefile
@@ -1434,14 +1434,14 @@ remove-dashes:
### Installation rules
-ifeq ($(abspath $(template_dir)),$(template_dir))
+ifneq ($(filter /%,$(firstword $(template_dir))),)
template_instdir = $(template_dir)
else
template_instdir = $(prefix)/$(template_dir)
endif
export template_instdir
-ifeq ($(abspath $(gitexecdir)),$(gitexecdir))
+ifneq ($(filter /%,$(firstword $(gitexecdir))),)
gitexec_instdir = $(gitexecdir)
else
gitexec_instdir = $(prefix)/$(gitexecdir)