1 a.dunfey 1.1 #//%2006////////////////////////////////////////////////////////////////////////
2 #//
3 #// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 #// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 #// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
6 #// IBM Corp.; EMC Corporation, The Open Group.
7 #// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 #// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
9 #// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 #// EMC Corporation; VERITAS Software Corporation; The Open Group.
11 #// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 #// EMC Corporation; Symantec Corporation; The Open Group.
13 #//
14 #// Permission is hereby granted, free of charge, to any person obtaining a copy
15 #// of this software and associated documentation files (the "Software"), to
16 #// deal in the Software without restriction, including without limitation the
17 #// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 #// sell copies of the Software, and to permit persons to whom the Software is
19 #// furnished to do so, subject to the following conditions:
20 #//
21 #// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 a.dunfey 1.1 #// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 #// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 #// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 #// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 #// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 #// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 #// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 #//
30 #//==============================================================================
31 OS_TYPE = windows
32 OS = win64
33 ARCHITECTURE = X86X64
34 COMPILER = msvc
35
36 SYS_INCLUDES =
37
38 DEPEND_INCLUDES =
39
40 DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM) -D_WIN32_WINNT=0x0400
41 #-D_WIN32_WINNT=0x0400 -DWINVER=0x0400
42
43 a.dunfey 1.1
44 #
45 # Determine the version of the compiler being used.
46 #
47 CL_VERSION := $(word 8, $(shell cl.exe 2>&1))
48 CL_MAJOR_VERSION := $(word 1, $(subst ., , $(CL_VERSION)))
49
|
50 dave.sudlik 1.2
51 #
52 # Determine the version of Windows being used.
53 # IPv6 is not supported on Windows 2000 (earliest Windows version supported
54 # by Pegasus), nor by the VC 6 compiler (CL_MAJOR_VERSION is 12 for VC 6).
55 #
56 WIN_VERSION := $(shell ver)
57 ifeq ($(findstring [Version 5.0.,$(WIN_VERSION)),[Version 5.0.)
58 PEGASUS_ENABLE_IPV6 = false
59 endif
60 ifeq ($(CL_MAJOR_VERSION), 12)
61 PEGASUS_ENABLE_IPV6 = false
62 endif
63
64
|
65 a.dunfey 1.1 #
66 # The flags set here should be valid for VC 6.
67 #
68 # The -Zm105 flag was added as part of bug 4418 to resolve this compile error:
69 # C:\Program Files\Microsoft Visual Studio\VC98\include\xlocale(467) :
70 # fatal error C1076: compiler limit : internal heap limit reached; use /Zm to
71 # specify a higher limit
72 #
73 CXX_VERSION_FLAGS := -Zm105
74 CXX_VERSION_DEBUG_FLAGS :=
75 CXX_VERSION_RELEASE_FLAGS :=
76 LINK_VERSION_RELEASE_FLAGS :=
77
78
79 #
80 # CL_MAJOR_VERSION 13 is VC 7
81 #
82 ifeq ($(CL_MAJOR_VERSION), 13)
83 CXX_VERSION_FLAGS := -EHsc
84 CXX_VERSION_DEBUG_FLAGS := -Gs
85 CXX_VERSION_RELEASE_FLAGS := -Gs -GF -Gy
86 a.dunfey 1.1 LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
87 endif
88
89
90 #
91 # CL_MAJOR_VERSION 14 is VC 8
92 #
93 ifeq ($(CL_MAJOR_VERSION), 14)
94 CXX_VERSION_FLAGS := -EHsc
95 CXX_VERSION_DEBUG_FLAGS := -RTCc -RTCsu
96 CXX_VERSION_RELEASE_FLAGS := -GF -GL -Gy
97 LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
98 DEFINES += -D_CRT_SECURE_NO_DEPRECATE
99 endif
100
101 CXX_VERSION_FLAGS := -Wp64 -EHsc
102 CXX_VERSION_DEBUG_FLAGS := -RTCc -RTCsu
103
104 ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
105 FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_DEBUG_FLAGS) -GR -W3 -Od -Zi -MDd -DDEBUG -Fd$(OBJ_DIR)/
106 LINK_FLAGS += -debug
107 a.dunfey 1.1 else
108 FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_RELEASE_FLAGS) -GR -W3 -O2 -MD
109 LINK_FLAGS += $(LINK_VERSION_RELEASE_FLAGS)
110 endif
111
112
113 ifdef PEGASUS_DEBUG_CIMEXCEPTION
114 DEFINES += -DPEGASUS_DEBUG_CIMEXCEPTION
115 endif
116
117 # if PEGASUS_ENABLE_SLP is already set then honor the users preference else
118 # Enable the compilation of the SLP functions.
119 #
120 ifndef PEGASUS_ENABLE_SLP
121 PEGASUS_ENABLE_SLP = true
122 endif
123
124 # ATTN KS 20020927 - Add flag to allow conditional testing of interoperability
125 # changes during interoperability tests.
126 ifdef PEGASUS_SNIA_INTEROP_TEST
127 DEFINES+= -DPEGASUS_SNIA_INTEROP_TEST
128 a.dunfey 1.1 endif
129
130 RM = mu rm
131
132 RMDIRHIER = mu rmdirhier
133
134 MKDIRHIER = mu mkdirhier
135
136 DIFF = mu compare
137
138 SORT = mu sort
139
140 COPY = mu copy
141
142 MOVE = mu move
143
144 CXX = cl -nologo
145
146 EXE_OUT = -Fe
147
148 LIB_OUT = -out:
149 a.dunfey 1.1
150 OBJ = .obj
151
152 OBJ_OUT = -Fo
153
154 EXE = .exe
155
156 DLL = .dll
157
158 ILK = .ilk
159
160 PDB = .pdb
161
162 EXP = .exp
163
164 AR = LINK -nologo -dll
165
166 LIB_PREFIX =
167
168 LIB_SUFFIX = .lib
169
170 a.dunfey 1.1 TOUCH = mu touch
171
172 ECHO = mu echo
173
174 LEX = flex
175
176 YACC = bison
177
178 SH = bash
179
180 # Windows DLLs are installed in the $(PEGASUS_HOME)/bin directory
181 PEGASUS_DEST_LIB_DIR = bin
182
183 # The Provider User Context feature (PEP 197) is not supported on Windows
184 PEGASUS_DISABLE_PROV_USERCTXT=1
185
186 # Windows does not support local domain sockets or the equivalent Bug 2147
187 PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET=1
188
189 # l10n
190 ifdef PEGASUS_HAS_MESSAGES
191 a.dunfey 1.1 DEFINES += -DPEGASUS_HAS_MESSAGES
192 ifdef ICU_ROOT
193 MSG_COMPILE = genrb
194 MSG_FLAGS =
195 MSG_SOURCE_EXT = .txt
196 MSG_COMPILE_EXT = .res
197 CNV_ROOT_CMD = cnv2rootbundle
198
199 ##################################
200 ##
201 ## ICU_NO_UPPERCASE_ROOT if set, specifies NOT to uppercase the root resource bundle,
202 ## default is to uppercase the root resource bundle##
203 ##################################
204
205 ifdef ICU_NO_UPPERCASE_ROOT
206 CNV_ROOT_FLAGS =
207 else
208 CNV_ROOT_FLAGS = -u
209 endif
210
211 ####################################
212 a.dunfey 1.1 ##
213 ## ICU_ROOT_BUNDLE_LANG if set, specifies the language that the root resource bundle will be generated from
214 ## defaults to _en if not set. if set, for any directory containing resource bundles,
215 ## there must exist a file name: package(the value of ICU_ROOT_BUNDLE_LANG).txt or the make messages target will fail
216 ##
217 ## We have to use the full path library because the cl /Fe command in program-windows.mak does
218 ## not take libpath as an argument (as far as I can tell)
219 ####################################
220
221 ifdef ICU_ROOT_BUNDLE_LANG
222 MSG_ROOT_SOURCE = $(ICU_ROOT_BUNDLE_LANG)
223 else
224 MSG_ROOT_SOURCE = _en
225 endif
226 DEFINES += -DPEGASUS_HAS_ICU
227 EXTRA_LIBRARIES += $(ICU_INSTALL)/lib/icuuc.lib $(ICU_INSTALL)/lib/icuin.lib $(ICU_INSTALL)/lib/icudt.lib
228 SYS_INCLUDES += -I$(ICU_ROOT)/source/common -I$(ICU_ROOT)/source/i18n
229 endif
230 endif
231
232 PEGASUS_JAVA_CLASSPATH_DELIMITER = ;
|
233 mateus.baur 1.3
234 ##################################
235 ##
236 ## Pegasus WMIMapper
237 ##
238 ##################################
239
240 ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
241 FLAGS += -DPEGASUS_WMIMAPPER
242 else
243 ifdef PEGASUS_WMIMAPPER
244 FLAGS += -DPEGASUS_WMIMAPPER
245 endif
246 endif
247
248 ##################################
249 ##
250 ## The newer compiler versions need neither MS Platform SDK installed nor MSSdk variable defined.
251 ##
252 ##################################
253 ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
254 mateus.baur 1.3 ifeq ($(CL_MAJOR_VERSION), 12)
255 PEGASUS_WMIMAPPER_NEED_MSSDK=true
256 endif
257 ifeq ($(CL_MAJOR_VERSION), 13)
258 PEGASUS_WMIMAPPER_NEED_MSSDK=true
259 endif
260 ifeq ($(PEGASUS_WMIMAPPER_NEED_MSSDK),true)
261 ifndef MSSdk
262 $(error MSSdk environment variable undefined)
263 endif
264 endif
265 endif
|