C preprocessor only handles integers for conditional compilation. Build MSC_VER_REQUIRED in config.nmake and compare it with _MSC_VER in config.h.win32

svn path=/trunk/; revision=20637
This commit is contained in:
Ulf Lamping 2007-01-31 02:23:06 +00:00
parent e166f9c4e6
commit 5698c994ca
3 changed files with 21 additions and 11 deletions

View File

@ -17,7 +17,7 @@ CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) $(GLIB_CFLAGS) /I. /Iwiretap \
$(ZLIB_CFLAGS) /I$(PCAP_DIR)\include \
$(NET_SNMP_CFLAGS) \
$(ADNS_CFLAGS) $(PCRE_CFLAGS) $(GNUTLS_CFLAGS) $(LUA_CFLAGS) \
-D_U_="" -D_NEED_VAR_IMPORT_
-D_U_="" -D_NEED_VAR_IMPORT_ -DMSC_VER_REQUIRED=$(MSC_VER_REQUIRED)
CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL

View File

@ -254,14 +254,10 @@
/* We shouldn't need this under Windows but we'll define it anyway. */
#define HTML_VIEWER "mozilla"
/* check if the MSVC_VARIANT setting in config.nmake and the current MSVC compiler version matches together */
/* user might forget to set this or the PATH to the C compiler could be wrong */
#if _MSC_VER == 1400 && (MSVC_VARIANT != MSVC2005EE || MSVC_VARIANT != MSVC2005 || MSVC_VARIANT != DOTNET20 || MSVC_VARIANT != DOTNET30)
#error Your MSVC_VARIANT setting in config.nmake and the C compiler version 14.00 (V8.0) don't match!
#elseif _MSC_VER == 1310 && (MSVC_VARIANT != MSVC2003 || MSVC_VARIANT != DOTNET11)
#error Your MSVC_VARIANT setting in config.nmake and the C compiler version 13.10 (V7.1) don't match!
#elseif _MSC_VER == 1300 && (MSVC_VARIANT != MSVC2002 || MSVC_VARIANT != DOTNET10)
#error Your MSVC_VARIANT setting in config.nmake and the C compiler version 13.00 (V7.0) don't match!
#elseif _MSC_VER == 1200 && (MSVC_VARIANT != MSVC6)
#error Your MSVC_VARIANT setting in config.nmake and the C compiler version 12.00 (V6.0) don't match!
/* Check for the required _MSC_VER */
#if MSC_VER_REQUIRED != _MSC_VER
#define WS_TO_STRING2(x) #x
#define WS_TO_STRING(x) WS_TO_STRING2(x)
#pragma message( "_MSC_VER is:" WS_TO_STRING(_MSC_VER) " but required is:" WS_TO_STRING(MSC_VER_REQUIRED) )
#error Your MSVC_VARIANT setting in config.nmake doesn't match the MS compiler version!
#endif

View File

@ -768,3 +768,17 @@ LIBWIRESHARK_CONFIG=
# Construct the path
PATH=$(PATH);$(CYGWIN_PATH);$(GLIB_DIR)\bin;$(GETTEXT_DIR)\bin;$(ICONV_DIR)\bin;$(ZLIB_PATH);$(ADNS_PATH)
# "convert" the MSVC variant into the required MSC compiler version
!IF "$(MSVC_VARIANT)" == "MSVC6"
MSC_VER_REQUIRED=1300
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2002" || "$(MSVC_VARIANT)" == "DOTNET10"
MSC_VER_REQUIRED=1300
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2003" || "$(MSVC_VARIANT)" == "DOTNET11"
MSC_VER_REQUIRED=1310
!ELSEIF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
MSC_VER_REQUIRED=1400
!ELSE
!ERROR MSVC_VARIANT unknown
!ENDIF