Blame mak/platform_WIN64_X86_64_MSVC.mak

Packit Service 0f5ca9
#//%LICENSE////////////////////////////////////////////////////////////////
Packit Service 0f5ca9
#//
Packit Service 0f5ca9
#// Licensed to The Open Group (TOG) under one or more contributor license
Packit Service 0f5ca9
#// agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
Packit Service 0f5ca9
#// this work for additional information regarding copyright ownership.
Packit Service 0f5ca9
#// Each contributor licenses this file to you under the OpenPegasus Open
Packit Service 0f5ca9
#// Source License; you may not use this file except in compliance with the
Packit Service 0f5ca9
#// License.
Packit Service 0f5ca9
#//
Packit Service 0f5ca9
#// Permission is hereby granted, free of charge, to any person obtaining a
Packit Service 0f5ca9
#// copy of this software and associated documentation files (the "Software"),
Packit Service 0f5ca9
#// to deal in the Software without restriction, including without limitation
Packit Service 0f5ca9
#// the rights to use, copy, modify, merge, publish, distribute, sublicense,
Packit Service 0f5ca9
#// and/or sell copies of the Software, and to permit persons to whom the
Packit Service 0f5ca9
#// Software is furnished to do so, subject to the following conditions:
Packit Service 0f5ca9
#//
Packit Service 0f5ca9
#// The above copyright notice and this permission notice shall be included
Packit Service 0f5ca9
#// in all copies or substantial portions of the Software.
Packit Service 0f5ca9
#//
Packit Service 0f5ca9
#// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
Packit Service 0f5ca9
#// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
Packit Service 0f5ca9
#// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Packit Service 0f5ca9
#// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
Packit Service 0f5ca9
#// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
Packit Service 0f5ca9
#// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
Packit Service 0f5ca9
#// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit Service 0f5ca9
#//
Packit Service 0f5ca9
#//////////////////////////////////////////////////////////////////////////
Packit Service 0f5ca9
OS_TYPE = windows
Packit Service 0f5ca9
OS = win64
Packit Service 0f5ca9
ARCHITECTURE = X86X64
Packit Service 0f5ca9
COMPILER = msvc
Packit Service 0f5ca9
Packit Service 0f5ca9
SYS_INCLUDES =
Packit Service 0f5ca9
Packit Service 0f5ca9
DEPEND_INCLUDES =
Packit Service 0f5ca9
Packit Service 0f5ca9
DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM) -D_WIN32_WINNT=0x0600
Packit Service 0f5ca9
#-D_WIN32_WINNT=0x0400 -DWINVER=0x0400
Packit Service 0f5ca9
Packit Service 0f5ca9
Packit Service 0f5ca9
#
Packit Service 0f5ca9
# Determine the version of the compiler being used.
Packit Service 0f5ca9
#
Packit Service 0f5ca9
CL_VERSION := $(word 8, $(shell cl.exe 2>&1))
Packit Service 0f5ca9
CL_MAJOR_VERSION := $(word 1, $(subst .,  , $(CL_VERSION)))
Packit Service 0f5ca9
Packit Service 0f5ca9
VC_CL_VERSIONS := 14 15 16
Packit Service 0f5ca9
VC_CL_VERSION  := $(findstring $(CL_MAJOR_VERSION), $(VC_CL_VERSIONS))
Packit Service 0f5ca9
Packit Service 0f5ca9
#
Packit Service 0f5ca9
# Determine the version of Windows being used.
Packit Service 0f5ca9
# IPv6 is not supported on Windows 2000 (earliest Windows version supported
Packit Service 0f5ca9
# by Pegasus), but we don't enforce that here.
Packit Service 0f5ca9
# IPv6 is not supported by the VC 6 compiler (CL_MAJOR_VERSION is 12 for VC 6).
Packit Service 0f5ca9
#
Packit Service 0f5ca9
ifeq ($(CL_MAJOR_VERSION), 12)
Packit Service 0f5ca9
    PEGASUS_ENABLE_IPV6 = false
