Subject: Re: [PATCH] Makefile: update defaults for modern Cygwin

From: Jonathan Nieder <[email-masked]>
Date: Sat, 3 Apr 2010 02:47:00 -0500

Eric Blake wrote:
> On 04/02/2010 12:47 AM, Junio C Hamano wrote:

>> 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 <[email-masked]>
---
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
--