# [PATCH 3/4] Makefile: keep MSVC and Cygwin configuration separate

3 messages from 2009-10-27 to 2009-11-04. Participants: Ramsay Jones, Johannes Sixt.
Thread: https://gitlist.dev/t/21385

## Ramsay Jones, 2009-10-27 19:13

Subject: [PATCH 3/4] Makefile: keep MSVC and Cygwin configuration separate
Message-ID: <4AE74659.6020503@ramsay1.demon.co.uk>
URL: https://gitlist.dev/e/4AE74659.6020503%40ramsay1.demon.co.uk

```

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
 Makefile |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 8e1cfc5..12c8249 100644
--- a/Makefile
+++ b/Makefile
@@ -658,6 +658,14 @@ EXTLIBS =
 # Platform specific tweaks
 #
 
+ifdef MSVC
+	# When building with msvc, on MinGW or Cygwin, we
+	# override the uname settings to make it easier to
+	# keep the configuration sections separate
+	uname_S = Windows
+	uname_O = Windows
+endif
+
 # We choose to avoid "if .. else if .. else .. endif endif"
 # because maintaining the nesting to match is a pain.  If
 # we had "elif" things would have been much nicer...
@@ -893,7 +901,7 @@ ifeq ($(uname_S),HP-UX)
 	NO_SYS_SELECT_H = YesPlease
 	SNPRINTF_RETURNS_BOGUS = YesPlease
 endif
-ifdef MSVC
+ifeq ($(uname_S),Windows)
 	GIT_VERSION := $(GIT_VERSION).MSVC
 	pathsep = ;
 	NO_PREAD = YesPlease
@@ -945,7 +953,7 @@ else
 	BASIC_CFLAGS += -Zi -MTd
 endif
 	X = .exe
-else
+endif
 ifneq (,$(findstring MINGW,$(uname_S)))
 	pathsep = ;
 	NO_PREAD = YesPlease
@@ -994,7 +1002,6 @@ else
 	NO_PTHREADS = YesPlease
 endif
 endif
-endif
 
 -include config.mak.autogen
 -include config.mak
-- 
1.6.5

```

## Johannes Sixt, 2009-11-03 07:27

Subject: Re: [PATCH 3/4] Makefile: keep MSVC and Cygwin configuration separate
Message-ID: <4AEFDB6B.8010209@viscovery.net>
URL: https://gitlist.dev/e/4AEFDB6B.8010209%40viscovery.net
In-Reply-To: <4AE74659.6020503@ramsay1.demon.co.uk>

```
Ramsay Jones schrieb:
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> ---
>  Makefile |   13 ++++++++++---
>  1 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 8e1cfc5..12c8249 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -658,6 +658,14 @@ EXTLIBS =
>  # Platform specific tweaks
>  #
>  
> +ifdef MSVC
> +	# When building with msvc, on MinGW or Cygwin, we
> +	# override the uname settings to make it easier to
> +	# keep the configuration sections separate
> +	uname_S = Windows
> +	uname_O = Windows
> +endif
> +
>  # We choose to avoid "if .. else if .. else .. endif endif"
>  # because maintaining the nesting to match is a pain.  If
>  # we had "elif" things would have been much nicer...
> @@ -893,7 +901,7 @@ ifeq ($(uname_S),HP-UX)
>  	NO_SYS_SELECT_H = YesPlease
>  	SNPRINTF_RETURNS_BOGUS = YesPlease
>  endif
> -ifdef MSVC
> +ifeq ($(uname_S),Windows)
>  	GIT_VERSION := $(GIT_VERSION).MSVC
>  	pathsep = ;
>  	NO_PREAD = YesPlease
> @@ -945,7 +953,7 @@ else
>  	BASIC_CFLAGS += -Zi -MTd
>  endif
>  	X = .exe
> -else
> +endif
>  ifneq (,$(findstring MINGW,$(uname_S)))
>  	pathsep = ;
>  	NO_PREAD = YesPlease
> @@ -994,7 +1002,6 @@ else
>  	NO_PTHREADS = YesPlease
>  endif
>  endif
> -endif
>  
>  -include config.mak.autogen
>  -include config.mak

I like the direction of this change, but I think that you must use ':='
assignment, and I would put this right after the uname_* assignments at
the beginning of the Makefile:

 uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not')
+ifdef MSVC
+	uname_S := Windows
+	uname_O := Windows	# avoid cygwin configuration
+endif

-- Hannes

```

## Ramsay Jones, 2009-11-04 19:29

Subject: Re: [PATCH 3/4] Makefile: keep MSVC and Cygwin configuration separate
Message-ID: <4AF1D605.1020900@ramsay1.demon.co.uk>
URL: https://gitlist.dev/e/4AF1D605.1020900%40ramsay1.demon.co.uk
In-Reply-To: <4AEFDB6B.8010209@viscovery.net>

```
Johannes Sixt wrote:
> 
> I like the direction of this change, but I think that you must use ':='

Yeah, I've always been a bit sloppy with recursive assignment versus simple
assignment when the value does not contain a variable reference ;-)
So yes, you are right...

> assignment, and I would put this right after the uname_* assignments at
> the beginning of the Makefile:
> 
>  uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not')
> +ifdef MSVC
> +	uname_S := Windows
> +	uname_O := Windows	# avoid cygwin configuration
> +endif

OK with me. (but you are avoiding the MinGW configuration as well...)

ATB,
Ramsay Jones

```
