Eric Blake wrote:
On 04/02/2010 12:47 AM, Junio C Hamano wrote:
quoted
Replacing
this with "ifeq(... ,1 5)" may not be an improvement either, unless we are
sure that nobody is using 1.4 or older, but I wonder if somebody else have
better ideas?
Nothing short of using $(shell) and doing some actual computation on the
string in $(uname_R). But that's not too hard, if people think it's
worth it; speak up if you want me to rework it along those lines,
otherwise I'll assume that things are good enough as-is.
Red Hat internal people might want to be able to use 1.8 when it comes
out. Maybe something like this would do the trick? I don’t know whether
Cygwin 1.6 has the fixes 1.7 does, so in my ignorance I lumped it with
1.5.
What you sent is probably good enough already; just trying to avoid
future work.
-- %< --
Subject: Makefile: future-proof Cygwin version check
Tweak the condition that detects old Cygwin versions to not include
versions such as 1.8, 1.11, and 2.1.
Signed-off-by: Jonathan Nieder <redacted>
---
diff --git a/Makefile b/Makefile
index 11ec3e2..a712430 100644
--- a/Makefile
+++ b/Makefile
@@ -831,7 +831,7 @@ ifeq ($(uname_S),SunOS)
BASIC_CFLAGS += -D__EXTENSIONS__ -D__sun__ -DHAVE_ALLOCA_H
endif
ifeq ($(uname_O),Cygwin)
- ifneq ($(wordlist 1, 2, $(subst ., ,$(uname_R))),1 7)
+ ifeq ($(shell expr "$(uname_R)" : '1\.[1-6]\.'),4)
NO_D_TYPE_IN_DIRENT = YesPlease
NO_D_INO_IN_DIRENT = YesPlease
NO_STRCASESTR = YesPlease
--