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

From: Johannes Sixt <[email-masked]>
Date: Tue, 03 Nov 2009 08:27:39 +0100

Ramsay Jones schrieb:
> Signed-off-by: Ramsay Jones <[email-masked]>
> ---
>  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