Packit Service 0f5ca9
endif
Packit Service 0f5ca9
Packit Service 0f5ca9
Packit Service 0f5ca9
#
Packit Service 0f5ca9
# The flags set here should be valid for VC 6.
Packit Service 0f5ca9
#
Packit Service 0f5ca9
# The -Zm105 flag was added as part of bug 4418 to resolve this compile error:
Packit Service 0f5ca9
#   C:\Program Files\Microsoft Visual Studio\VC98\include\xlocale(467) :
Packit Service 0f5ca9
#   fatal error C1076: compiler limit : internal heap limit reached; use /Zm to
Packit Service 0f5ca9
#   specify a higher limit
Packit Service 0f5ca9
#
Packit Service 0f5ca9
CXX_VERSION_FLAGS := -Zm105
Packit Service 0f5ca9
CXX_VERSION_DEBUG_FLAGS :=
Packit Service 0f5ca9
CXX_VERSION_RELEASE_FLAGS :=
Packit Service 0f5ca9
LINK_VERSION_RELEASE_FLAGS :=
Packit Service 0f5ca9
Packit Service 0f5ca9
Packit Service 0f5ca9
#
Packit Service 0f5ca9
# CL_MAJOR_VERSION 13 is VC 7
Packit Service 0f5ca9
#
Packit Service 0f5ca9
ifeq ($(CL_MAJOR_VERSION), 13)
Packit Service 0f5ca9
    CXX_VERSION_FLAGS := -EHsc
Packit Service 0f5ca9
    CXX_VERSION_DEBUG_FLAGS := -Gs
Packit Service 0f5ca9
    CXX_VERSION_RELEASE_FLAGS := -Gs -GF -Gy
Packit Service 0f5ca9
    LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
Packit Service 0f5ca9
endif
Packit Service 0f5ca9
Packit Service 0f5ca9
Packit Service 0f5ca9
#
Packit Service 0f5ca9
# CL_MAJOR_VERSION 14, 15 or 16 (i.e., VC 8, VC 9 or VC 2010)
Packit Service 0f5ca9
#
Packit Service 0f5ca9
ifeq ($(CL_MAJOR_VERSION), $(VC_CL_VERSION))
Packit Service 0f5ca9
    CXX_VERSION_FLAGS := -EHsc
Packit Service 0f5ca9
    CXX_VERSION_DEBUG_FLAGS := -RTCc -RTCsu
Packit Service 0f5ca9
    CXX_VERSION_RELEASE_FLAGS := -GF -GL -Gy
Packit Service 0f5ca9
    # VC 2010 only setting as it dont take /OPT:NOWIN98 anymore
Packit Service 0f5ca9
    ifeq ($(CL_MAJOR_VERSION), 16)
Packit Service 0f5ca9
        LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5
Packit Service 0f5ca9
    else
Packit Service 0f5ca9
        LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
Packit Service 0f5ca9
    endif
Packit Service 0f5ca9
    DEFINES += -D_CRT_SECURE_NO_DEPRECATE
Packit Service 0f5ca9
    DEFINES += -D_CRT_NONSTDC_NO_DEPRECATE
Packit Service 0f5ca9
endif
Packit Service 0f5ca9
Packit Service 0f5ca9
    CXX_VERSION_FLAGS := -EHsc
Packit Service 0f5ca9
    CXX_VERSION_DEBUG_FLAGS := -RTCc -RTCsu
Packit Service 0f5ca9
Packit Service 0f5ca9
ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
Packit Service 0f5ca9
    FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_DEBUG_FLAGS) -GR -W3 -Od -Zi -MDd -DDEBUG -Fd$(OBJ_DIR)/
Packit Service 0f5ca9
    LINK_FLAGS += -debug
Packit Service 0f5ca9
else
Packit Service 0f5ca9
    FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_RELEASE_FLAGS) -GR -W3 -O2 -MD
Packit Service 0f5ca9
    LINK_FLAGS += $(LINK_VERSION_RELEASE_FLAGS) -map
Packit Service 0f5ca9
endif
Packit Service 0f5ca9
Packit Service 0f5ca9
Packit Service 0f5ca9
ifdef PEGASUS_DEBUG_CIMEXCEPTION
Packit Service 0f5ca9
    DEFINES += -DPEGASUS_DEBUG_CIMEXCEPTION
Packit Service 0f5ca9
endif
Packit Service 0f5ca9
Packit Service 0f5ca9
# if PEGASUS_ENABLE_SLP is already set then honor the users preference else
Packit Service 0f5ca9
# Enable the compilation of the SLP functions.
Packit Service 0f5ca9
#
Packit Service 0f5ca9
ifndef PEGASUS_ENABLE_SLP
Packit Service 0f5ca9
    PEGASUS_ENABLE_SLP = true
