1 mike 1.1 ################################################################################
2 ##
3 ## Get external environment variables. Note that all external environment
4 ## variables begin with "PEGASUS_".
5 ##
6 ################################################################################
7
|
8 konrad.r 1.55 ifndef ROOT
9 ROOT = $(subst \,/,$(PEGASUS_ROOT))
10 endif
11
|
12 denise.eckstein 1.61 ifdef PEGASUS_ENVVAR_FILE
|
13 david.dillard 1.65 include $(PEGASUS_ENVVAR_FILE)
|
14 denise.eckstein 1.61 else
|
15 david.dillard 1.65 include $(ROOT)/env_var.status
|
16 denise.eckstein 1.61 endif
|
17 konrad.r 1.55
|
18 mike 1.2 ifdef PEGASUS_HOME
|
19 david.dillard 1.65 HOME_DIR = $(subst \,/,$(PEGASUS_HOME))
|
20 mike 1.1 else
|
21 david.dillard 1.65 $(error PEGASUS_HOME environment variable undefined)
|
22 mike 1.1 endif
23
|
24 karl 1.18 ifdef PEGASUS_ROOT
25 ROOT = $(subst \,/,$(PEGASUS_ROOT))
26 else
|
27 david.dillard 1.65 $(error PEGASUS_ROOT environment variable undefined)
|
28 karl 1.18 endif
29
|
30 chuck 1.35 # l10n
31 ifdef ICU_ROOT
32 ICUROOT = $(subst \,/,$(ICU_ROOT))
33 endif
34
|
35 kumpf 1.21 ifdef PEGASUS_TMP
|
36 david.dillard 1.65 TMP_DIR = $(subst \,/,$(PEGASUS_TMP))
|
37 kumpf 1.21 else
|
38 david.dillard 1.65 TMP_DIR = .
|
39 kumpf 1.21 endif
40
|
41 kumpf 1.26 ifdef PEGASUS_DISPLAYCONSUMER_DIR
|
42 david.dillard 1.65 DISPLAYCONSUMER_DIR = $(subst \,/,$(PEGASUS_DISPLAYCONSUMER_DIR))
|
43 kumpf 1.26 else
|
44 david.dillard 1.65 DISPLAYCONSUMER_DIR = $(subst \,/,$(PEGASUS_HOME))
|
45 kumpf 1.26 endif
46
|
47 mike 1.14 VALID_PLATFORMS = \
48 WIN32_IX86_MSVC \
49 LINUX_IX86_GNU \
|
50 david.eger 1.32 LINUX_PPC_GNU \
|
51 kumpf 1.19 LINUX_IA64_GNU \
|
52 david.eger 1.33 LINUX_ZSERIES_GNU \
|
53 mike 1.14 AIX_RS_IBMCXX \
54 HPUX_PARISC_ACC \
|
55 kumpf 1.22 HPUX_IA64_ACC \
|
56 mike 1.15 TRU64_ALPHA_DECCXX \
|
57 mike 1.16 SOLARIS_SPARC_GNU \
|
58 keith.petley 1.34 SOLARIS_SPARC_CC \
|
59 mike 1.16 ZOS_ZSERIES_IBM \
|
60 dudhe.girish 1.48 NSK_NONSTOP_NMCPLUS \
|
61 david.dillard 1.65 DARWIN_PPC_GNU
|
62 mike 1.8
63 ifndef PEGASUS_PLATFORM
|
64 david.dillard 1.65 $(error PEGASUS_PLATFORM environment variable undefined. Please set to\
65 one of the following: $(VALID_PLATFORMS))
|
66 mike 1.8 endif
67
|
68 mike 1.1 ################################################################################
69
|
70 kumpf 1.22 OBJ_DIR = $(HOME_DIR)/obj/$(DIR)
71 BIN_DIR = $(HOME_DIR)/bin
72 LIB_DIR = $(HOME_DIR)/lib
|
73 chuck 1.35
74 # l10n
75 # define the location for the compiled messages
76 MSG_ROOT = $(HOME_DIR)/msg
|
77 kumpf 1.22
78 # define the location for the repository
79 REPOSITORY_DIR = $(HOME_DIR)
80 REPOSITORY_ROOT = $(REPOSITORY_DIR)/repository
|
81 mike 1.1
|
82 kumpf 1.23 # The two variables, CIM_SCHEMA_DIR and CIM_SCHEMA_VER,
83 # are used to control the version of the CIM Schema
84 # loaded into the Pegasus Internal, InterOp,
85 # root/cimv2 and various test namespaces.
86 #
87 # Update the following two environment variables to
88 # change the version.
89
|
90 kumpf 1.37 # The environment variable PEGASUS_CIM_SCHEMA can be used
91 # to change the values of CIM_SCHEMA_DIR, CIM_SCHEMA_VER
92 # and ALLOW_EXPERIMENTAL.
93 #
94 # To use the PEGASUS_CIM_SCHEMA variable the Schema mof
95 # files must be placed in the directory
96 # $(PEGAUS_ROOT)/Schemas/$(PEGASUS_CIM_SCHEMA)
97 #
98 # The value of PEGASUS_CIM_SCHEMA must conform to the
99 # following syntax:
100 #
101 # CIM[Prelim]<CIM_SCHEMA_VER>
102 #
103 # The string "Prelim" should be included if the
104 # Schema contains "Experimental" class definitions.
105 #
106 # The value of <CIM_SCHEMA_VER> must be the value
107 # of the version string included by the DMTF as
108 # part of the mof file names (e.g, CIM_Core27.mof).
109 # Therefore, for example, the value of <CIM_SCHEMA_VER>
110 # for CIM27 Schema directories MUST be 27.
111 kumpf 1.37 #
112 # Examples of valid values of PEGASUS_CIM_SCHEMA
113 # include CIMPrelim27, CIM27, CIMPrelim28, and CIM28.
114 #
115 # Note the CIMPrelim271 would NOT be a valid value
116 # for PEGASUS_CIM_SCHEMA because the version string
117 # portion of the mof files (e.g., CIM_Core27.mof) in
118 # the CIMPrelimin271 directory is 27 not 271.
|
119 kumpf 1.23
|
120 gerarda 1.29 # ***** CIM_SCHEMA_DIR INFO ****
121 # If CIM_SCHEMA_DIR changes to use a preliminary schema which
122 # has experimentals make sure and change the path below to appopriate
123 # directory path. Example: CIMPrelim271 is preliminary and has
124 # experimental classes. Since experimental classes exist the -aE
125 # option of the mof compiler needs to be set.
126 # *****
|
127 kumpf 1.37
128 ifdef PEGASUS_CIM_SCHEMA
|
129 david.dillard 1.65 CIM_SCHEMA_DIR=$(PEGASUS_ROOT)/Schemas/$(PEGASUS_CIM_SCHEMA)
130 ifeq ($(findstring $(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA))),1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 271 28),)
131 CIM_SCHEMA_VER=
132 else
133 CIM_SCHEMA_VER=$(patsubst CIM%,%,$(patsubst CIMPrelim%,%,$(PEGASUS_CIM_SCHEMA)))
134 endif
|
135 kumpf 1.37 else
|
136 david.dillard 1.65 CIM_SCHEMA_DIR=$(PEGASUS_ROOT)/Schemas/CIM28
137 CIM_SCHEMA_VER=28
|
138 kumpf 1.37 endif
139
140 ifneq (, $(findstring Prelim, $(CIM_SCHEMA_DIR)))
|
141 david.dillard 1.65 ALLOW_EXPERIMENTAL = -aE
|
142 gerarda 1.29 else
|
143 david.dillard 1.65 ALLOW_EXPERIMENTAL =
|
144 gerarda 1.29 endif
145
|
146 bob 1.5 LEX = flex
147
|
148 mike 1.8 ################################################################################
149 ##
|
150 konrad.r 1.52 ## Default installation paths
151 ##
152 ################################################################################
153
154 ## Default values to install files when 'make install' is invoked.
155
156 ifndef PREFIX
|
157 david.dillard 1.65 PREFIX=$(HOME_DIR)/install
|
158 konrad.r 1.52 endif
159
160 ifndef SYSCONF_PREFIX
|
161 david.dillard 1.65 SYSCONF_PREFIX=$(PREFIX)/etc
|
162 konrad.r 1.52 endif
163
164 ifndef LOCAL_STATE_PREFIX
|
165 david.dillard 1.65 LOCAL_STATE_PREFIX=$(PREFIX)/var/
|
166 konrad.r 1.52 endif
167
168 ifndef DEST_LIB_DIR
|
169 david.dillard 1.65 DEST_LIB_DIR = $(PREFIX)/lib
|
170 konrad.r 1.52 endif
171
172 ifndef DEST_BIN_DIR
|
173 david.dillard 1.65 DEST_BIN_DIR = $(PREFIX)/bin
|
174 konrad.r 1.52 endif
175
176 ifndef DEST_SBIN_DIR
|
177 david.dillard 1.65 DEST_SBIN_DIR = $(PREFIX)/sbin
|
178 konrad.r 1.52 endif
179
180 ifndef DEST_ETC_DIR
|
181 david.dillard 1.65 DEST_ETC_DIR = $(SYSCONF_PREFIX)/pegasus
|
182 konrad.r 1.52 endif
183
184 ifndef DEST_MAN_DIR
|
185 david.dillard 1.65 DEST_MAN_DIR = $(PREFIX)/man
|
186 konrad.r 1.52 endif
187
188 ifndef DEST_VAR_DIR
|
189 david.dillard 1.65 DEST_VAR_DIR = $(LOCAL_STATE_PREFIX)
|
190 konrad.r 1.52 endif
191
192 ################################################################################
193 ##
|
194 mike 1.8 ## Attempt to include a platform configuration file:
195 ##
196 ################################################################################
197
|
198 mike 1.9 ifeq ($(PEGASUS_PLATFORM),WIN32_IX86_MSVC)
|
199 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
200 FOUND = true
|
201 mike 1.8 endif
202
|
203 mike 1.9 ifeq ($(PEGASUS_PLATFORM),LINUX_IX86_GNU)
|
204 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
205 FOUND = true
|
206 david.eger 1.32 endif
207
208 ifeq ($(PEGASUS_PLATFORM),LINUX_PPC_GNU)
|
209 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
210 FOUND = true
|
211 kumpf 1.19 endif
212
213 ifeq ($(PEGASUS_PLATFORM),LINUX_IA64_GNU)
|
214 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
215 FOUND = true
|
216 david.eger 1.33 endif
217
218 ifeq ($(PEGASUS_PLATFORM),LINUX_ZSERIES_GNU)
|
219 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
220 FOUND = true
|
221 mike 1.12 endif
222
223 ifeq ($(PEGASUS_PLATFORM),AIX_RS_IBMCXX)
|
224 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
225 FOUND = true
|
226 mike 1.13 endif
227
228 ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
|
229 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
230 FOUND = true
|
231 kumpf 1.22 endif
232
233 ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
|
234 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
235 FOUND = true
|
236 mike 1.14 endif
237
238 ifeq ($(PEGASUS_PLATFORM),TRU64_ALPHA_DECCXX)
|
239 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
240 FOUND = true
|
241 mike 1.15 endif
242
243 ifeq ($(PEGASUS_PLATFORM),SOLARIS_SPARC_GNU)
|
244 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
245 FOUND = true
|
246 keith.petley 1.34 endif
247
248 ifeq ($(PEGASUS_PLATFORM),SOLARIS_SPARC_CC)
|
249 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
250 FOUND = true
|
251 mike 1.16 endif
252
253 ifeq ($(PEGASUS_PLATFORM),ZOS_ZSERIES_IBM)
|
254 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
255 FOUND = true
|
256 mike 1.16 endif
257
258 ifeq ($(PEGASUS_PLATFORM),NSK_NONSTOP_NMCPLUS)
|
259 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
260 FOUND = true
|
261 dudhe.girish 1.48 endif
262
263 ifeq ($(PEGASUS_PLATFORM),DARWIN_PPC_GNU)
|
264 david.dillard 1.65 include $(ROOT)/mak/platform_$(PEGASUS_PLATFORM).mak
265 FOUND = true
|
266 mike 1.8 endif
267
268 ifneq ($(FOUND),true)
|
269 david.dillard 1.65 $(error PEGASUS_PLATFORM environment variable must be set to one of\
270 the following: $(VALID_PLATFORMS))
|
271 mike 1.8 endif
|
272 karl 1.17
|
273 karl 1.36 ################################################################################
274 ##
|
275 konrad.r 1.52 ## Default installation macros
276 ##
277 ################################################################################
278
279 ## INSTALL_LIB creates the destination directory if missing,
280 ## copies the library and generates the symbolic link.
281
282 ifndef INSTALL_LIBRARY
|
283 david.dillard 1.65 ## These macros are also defined in the Platform_<*>.mak files.
284 INSTALL_LIBRARY = $(MKDIRHIER) $(DEST_LIB_DIR); $(COPY) $(FULL_LIB) $(DEST_LIB_DIR)
|
285 konrad.r 1.52 endif
286
287 ## INSTALL_PROGRAM creates the destination directory if missing and
288 ## copies the file.
289 ifndef INSTALL_PROGRAM
|
290 david.dillard 1.65 INSTALL_PROGRAM = $(MKDIRHIER) $(DEST_BIN_DIR); $(COPY) $(FULL_PROGRAM) $(DEST_BIN_DIR)
|
291 konrad.r 1.52 endif
292 ## INSTALL_PROGRAM creates the destination directory if missing and
293 ## copies the file.
294 ifndef INSTALL_SBIN_PROGRAM
|
295 david.dillard 1.65 INSTALL_SBIN_PROGRAM = $(MKDIRHIER) $(DEST_SBIN_DIR); $(COPY) $(FULL_PROGRAM) $(DEST_SBIN_DIR)
|
296 konrad.r 1.52 endif
297 ## The rest of the macros for DEST_MAN_DIR, DEST_VAR_DIR, etc. are not provided in this file.
298
299 ################################################################################
300 ##
|
301 karl 1.36 ## Set up any platform independent compile conditionals by adding them to
302 ## precreated FLAGS parameter.
303 ## Assumes that the basic flags have been setup in FLAGS.
304 ## Assumes that compile time flags are controlled with -D CLI option.
305 ##
306 ################################################################################
|
307 karl 1.17
|
308 karl 1.36 # Setup the conditional compile for client displays.
309 #
310 ifdef PEGASUS_CLIENT_TRACE_ENABLE
|
311 david.dillard 1.65 DEFINES += -DPEGASUS_CLIENT_TRACE_ENABLE
|
312 karl 1.36 endif
313
|
314 mday 1.40 # do not compile trace code. sometimes it causes problems debugging
315 ifdef PEGASUS_REMOVE_TRACE
|
316 david.dillard 1.65 DEFINES += -DPEGASUS_REMOVE_TRACE
|
317 mday 1.40 endif
318
|
319 karl 1.43 # PEP 123 use monitor2 (the default) or not
|
320 dj.gorey 1.46 #ifdef PEGASUS_USE_23HTTPMONITOR_SERVER
|
321 david.dillard 1.65 DEFINES += -DPEGASUS_USE_23HTTPMONITOR_SERVER
|
322 dj.gorey 1.46 #endif
|
323 mday 1.40
|
324 dj.gorey 1.45 #BUG 1170 Monitor2 Client Workaround
|
325 dj.gorey 1.46 #ifdef PEGASUS_USE_23HTTPMONITOR_CLIENT
|
326 david.dillard 1.65 DEFINES += -DPEGASUS_USE_23HTTPMONITOR_CLIENT
|
327 dj.gorey 1.46 #endif
|
328 dj.gorey 1.45
|
329 chuck 1.47 # PEP 161
330 # Control whether utf-8 filenames are supported by the repository
331 ifdef PEGASUS_SUPPORT_UTF8_FILENAME
|
332 david.dillard 1.65 DEFINES += -DPEGASUS_SUPPORT_UTF8_FILENAME
|
333 chuck 1.47
|
334 david.dillard 1.65 # Control whether utf-8 filenames in the repository are escaped
335 ifdef PEGASUS_REPOSITORY_ESCAPE_UTF8
336 DEFINES += -DPEGASUS_REPOSITORY_ESCAPE_UTF8
337 endif
|
338 chuck 1.47 endif
339
|
340 kumpf 1.49 #
341 # PEP 142
342 # The following flag need to be set to enable
343 # user group authorization functionality.
344 #
345 ifdef PEGASUS_ENABLE_USERGROUP_AUTHORIZATION
|
346 david.dillard 1.65 DEFINES += -DPEGASUS_ENABLE_USERGROUP_AUTHORIZATION
|
347 kumpf 1.49 endif
348
349
|
350 karl 1.39 # setup function to enable SLP functions in the Pegasus standard compile
351 # Set the environment varaible PEGASUS_ENABLE_SLP to enable SLP code.
352 ifdef PEGASUS_ENABLE_SLP
|
353 david.dillard 1.65 DEFINES += -DPEGASUS_ENABLE_SLP
|
354 karl 1.39 endif
|
355 karl 1.36
|
356 karl 1.60 # set PEGASUS_DEBUG into the DEFINES if it exists.
357 # Note that this flag is the general separator between
358 # debug compiles and non-debug compiles and controls both
359 # the use of any debug options on compilers and linkers
360 # and general debug support that we want to be turned on in
361 # debug mode.
362 ifdef PEGASUS_DEBUG
|
363 david.dillard 1.65 DEFINES += -DPEGASUS_DEBUG
|
364 karl 1.60 endif
365
|
366 chuck 1.42 # compile in the experimental APIs
|
367 david.dillard 1.65 DEFINES += -DPEGASUS_USE_EXPERIMENTAL_INTERFACES
|
368 chuck 1.42
|
369 w.white 1.57 # Set compile flag to control compilation of CIMOM statistics
370 ifdef PEGASUS_HAS_PERFINST
|
371 david.dillard 1.65 FLAGS += -DPEGASUS_HAS_PERFINST
|
372 w.white 1.57 endif
|
373 kumpf 1.56
374 ############################################################
375 #
376 # Set any vendor-specific compile flags
377 #
378 ############################################################
379
380 ifdef PEGASUS_VENDOR_HP
|
381 david.dillard 1.65 DEFINES+= -DPEGASUS_VENDOR_HP
|
382 kumpf 1.56 endif
383
|
384 karl 1.36
|
385 karl 1.17 ############################################################
386 #
387 # Set up other Make Variables that depend on platform config files
388 #
389 ############################################################
390
391 # This is temporary until we end up with a better place to
392 # put this variable
393 # Makefiles can do directory remove with
394 # $(RMREPOSITORY) repositoryname
395 #
396 RMREPOSITORY = $(RMDIRHIER)
397
|
398 w.otsuka 1.63 ifdef PEGASUS_USE_RELEASE_CONFIG_OPTIONS
|
399 david.dillard 1.65 FLAGS += -DPEGASUS_USE_RELEASE_CONFIG_OPTIONS
|
400 w.otsuka 1.62 endif
401
402 ifdef PEGASUS_USE_RELEASE_DIRS
|
403 david.dillard 1.65 FLAGS += -DPEGASUS_USE_RELEASE_DIRS
|
404 w.otsuka 1.62 endif
|
405 mday 1.27
|
406 kumpf 1.64 # Unless otherwise specified, Pegasus libraries go in $(PEGASUS_HOME)/lib
407 ifndef PEGASUS_DEST_LIB_DIR
|
408 david.dillard 1.65 PEGASUS_DEST_LIB_DIR = lib
|
409 kumpf 1.64 endif
|
410 mday 1.28
|
411 kumpf 1.64 DEFINES += -DPEGASUS_DEST_LIB_DIR=\"$(PEGASUS_DEST_LIB_DIR)\"
|