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