# **********************************************************************
#
# Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved.
#
# This copy of Ice is licensed to you under the terms described in the
# ICE_LICENSE file included in this distribution.
#
# **********************************************************************
#
# This file is included by Make.rules.mak when using a Microsoft C++
# compiler
#
CXX = cl.exe
CC = cl.exe
LINK = link.exe
AR = lib.exe
RC = rc.exe
BASE = /base
PREOUT = /out:
PRELIBS =
PRELIBPATH = /LIBPATH:
!if "$(OPTIMIZE)" != "yes" || "$(RELEASEPDBS)" == "yes"
GENERATE_PDB = yes
!endif
CPPFLAGS = $(CPPFLAGS) -nologo -GR -EHsc -WX
!if "$(MAXWARN)" != "yes"
# Added for VS2015 RC: -wd4275
CPPFLAGS = $(CPPFLAGS) -W3 -wd4250 -wd4251 -wd4275
!else
CPPFLAGS = $(CPPFLAGS) -W4
!endif
ARFLAGS = $(ARFLAGS) -nologo -WX
!if "$(WINRT)" == "yes"
!if "$(PROCESSOR_ARCHITECTURE)" == "AMD64"
WINDOWS_SDK_DIR = $(PROGRAMFILES) (x86)\Microsoft SDKs
!else
WINDOWS_SDK_DIR = $(PROGRAMFILES)\Microsoft SDKs
!endif
SDK_NAME = Ice
!if "$(CPP_COMPILER)" == "VC110"
TARGET_PLATFORM = Windows
TARGET_PLATFORM_VERSION = 8.0
SDK_PREFIX = 8.0
MIN_VS_VERSION = 11.0
!elseif "$(CPP_COMPILER)" == "VC120"
TARGET_PLATFORM = Windows
TARGET_PLATFORM_VERSION = 8.1
SDK_PREFIX = 8.1
MIN_VS_VERSION = 12.0
!elseif "$(CPP_COMPILER)" == "VC140"
TARGET_PLATFORM_VERSION = 10.0.10240.0
SDK_PREFIX = 10
TARGET_PLATFORM = UAP
MIN_VS_VERSION = 14.0
!else
!error TARGET_PLATFORM_VERSION: $(TARGET_PLATFORM_VERSION) not supported to build Ice for WinRT
!endif
CPPFLAGS = $(CPPFLAGS) -DWINAPI_FAMILY=2 -Gm- -Oy- -Gd -ZW -D_UNICODE -DUNICODE
!if "$(TARGET_PLATFORM_VERSION)" == "8.1"
CPPFLAGS = $(CPPFLAGS) /AI "$(WINDOWS_SDK_DIR)\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral"
!elseif "$(TARGET_PLATFORM_VERSION)" == "10.0.10240.0"
CPPFLAGS = $(CPPFLAGS) /AI "$(VSINSTALLDIR)\VC\lib\store\references"
!endif
#
# We ignore these two warnings
# 4264 http://msdn.microsoft.com/en-us/library/windows/apps/hh771041(v=vs.110).aspx
# 4221 is "This object file does not define any previously undefined public symbols",
#
ARFLAGS = $(ARFLAGS) /ignore:4264 /ignore:4221
!else
#
# ICE_WIN32_WINNT sets the minimum version of Windows supported by this build
# 0x600 = Windows Vista / Windows Server 2008
# 0x601 = Windows 7 / Windows Server 2008 R2
# 0x602 = Windows 8 / Windows Server 2012
#
ICE_WIN32_WINNT = 0x601
CPPFLAGS = $(CPPFLAGS) -D_CONSOLE -D_WIN32_WINNT=$(ICE_WIN32_WINNT)
!endif
CPPFLAGS = $(CPPFLAGS) -MP
!if "$(OPTIMIZE)" == "yes"
CPPFLAGS = $(CPPFLAGS) -O2 -DNDEBUG -MD
CONFIG = Retail
!if "$(RELEASEPDBS)" == "yes"
CPPFLAGS = $(CPPFLAGS) -Zi -Oy-
!endif
!else
CPPFLAGS = $(CPPFLAGS) -Zi -Od -D_DEBUG -MDd -RTC1
CONFIG = Debug
!endif
!if "$(STATICLIBS)" == "yes"
CPPFLAGS = $(CPPFLAGS) -DICE_STATIC_LIBS
!endif
LDFLAGS = $(LDFLAGS) /nologo
!if "$(WINRT)" == "yes"
LDFLAGS = $(LDFLAGS) /NXCOMPAT /MANIFEST:NO /APPCONTAINER /NOLOGO
!if "$(CPP_COMPILER)" == "VC140"
!elseif "$(CPP_COMPILER)" == "VC120"
!if "$(ARCH)" == "x86"
LDFLAGS = $(LDFLAGS) /LIBPATH:"$(VCINSTALLDIR)\lib\store"
!else
LDFLAGS = $(LDFLAGS) /LIBPATH:"$(VCINSTALLDIR)\lib\store\$(ARCH)"
!endif
!else
LDFLAGS = $(LDFLAGS) /FIXED:no
!endif
!endif
!if "$(OPTIMIZE)" == "yes"
LDFLAGS = $(LDFLAGS) /OPT:REF
!endif
!if "$(GENERATE_PDB)" != "yes"
LDFLAGS = $(LDFLAGS) /pdb:none
!else
LDFLAGS = $(LDFLAGS) /debug /incremental:no
!endif
LD_DLLFLAGS = $(LDFLAGS) /dll
LD_EXEFLAGS = $(LDFLAGS)
!if "$(WINRT)" != "yes"
LD_TESTFLAGS = $(LD_EXEFLAGS) $(SETARGV)
!else
LD_TESTFLAGS = $(LD_DLLFLAGS)
!endif
#
# With MSVC, we link automatically all Ice libraries using pragma comment
#
BASELIBS =
LIBS =
!if "$(WINRT)" == "yes"
SDK_VERSION = $(SHORT_VERSION)
SDK_MANIFEST = SDKManifest.xml
!if "$(ice_src_dist)" != ""
SDK_BASE_PATH = $(top_srcdir)\SDKs\$(SDK_PREFIX)\$(TARGET_PLATFORM)\v$(TARGET_PLATFORM_VERSION)\ExtensionSDKs\$(SDK_NAME)\$(SDK_VERSION)
!else
SDK_BASE_PATH = $(ice_dir)\SDKs\$(SDK_PREFIX)\$(TARGET_PLATFORM)\v$(TARGET_PLATFORM_VERSION)\ExtensionSDKs\$(SDK_NAME)\$(SDK_VERSION)
!endif
SDK_INCLUDE_PATH = $(SDK_BASE_PATH)\DesignTime\CommonConfiguration\Neutral\include
SDK_LIBRARY_PATH = $(SDK_BASE_PATH)\DesignTime\$(CONFIG)\$(ARCH)
SDK_REFERENCES_PATH = $(SDK_BASE_PATH)\References\$(CONFIG)\$(ARCH)
SDK_REDIST_PATH = $(SDK_BASE_PATH)\Redist\$(CONFIG)\$(ARCH)
$(SDK_BASE_PATH):
$(MKDIR) $(SDK_BASE_PATH)
$(SDK_LIBRARY_PATH):
$(MKDIR) $(SDK_LIBRARY_PATH)
$(SDK_REDIST_PATH):
$(MKDIR) $(SDK_REDIST_PATH)
$(SDK_REFERENCES_PATH):
$(MKDIR) $(SDK_REFERENCES_PATH)
$(SDK_INCLUDE_PATH):
$(MKDIR) $(SDK_INCLUDE_PATH)
$(SDK_BASE_PATH)\$(SDK_MANIFEST): $(SDK_BASE_PATH)
@echo <<$(SDK_MANIFEST)
<