1 karl 1.41 #//%2006////////////////////////////////////////////////////////////////////////
|
2 martin 1.36 #//
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 karl 1.41 #// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 #// EMC Corporation; Symantec Corporation; The Open Group.
|
13 martin 1.36 #//
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 #// 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 mike 1.1 OS_TYPE = windows
32 OS = win32
33 ARCHITECTURE = iX86
34 COMPILER = msvc
35
36 SYS_INCLUDES =
37
38 DEPEND_INCLUDES =
39
|
40 kumpf 1.17 DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM) -D_WIN32_WINNT=0x0400
|
41 mike 1.6 #-D_WIN32_WINNT=0x0400 -DWINVER=0x0400
|
42 mike 1.1
|
43 david.dillard 1.27
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
51 #
|
52 dave.sudlik 1.43 # Determine the version of Windows being used.
53 # IPv6 is not supported on Windows 2000 (earliest Windows version supported
|
54 dave.sudlik 1.45 # by Pegasus), but we don't enforce that here.
55 # IPv6 is not supported by the VC 6 compiler (CL_MAJOR_VERSION is 12 for VC 6).
|
56 dave.sudlik 1.43 #
57 ifeq ($(CL_MAJOR_VERSION), 12)
58 PEGASUS_ENABLE_IPV6 = false
59 endif
60
61
62 #
|
63 david.dillard 1.27 # The flags set here should be valid for VC 6.
64 #
|
65 dave.sudlik 1.39 # The -Zm105 flag was added as part of bug 4418 to resolve this compile error:
66 # C:\Program Files\Microsoft Visual Studio\VC98\include\xlocale(467) :
67 # fatal error C1076: compiler limit : internal heap limit reached; use /Zm to
68 # specify a higher limit
69 #
70 CXX_VERSION_FLAGS := -GX -Zm105
|
71 david.dillard 1.35 CXX_VERSION_DEBUG_FLAGS :=
72 CXX_VERSION_RELEASE_FLAGS :=
73 LINK_VERSION_RELEASE_FLAGS :=
|
74 david.dillard 1.27
75
76 #
77 # CL_MAJOR_VERSION 13 is VC 7
78 #
79 ifeq ($(CL_MAJOR_VERSION), 13)
|
80 david.dillard 1.35 CXX_VERSION_FLAGS := -Wp64 -EHsc
81 CXX_VERSION_DEBUG_FLAGS := -Gs
82 CXX_VERSION_RELEASE_FLAGS := -Gs -GF -Gy
83 LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
|
84 david.dillard 1.27 endif
85
86
87 #
88 # CL_MAJOR_VERSION 14 is VC 8
89 #
90 ifeq ($(CL_MAJOR_VERSION), 14)
|
91 david.dillard 1.35 CXX_VERSION_FLAGS := -Wp64 -EHsc
92 CXX_VERSION_DEBUG_FLAGS := -RTCc -RTCsu
93 CXX_VERSION_RELEASE_FLAGS := -GF -GL -Gy
94 LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
|
95 david.dillard 1.27 DEFINES += -D_CRT_SECURE_NO_DEPRECATE
96 endif
97
98
|
99 aruran.ms 1.38 ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
|
100 david.dillard 1.35 FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_DEBUG_FLAGS) -GR -W3 -Od -Zi -MDd -DDEBUG -Fd$(OBJ_DIR)/
101 LINK_FLAGS += -debug
|
102 mike 1.1 else
|
103 david.dillard 1.35 FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_RELEASE_FLAGS) -GR -W3 -O2 -MD
104 LINK_FLAGS += $(LINK_VERSION_RELEASE_FLAGS)
|
105 mike 1.1 endif
106
|
107 david.dillard 1.27
|
108 karl 1.9 ifdef PEGASUS_DEBUG_CIMEXCEPTION
|
109 david.dillard 1.27 DEFINES += -DPEGASUS_DEBUG_CIMEXCEPTION
|
110 karl 1.9 endif
111
|
112 jim.wunderlich 1.40 # if PEGASUS_ENABLE_SLP is already set then honor the users preference else
|
113 karl 1.23 # Enable the compilation of the SLP functions.
|
114 jim.wunderlich 1.40 #
115 ifndef PEGASUS_ENABLE_SLP
|
116 a.dunfey 1.37 PEGASUS_ENABLE_SLP = true
|
117 joyce.j 1.34 endif
|
118 karl 1.23
|
119 karl 1.11 # ATTN KS 20020927 - Add flag to allow conditional testing of interoperability
120 # changes during interoperability tests.
121 ifdef PEGASUS_SNIA_INTEROP_TEST
|
122 david.dillard 1.27 DEFINES+= -DPEGASUS_SNIA_INTEROP_TEST
|
123 karl 1.11 endif
|
124 kumpf 1.22
|
125 mike 1.1 RM = mu rm
126
127 RMDIRHIER = mu rmdirhier
128
129 MKDIRHIER = mu mkdirhier
130
|
131 jim.wunderlich 1.26 DIFF = mu compare
132
133 SORT = mu sort
134
|
135 mike 1.1 COPY = mu copy
136
|
137 mike 1.4 MOVE = mu move
138
|
139 mike 1.1 CXX = cl -nologo
140
141 EXE_OUT = -Fe
142
143 LIB_OUT = -out:
144
145 OBJ = .obj
146
147 OBJ_OUT = -Fo
148
149 EXE = .exe
|
150 tony 1.15
151 DLL = .dll
152
153 ILK = .ilk
154
155 PDB = .pdb
156
157 EXP = .exp
|
158 mike 1.1
159 AR = LINK -nologo -dll
160
161 LIB_PREFIX =
162
163 LIB_SUFFIX = .lib
164
165 TOUCH = mu touch
166
167 ECHO = mu echo
168
169 LEX = flex
170
171 YACC = bison
|
172 mike 1.3
173 SH = bash
|
174 mike 1.4
175 YACC = bison
|
176 konrad.r 1.19
|
177 kumpf 1.21 # Windows DLLs are installed in the $(PEGASUS_HOME)/bin directory
178 PEGASUS_DEST_LIB_DIR = bin
|
179 kumpf 1.22
180 # The Provider User Context feature (PEP 197) is not supported on Windows
181 PEGASUS_DISABLE_PROV_USERCTXT=1
|
182 h.sterling 1.24
|
183 h.sterling 1.33 # Windows does not support local domain sockets or the equivalent Bug 2147
184 PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET=1
|
185 h.sterling 1.30
|
186 h.sterling 1.24 # l10n
187 ifdef PEGASUS_HAS_MESSAGES
|
188 david.dillard 1.27 DEFINES += -DPEGASUS_HAS_MESSAGES
189 ifdef ICU_ROOT
|
190 h.sterling 1.30 MSG_COMPILE = genrb
191 MSG_FLAGS =
192 MSG_SOURCE_EXT = .txt
193 MSG_COMPILE_EXT = .res
194 CNV_ROOT_CMD = cnv2rootbundle
|
195 h.sterling 1.24
196 ##################################
197 ##
198 ## ICU_NO_UPPERCASE_ROOT if set, specifies NOT to uppercase the root resource bundle,
199 ## default is to uppercase the root resource bundle##
200 ##################################
201
202 ifdef ICU_NO_UPPERCASE_ROOT
|
203 david.dillard 1.27 CNV_ROOT_FLAGS =
|
204 h.sterling 1.24 else
|
205 david.dillard 1.27 CNV_ROOT_FLAGS = -u
|
206 h.sterling 1.24 endif
207
208 ####################################
209 ##
210 ## ICU_ROOT_BUNDLE_LANG if set, specifies the language that the root resource bundle will be generated from
211 ## defaults to _en if not set. if set, for any directory containing resource bundles,
212 ## there must exist a file name: package(the value of ICU_ROOT_BUNDLE_LANG).txt or the make messages target will fail
213 ##
214 ## We have to use the full path library because the cl /Fe command in program-windows.mak does
215 ## not take libpath as an argument (as far as I can tell)
216 ####################################
217
218 ifdef ICU_ROOT_BUNDLE_LANG
|
219 david.dillard 1.27 MSG_ROOT_SOURCE = $(ICU_ROOT_BUNDLE_LANG)
|
220 h.sterling 1.24 else
|
221 david.dillard 1.27 MSG_ROOT_SOURCE = _en
|
222 h.sterling 1.24 endif
|
223 david.dillard 1.27 DEFINES += -DPEGASUS_HAS_ICU
224 EXTRA_LIBRARIES += $(ICU_INSTALL)/lib/icuuc.lib $(ICU_INSTALL)/lib/icuin.lib $(ICU_INSTALL)/lib/icudt.lib
225 SYS_INCLUDES += -I$(ICU_ROOT)/source/common -I$(ICU_ROOT)/source/i18n
226 endif
|
227 h.sterling 1.24 endif
|
228 mark.hamzy 1.42
229 PEGASUS_JAVA_CLASSPATH_DELIMITER = ;
|
230 mateus.baur 1.44
231
232 ##################################
233 ##
234 ## Pegasus WMIMapper
235 ##
236 ##################################
237
238 ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
239 FLAGS += -DPEGASUS_WMIMAPPER
240 else
241 ifdef PEGASUS_WMIMAPPER
242 FLAGS += -DPEGASUS_WMIMAPPER
243 endif
244 endif
245
|
246 mateus.baur 1.46 ##################################
247 ##
248 ## The newer compiler versions need neither MS Platform SDK installed nor MSSdk variable defined.
249 ##
250 ##################################
|
251 mateus.baur 1.44 ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
|
252 mateus.baur 1.46 ifeq ($(CL_MAJOR_VERSION), 12)
253 PEGASUS_WMIMAPPER_NEED_MSSDK=true
254 endif
255 ifeq ($(CL_MAJOR_VERSION), 13)
256 PEGASUS_WMIMAPPER_NEED_MSSDK=true
257 endif
258 ifeq ($(PEGASUS_WMIMAPPER_NEED_MSSDK),true)
259 ifndef MSSdk
260 $(error MSSdk environment variable undefined)
261 endif
|
262 mateus.baur 1.44 endif
263 endif
264
265
|
266 mateus.baur 1.46
267
|