Packit Service 0f5ca9
endif
Packit Service 0f5ca9
Packit Service 0f5ca9
RM = mu rm
Packit Service 0f5ca9
Packit Service 0f5ca9
RMDIRHIER = mu rmdirhier
Packit Service 0f5ca9
Packit Service 0f5ca9
MKDIRHIER = mu mkdirhier
Packit Service 0f5ca9
Packit Service 0f5ca9
DIFF = mu compare
Packit Service 0f5ca9
Packit Service 0f5ca9
SORT = mu sort
Packit Service 0f5ca9
Packit Service 0f5ca9
COPY = mu copy
Packit Service 0f5ca9
Packit Service 0f5ca9
MOVE = mu move
Packit Service 0f5ca9
Packit Service 0f5ca9
CXX = cl -nologo
Packit Service 0f5ca9
Packit Service 0f5ca9
EXE_OUT = -Fe
Packit Service 0f5ca9
Packit Service 0f5ca9
LIB_OUT = -out:
Packit Service 0f5ca9
Packit Service 0f5ca9
OBJ = .obj
Packit Service 0f5ca9
Packit Service 0f5ca9
OBJ_OUT = -Fo
Packit Service 0f5ca9
Packit Service 0f5ca9
EXE = .exe
Packit Service 0f5ca9
Packit Service 0f5ca9
DLL = .dll
Packit Service 0f5ca9
Packit Service 0f5ca9
ILK = .ilk
Packit Service 0f5ca9
Packit Service 0f5ca9
PDB = .pdb
Packit Service 0f5ca9
Packit Service 0f5ca9
EXP = .exp
Packit Service 0f5ca9
Packit Service 0f5ca9
AR = LINK -nologo -dll
Packit Service 0f5ca9
Packit Service 0f5ca9
LIB_PREFIX =
Packit Service 0f5ca9
Packit Service 0f5ca9
LIB_SUFFIX = .lib
Packit Service 0f5ca9
Packit Service 0f5ca9
TOUCH = mu touch
Packit Service 0f5ca9
Packit Service 0f5ca9
ECHO = mu echo
Packit Service 0f5ca9
Packit Service 0f5ca9
LEX = flex
Packit Service 0f5ca9
Packit Service 0f5ca9
YACC = bison
Packit Service 0f5ca9
Packit Service 0f5ca9
SH = bash
Packit Service 0f5ca9
Packit Service 0f5ca9
RC = rc
Packit Service 0f5ca9
Packit Service 0f5ca9
# Windows DLLs are installed in the $(PEGASUS_HOME)/bin directory
Packit Service 0f5ca9
PEGASUS_DEST_LIB_DIR = bin
Packit Service 0f5ca9
Packit Service 0f5ca9
# The Provider User Context feature (PEP 197) is not supported on Windows
Packit Service 0f5ca9
PEGASUS_DISABLE_PROV_USERCTXT=1
Packit Service 0f5ca9
Packit Service 0f5ca9
# Windows does not support local domain sockets or the equivalent Bug 2147
Packit Service 0f5ca9
PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET=1
Packit Service 0f5ca9
Packit Service 0f5ca9
PEGASUS_JAVA_CLASSPATH_DELIMITER = ;
Packit Service 0f5ca9
Packit Service 0f5ca9
##################################
Packit Service 0f5ca9
##
Packit Service 0f5ca9
## Pegasus WMIMapper
Packit Service 0f5ca9
##
Packit Service 0f5ca9
##################################
Packit Service 0f5ca9
Packit Service 0f5ca9
ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
Packit Service 0f5ca9
  FLAGS += -DPEGASUS_WMIMAPPER
Packit Service 0f5ca9
else
Packit Service 0f5ca9
  ifdef PEGASUS_WMIMAPPER
Packit Service 0f5ca9
    FLAGS += -DPEGASUS_WMIMAPPER
Packit Service 0f5ca9
  endif
Packit Service 0f5ca9
endif
Packit Service 0f5ca9
Packit Service 0f5ca9
##################################
Packit Service 0f5ca9
##
Packit Service 0f5ca9
## The newer compiler versions need neither MS Platform SDK installed nor MSSdk variable defined.
Packit Service 0f5ca9
##
Packit Service 0f5ca9
##################################
Packit Service 0f5ca9
ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
Packit Service 0f5ca9
  ifeq ($(CL_MAJOR_VERSION), 12)
Packit Service 0f5ca9
    PEGASUS_WMIMAPPER_NEED_MSSDK=true
Packit Service 0f5ca9
  endif
Packit Service 0f5ca9
  ifeq ($(CL_MAJOR_VERSION), 13)
Packit Service 0f5ca9
    PEGASUS_WMIMAPPER_NEED_MSSDK=true
Packit Service 0f5ca9
  endif
Packit Service 0f5ca9
  ifeq ($(PEGASUS_WMIMAPPER_NEED_MSSDK),true)
Packit Service 0f5ca9
    ifndef MSSdk
Packit Service 0f5ca9
      $(error MSSdk environment variable undefined)
Packit Service 0f5ca9
    endif
Packit Service 0f5ca9
  endif
Packit Service 0f5ca9
endif