1 martin 1.9 #//%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.10 #//
|
3 martin 1.9 #// Licensed to The Open Group (TOG) under one or more contributor license
4 #// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 #// this work for additional information regarding copyright ownership.
6 #// Each contributor licenses this file to you under the OpenPegasus Open
7 #// Source License; you may not use this file except in compliance with the
8 #// License.
|
9 martin 1.10 #//
|
10 martin 1.9 #// Permission is hereby granted, free of charge, to any person obtaining a
11 #// copy of this software and associated documentation files (the "Software"),
12 #// to deal in the Software without restriction, including without limitation
13 #// the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 #// and/or sell copies of the Software, and to permit persons to whom the
15 #// Software is furnished to do so, subject to the following conditions:
|
16 martin 1.10 #//
|
17 martin 1.9 #// The above copyright notice and this permission notice shall be included
18 #// in all copies or substantial portions of the Software.
|
19 martin 1.10 #//
|
20 martin 1.9 #// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.10 #// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.9 #// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 #// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 #// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 #// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 #// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27 martin 1.10 #//
|
28 martin 1.9 #//////////////////////////////////////////////////////////////////////////
|
29 a.dunfey 1.1 OS_TYPE = windows
30 OS = win64
31 ARCHITECTURE = X86X64
32 COMPILER = msvc
33
34 SYS_INCLUDES =
35
36 DEPEND_INCLUDES =
37
|
38 s.kodali 1.11.2.1 DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM) -D_WIN32_WINNT=0x0600
|
39 a.dunfey 1.1 #-D_WIN32_WINNT=0x0400 -DWINVER=0x0400
40
41
42 #
43 # Determine the version of the compiler being used.
44 #
45 CL_VERSION := $(word 8, $(shell cl.exe 2>&1))
46 CL_MAJOR_VERSION := $(word 1, $(subst ., , $(CL_VERSION)))
47
|
48 dave.sudlik 1.2
49 #
50 # Determine the version of Windows being used.
51 # IPv6 is not supported on Windows 2000 (earliest Windows version supported
|
52 dave.sudlik 1.4 # by Pegasus), but we don't enforce that here.
53 # IPv6 is not supported by the VC 6 compiler (CL_MAJOR_VERSION is 12 for VC 6).
|
54 dave.sudlik 1.2 #
55 ifeq ($(CL_MAJOR_VERSION), 12)
56 PEGASUS_ENABLE_IPV6 = false
57 endif
58
59
|
60 a.dunfey 1.1 #
61 # The flags set here should be valid for VC 6.
62 #
63 # The -Zm105 flag was added as part of bug 4418 to resolve this compile error:
|
64 kumpf 1.11 # C:\Program Files\Microsoft Visual Studio\VC98\include\xlocale(467) :
65 # fatal error C1076: compiler limit : internal heap limit reached; use /Zm to
|
66 a.dunfey 1.1 # specify a higher limit
|
67 kumpf 1.11 #
|
68 a.dunfey 1.1 CXX_VERSION_FLAGS := -Zm105
69 CXX_VERSION_DEBUG_FLAGS :=
70 CXX_VERSION_RELEASE_FLAGS :=
71 LINK_VERSION_RELEASE_FLAGS :=
72
73
74 #
75 # CL_MAJOR_VERSION 13 is VC 7
76 #
77 ifeq ($(CL_MAJOR_VERSION), 13)
78 CXX_VERSION_FLAGS := -EHsc
79 CXX_VERSION_DEBUG_FLAGS := -Gs
80 CXX_VERSION_RELEASE_FLAGS := -Gs -GF -Gy
81 LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
82 endif
83
84
85 #
86 # CL_MAJOR_VERSION 14 is VC 8
87 #
88 ifeq ($(CL_MAJOR_VERSION), 14)
89 a.dunfey 1.1 CXX_VERSION_FLAGS := -EHsc
90 CXX_VERSION_DEBUG_FLAGS := -RTCc -RTCsu
91 CXX_VERSION_RELEASE_FLAGS := -GF -GL -Gy
92 LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
93 DEFINES += -D_CRT_SECURE_NO_DEPRECATE
|
94 kavita.gupta 1.8 DEFINES += -D_CRT_NONSTDC_NO_DEPRECATE
|
95 a.dunfey 1.1 endif
96
97 CXX_VERSION_FLAGS := -Wp64 -EHsc
98 CXX_VERSION_DEBUG_FLAGS := -RTCc -RTCsu
99
|
100 kumpf 1.11 ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
|
101 a.dunfey 1.1 FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_DEBUG_FLAGS) -GR -W3 -Od -Zi -MDd -DDEBUG -Fd$(OBJ_DIR)/
102 LINK_FLAGS += -debug
103 else
104 FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_RELEASE_FLAGS) -GR -W3 -O2 -MD
|
105 s.kodali 1.7 LINK_FLAGS += $(LINK_VERSION_RELEASE_FLAGS) -map
|
106 a.dunfey 1.1 endif
107
108
109 ifdef PEGASUS_DEBUG_CIMEXCEPTION
110 DEFINES += -DPEGASUS_DEBUG_CIMEXCEPTION
111 endif
112
113 # if PEGASUS_ENABLE_SLP is already set then honor the users preference else
114 # Enable the compilation of the SLP functions.
115 #
116 ifndef PEGASUS_ENABLE_SLP
117 PEGASUS_ENABLE_SLP = true
118 endif
119
120 # ATTN KS 20020927 - Add flag to allow conditional testing of interoperability
121 # changes during interoperability tests.
122 ifdef PEGASUS_SNIA_INTEROP_TEST
123 DEFINES+= -DPEGASUS_SNIA_INTEROP_TEST
124 endif
125
126 RM = mu rm
127 a.dunfey 1.1
128 RMDIRHIER = mu rmdirhier
129
130 MKDIRHIER = mu mkdirhier
131
132 DIFF = mu compare
133
134 SORT = mu sort
135
136 COPY = mu copy
137
138 MOVE = mu move
139
140 CXX = cl -nologo
141
142 EXE_OUT = -Fe
143
144 LIB_OUT = -out:
145
146 OBJ = .obj
147
148 a.dunfey 1.1 OBJ_OUT = -Fo
149
150 EXE = .exe
151
152 DLL = .dll
153
154 ILK = .ilk
155
156 PDB = .pdb
157
158 EXP = .exp
159
160 AR = LINK -nologo -dll
161
162 LIB_PREFIX =
163
164 LIB_SUFFIX = .lib
165
166 TOUCH = mu touch
167
168 ECHO = mu echo
169 a.dunfey 1.1
170 LEX = flex
171
172 YACC = bison
173
174 SH = bash
175
|
176 s.kodali 1.7 RC = rc
177
|
178 a.dunfey 1.1 # Windows DLLs are installed in the $(PEGASUS_HOME)/bin directory
179 PEGASUS_DEST_LIB_DIR = bin
|
180 kumpf 1.11
|
181 a.dunfey 1.1 # The Provider User Context feature (PEP 197) is not supported on Windows
182 PEGASUS_DISABLE_PROV_USERCTXT=1
183
184 # Windows does not support local domain sockets or the equivalent Bug 2147
185 PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET=1
186
187 PEGASUS_JAVA_CLASSPATH_DELIMITER = ;
|
188 mateus.baur 1.3
189 ##################################
190 ##
191 ## Pegasus WMIMapper
|
192 kumpf 1.11 ##
|
193 mateus.baur 1.3 ##################################
194
195 ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
196 FLAGS += -DPEGASUS_WMIMAPPER
|
197 kumpf 1.11 else
|
198 mateus.baur 1.3 ifdef PEGASUS_WMIMAPPER
199 FLAGS += -DPEGASUS_WMIMAPPER
|
200 kumpf 1.11 endif
|
201 mateus.baur 1.3 endif
202
203 ##################################
|
204 kumpf 1.11 ##
|
205 mateus.baur 1.3 ## The newer compiler versions need neither MS Platform SDK installed nor MSSdk variable defined.
206 ##
207 ##################################
208 ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
209 ifeq ($(CL_MAJOR_VERSION), 12)
210 PEGASUS_WMIMAPPER_NEED_MSSDK=true
211 endif
|
212 kumpf 1.11 ifeq ($(CL_MAJOR_VERSION), 13)
|
213 mateus.baur 1.3 PEGASUS_WMIMAPPER_NEED_MSSDK=true
214 endif
215 ifeq ($(PEGASUS_WMIMAPPER_NEED_MSSDK),true)
216 ifndef MSSdk
217 $(error MSSdk environment variable undefined)
218 endif
219 endif
220 endif
|