1 martin 1.51 #//%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.52 #//
|
3 martin 1.51 #// 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.52 #//
|
10 martin 1.51 #// 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.52 #//
|
17 martin 1.51 #// The above copyright notice and this permission notice shall be included
18 #// in all copies or substantial portions of the Software.
|
19 martin 1.52 #//
|
20 martin 1.51 #// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.52 #// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.51 #// 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.52 #//
|
28 martin 1.51 #//////////////////////////////////////////////////////////////////////////
|
29 mike 1.1 OS_TYPE = windows
30 OS = win32
31 ARCHITECTURE = iX86
32 COMPILER = msvc
33
34 SYS_INCLUDES =
35
36 DEPEND_INCLUDES =
37
|
38 s.kodali 1.54 DEFINES = -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM) -D_WIN32_WINNT=0x0600
|
39 mike 1.6 #-D_WIN32_WINNT=0x0400 -DWINVER=0x0400
|
40 mike 1.1
|
41 david.dillard 1.27
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 marek 1.59 VC_CL_VERSIONS := 14 15 16
|
49 s.kodali 1.56 VC_CL_VERSION := $(findstring $(CL_MAJOR_VERSION), $(VC_CL_VERSIONS))
|
50 david.dillard 1.27
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 kumpf 1.53 # C:\Program Files\Microsoft Visual Studio\VC98\include\xlocale(467) :
67 # fatal error C1076: compiler limit : internal heap limit reached; use /Zm to
|
68 dave.sudlik 1.39 # specify a higher limit
|
69 kumpf 1.53 #
|
70 dave.sudlik 1.39 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 marek 1.59 # CL_MAJOR_VERSION 14, 15 or 16 (i.e., VC 8, VC 9 or VC 2010)
|
89 david.dillard 1.27 #
|
90 s.kodali 1.55 ifeq ($(CL_MAJOR_VERSION), $(VC_CL_VERSION))
|
91 s.kodali 1.57 CXX_VERSION_FLAGS := -EHsc
|
92 david.dillard 1.35 CXX_VERSION_DEBUG_FLAGS := -RTCc -RTCsu
93 CXX_VERSION_RELEASE_FLAGS := -GF -GL -Gy
|
94 dev.meetei 1.60 # VC 2010 only setting as it dont take /OPT:NOWIN98 anymore
95 ifeq ($(CL_MAJOR_VERSION), 16)
96 LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5
97 else
98 LINK_VERSION_RELEASE_FLAGS := /LTCG /OPT:REF /OPT:ICF=5 /OPT:NOWIN98
99 endif
|
100 david.dillard 1.27 DEFINES += -D_CRT_SECURE_NO_DEPRECATE
|
101 kavita.gupta 1.50 DEFINES += -D_CRT_NONSTDC_NO_DEPRECATE
|
102 david.dillard 1.27 endif
103
104
|
105 kumpf 1.53 ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
|
106 david.dillard 1.35 FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_DEBUG_FLAGS) -GR -W3 -Od -Zi -MDd -DDEBUG -Fd$(OBJ_DIR)/
107 LINK_FLAGS += -debug
|
108 mike 1.1 else
|
109 david.dillard 1.35 FLAGS = $(CXX_VERSION_FLAGS) $(CXX_VERSION_RELEASE_FLAGS) -GR -W3 -O2 -MD
|
110 kavita.gupta 1.47 LINK_FLAGS += $(LINK_VERSION_RELEASE_FLAGS) -map
|
111 mike 1.1 endif
112
|
113 david.dillard 1.27
|
114 karl 1.9 ifdef PEGASUS_DEBUG_CIMEXCEPTION
|
115 david.dillard 1.27 DEFINES += -DPEGASUS_DEBUG_CIMEXCEPTION
|
116 karl 1.9 endif
117
|
118 jim.wunderlich 1.40 # if PEGASUS_ENABLE_SLP is already set then honor the users preference else
|
119 karl 1.23 # Enable the compilation of the SLP functions.
|
120 jim.wunderlich 1.40 #
121 ifndef PEGASUS_ENABLE_SLP
|
122 a.dunfey 1.37 PEGASUS_ENABLE_SLP = true
|
123 joyce.j 1.34 endif
|
124 karl 1.23
|
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 kavita.gupta 1.47 RC = rc
178
|
179 kumpf 1.21 # Windows DLLs are installed in the $(PEGASUS_HOME)/bin directory
180 PEGASUS_DEST_LIB_DIR = bin
|
181 kumpf 1.53
|
182 kumpf 1.22 # The Provider User Context feature (PEP 197) is not supported on Windows
183 PEGASUS_DISABLE_PROV_USERCTXT=1
|
184 h.sterling 1.24
|
185 h.sterling 1.33 # Windows does not support local domain sockets or the equivalent Bug 2147
186 PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET=1
|
187 h.sterling 1.30
|
188 mark.hamzy 1.42 PEGASUS_JAVA_CLASSPATH_DELIMITER = ;
|
189 mateus.baur 1.44
190
191 ##################################
192 ##
193 ## Pegasus WMIMapper
|
194 kumpf 1.53 ##
|
195 mateus.baur 1.44 ##################################
196
197 ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
198 FLAGS += -DPEGASUS_WMIMAPPER
|
199 kumpf 1.53 else
|
200 mateus.baur 1.44 ifdef PEGASUS_WMIMAPPER
201 FLAGS += -DPEGASUS_WMIMAPPER
|
202 kumpf 1.53 endif
|
203 mateus.baur 1.44 endif
204
|
205 mateus.baur 1.46 ##################################
|
206 kumpf 1.53 ##
|
207 mateus.baur 1.46 ## The newer compiler versions need neither MS Platform SDK installed nor MSSdk variable defined.
208 ##
209 ##################################
|
210 mateus.baur 1.44 ifeq ($(PEGASUS_BUILD_WMIMAPPER),true)
|
211 mateus.baur 1.46 ifeq ($(CL_MAJOR_VERSION), 12)
212 PEGASUS_WMIMAPPER_NEED_MSSDK=true
213 endif
|
214 kumpf 1.53 ifeq ($(CL_MAJOR_VERSION), 13)
|
215 mateus.baur 1.46 PEGASUS_WMIMAPPER_NEED_MSSDK=true
216 endif
217 ifeq ($(PEGASUS_WMIMAPPER_NEED_MSSDK),true)
218 ifndef MSSdk
219 $(error MSSdk environment variable undefined)
220 endif
|
221 mateus.baur 1.44 endif
222 endif
223
224
|
225 mateus.baur 1.46
226
|