1 martin 1.29 #//%2005////////////////////////////////////////////////////////////////////////
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 #//
12 #// Permission is hereby granted, free of charge, to any person obtaining a copy
13 #// of this software and associated documentation files (the "Software"), to
14 #// deal in the Software without restriction, including without limitation the
15 #// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16 #// sell copies of the Software, and to permit persons to whom the Software is
17 #// furnished to do so, subject to the following conditions:
18 #//
19 #// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
20 #// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
21 #// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
22 martin 1.29 #// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
23 #// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
24 #// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
25 #// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 #// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 #//
28 #//==============================================================================
|
29 denise.eckstein 1.25 # commands.mak is a helper Makefile that is intended to be included in an upper level Makefile.
|
30 denise.eckstein 1.14
31 # Ensure that config.mak is included (so that the ROOT variable is set correctly)
32
|
33 kumpf 1.12 ifndef ROOT
34 ifdef PEGASUS_ROOT
35 ROOT = $(subst \,/,$(PEGASUS_ROOT))
36 else
37 ROOT = .
|
38 david.dillard 1.8 endif
39 include $(ROOT)/mak/config.mak
|
40 denise.eckstein 1.1 endif
41
|
42 denise.eckstein 1.19 ifndef OPENSSL_BIN
43 OPENSSL_BIN = $(OPENSSL_HOME)/bin
44 endif
45
|
46 h.sterling 1.21 OPENSSL_COMMAND = $(OPENSSL_BIN)/openssl
47
|
48 denise.eckstein 1.1 ifeq ($(OS),win32)
|
49 david.dillard 1.8 STRIPCRS = stripcrs $(RESULTFILE) $(MASTERRESULTFILE)
50 DIFF = mu compare
|
51 jim.wunderlich 1.22 SORT = mu sort
|
52 david.dillard 1.8 REDIRECTERROR = 2>&1
|
53 kumpf 1.16 CIMSERVER_START_SERVICE = $(CIMSERVER_PATH)cimserver $(CIMSERVER_CONFIG_OPTIONS) -start
|
54 denise.eckstein 1.15 CIMSERVER_STOP_SERVICE = $(CIMSERVER_PATH)cimserver -stop
|
55 joyce.j 1.11 SLEEP = mu sleep
|
56 david.dillard 1.8 REMOVE_PEGASUS_DIRECTORY = mu rmdirhier pegasus
57 MUEXE = mu.exe
|
58 jim.wunderlich 1.22 RM = mu rm
|
59 david.dillard 1.8 MKDIRHIER = $(MUEXE) mkdirhier
60 RMDIRHIER = $(MUEXE) rmdirhier
61 ECHO = mu echo
|
62 denise.eckstein 1.13 ECHO-E = mu echo-e
|
63 david.dillard 1.8 COPY = mu copy
64 CHMOD =
65 CHOWN =
66 CHGRP =
|
67 nag.boranna 1.18 CURRENT_USER=Administrator
|
68 denise.eckstein 1.1 endif
69
70 ifeq ($(OS),HPUX)
|
71 david.dillard 1.8 STRIPCRS =
72 DIFF = diff
|
73 jim.wunderlich 1.22 SORT = sort
|
74 david.dillard 1.8 REDIRECTERROR = 2>&1
|
75 denise.eckstein 1.15 CIMSERVER_START_SERVICE = $(CIMSERVER_PATH)cimserver $(CIMSERVER_CONFIG_OPTIONS)
76 CIMSERVER_STOP_SERVICE = $(CIMSERVER_PATH)cimserver -s
|
77 david.dillard 1.8 SLEEP = sleep
78 REMOVE_PEGASUS_DIRECTORY = rm -Rf pegasus.old; mv pegasus pegasus.old
79 MUEXE = mu
80 MKDIRHIER = mkdir -p
81 RMDIRHIER = rm -rf
82 CPDIRHIER = cp -R
83 ECHO = echo
|
84 denise.eckstein 1.13 ECHO-E = echo
|
85 david.dillard 1.8 COPY = cp
86 TOUCH = touch
87 CAT = cat
88 DOCXX = doc++
89
90 GENERATE_RANDSEED = randseed
|
91 denise.eckstein 1.25 GET_HOSTNAME = `nslookup \`hostname\` | grep "Name:" | sed 's/Name:[ ]*//'`
|
92 david.dillard 1.8
93 ifeq ($(PEGASUS_PLATFORM), HPUX_PARISC_ACC)
94 LIB_LINK_SUFFIX = .sl
95 else
96 LIB_LINK_SUFFIX = .so
97 endif
98
|
99 denise.eckstein 1.19 Prwxr_xr_x = 755
|
100 denise.eckstein 1.24 Prwxrwxrwx = 777
|
101 denise.eckstein 1.19 Pr_xr__r__ = 744
102 Pr__r__r__ = 444
103 Pr________ = 400
104 Pr_xr_xr_x = 555
105 Prw_r__r__ = 644
|
106 david.dillard 1.8 CHMODDIRHIER = chmod -R
107
108 INSTALL_USR = bin
109 INSTALL_GRP = bin
110 CIMSERVER_USR = root
111 CIMSERVER_GRP = sys
112 CHMOD = chmod
113 CHOWN = chown
114 CHGRP = chgrp
115 CHOWNDIRHIER = chown -R
116 CHGRPDIRHIER = chgrp -R
|
117 denise.eckstein 1.2
|
118 david.dillard 1.8 SYMBOLIC_LINK_CMD = ln -f -s
|
119 nag.boranna 1.18
120 CURRENT_USER=`whoami`
|
121 denise.eckstein 1.1 endif
122
123 ifeq ($(OS),solaris)
|
124 david.dillard 1.8 STRIPCRS =
125 DIFF = diff
|
126 jim.wunderlich 1.22 SORT = sort
|
127 david.dillard 1.8 REDIRECTERROR = 2>&1
|
128 denise.eckstein 1.15 CIMSERVER_START_SERVICE = $(CIMSERVER_PATH)cimserver $(CIMSERVER_CONFIG_OPTIONS)
|
129 david.dillard 1.8 CIMSERVER_STOP_SERVICE = /usr/bin/ps -ef | /usr/bin/grep cimserver | /usr/bin/grep -v grep | /usr/bin/awk '{print "kill -9 "$$2 |"/usr/bin/ksh"}'
130 SLEEP = sleep
131 REMOVE_PEGASUS_DIRECTORY = rm -Rf pegasus.old; mv pegasus pegasus.old
132 MUEXE = mu
|
133 jim.wunderlich 1.22 RM = rm -f
|
134 david.dillard 1.8 MKDIRHIER = mkdir -p
135 RMDIRHIER = rm -rf
136 ECHO = echo
|
137 denise.eckstein 1.13 ECHO-E = mu echo-e
|
138 david.dillard 1.8 COPY = cp
139 CHMOD =
140 CHOWN =
141 CHGRP =
|
142 denise.eckstein 1.1 endif
143
144 ifeq ($(OS),linux)
|
145 david.dillard 1.8 STRIPCRS =
146 DIFF = diff
|
147 jim.wunderlich 1.22 SORT = sort
|
148 david.dillard 1.8 REDIRECTERROR = 2>&1
|
149 denise.eckstein 1.15 CIMSERVER_START_SERVICE = $(CIMSERVER_PATH)cimserver $(CIMSERVER_CONFIG_OPTIONS)
150 CIMSERVER_STOP_SERVICE = $(CIMSERVER_PATH)cimserver -s
|
151 david.dillard 1.8 SLEEP = sleep
152 REMOVE_PEGASUS_DIRECTORY = rm -Rf pegasus.old; mv pegasus pegasus.old
153 MUEXE = mu
154 MKDIRHIER = mkdir -p
155 RMDIRHIER = rm -rf
156 CPDIRHIER = cp -R
157 ECHO = echo
|
158 denise.eckstein 1.13 ECHO-E = echo -e
|
159 david.dillard 1.8 COPY = cp
160 TOUCH = touch
161 CAT = cat
162 DOCXX = doc++
163
|
164 denise.eckstein 1.25 GET_HOSTNAME = `host \`hostname\`|cut -d" " -f1`
|
165 david.dillard 1.8
166 LIB_LINK_SUFFIX = .so
167
|
168 denise.eckstein 1.24 Prwxrwxrwx = 777
|
169 denise.eckstein 1.19 Prwxr_xr_x = 755
170 Pr_xr__r__ = 744
171 Pr__r__r__ = 444
172 Pr________ = 400
173 Pr_xr_xr_x = 555
|
174 denise.eckstein 1.23 Pr_x______ = 500
|
175 denise.eckstein 1.19 Prw_r__r__ = 644
|
176 david.dillard 1.8 CHMODDIRHIER = chmod -R
177
|
178 denise.eckstein 1.27 INSTALL_USR = root
179 INSTALL_GRP = root
|
180 david.dillard 1.8 CIMSERVER_USR = root
181 CIMSERVER_GRP = root
182 CHMOD = chmod
183 CHOWN = chown
184 CHGRP = chgrp
185 CHOWNDIRHIER = chown -R
186 CHGRPDIRHIER = chgrp -R
|
187 denise.eckstein 1.4
|
188 david.dillard 1.8 SYMBOLIC_LINK_CMD = ln -f -s
|
189 denise.eckstein 1.20
190 CURRENT_USER=`whoami`
|
191 denise.eckstein 1.1 endif
192
193 ifeq ($(OS),zos)
|
194 david.dillard 1.8 STRIPCRS =
|
195 gs.keenan 1.9 DIFF = diff
|
196 jim.wunderlich 1.22 SORT = sort
|
197 david.dillard 1.8 REDIRECTERROR =
|
198 denise.eckstein 1.15 CIMSERVER_START_SERVICE = $(CIMSERVER_PATH)cimserver $(CIMSERVER_CONFIG_OPTIONS)
199 CIMSERVER_STOP_SERVICE = $(CIMSERVER_PATH)cimserver -s
|
200 david.dillard 1.8 SLEEP = sleep
201 REMOVE_PEGASUS_DIRECTORY = rm -Rf pegasus.old; mv pegasus pegasus.old
202 MUEXE = mu
|
203 jim.wunderlich 1.22 RM = rm -f
|
204 david.dillard 1.8 MKDIRHIER = mkdir -p
205 RMDIRHIER = rm -rf
206 ECHO =
|
207 denise.eckstein 1.13 ECHO-E =
|
208 david.dillard 1.8 COPY = cp
209 CHMOD =
210 CHOWN =
211 CHGRP =
|
212 denise.eckstein 1.1 endif
213
214 ifeq ($(OS),VMS)
|
215 carson.hovey 1.26 STRIPCRS =$(MUEXE) echo "STRIPCRS not defined in commands.mak"
|
216 gs.keenan 1.9 DIFF = mu compare
|
217 jim.wunderlich 1.22 SORT = mu sort
|
218 carson.hovey 1.26 REDIRECTERROR = $(MUEXE) echo "REDIRECTERROR not defined in commands.mak"
|
219 denise.eckstein 1.15 CIMSERVER_START_SERVICE = $(CIMSERVER_PATH)cimserver $(CIMSERVER_CONFIG_OPTIONS)
220 CIMSERVER_STOP_SERVICE = $(CIMSERVER_PATH)cimserver -s
|
221 david.dillard 1.8 SLEEP = wait
222 REMOVE_PEGASUS_DIRECTORY = mu rmdirhier pegasus
223 MUEXE = mu
224 MKDIRHIER = $(MUEXE) mkdirhier
225 RMDIRHIER = $(MUEXE) rmdirhier
|
226 carson.hovey 1.26 ECHO = $(MUEXE) echo
227 ECHO-E = $(MUEXE) echo "ECHO-E not defined in commands.mak"
228 CHMOD = $(MUEXE) echo "CHMOD not defined in commands.mak"
229 CHOWN = $(MUEXE) echo "CHOWN not defined in commands.mak"
230 CHGRP = $(MUEXE) echo "CHGRP not defined in commands.mak"
|
231 denise.eckstein 1.1 endif
232
233 ifeq ($(OS),aix)
|
234 david.dillard 1.8 STRIPCRS =
|
235 gs.keenan 1.9 DIFF = diff
|
236 jim.wunderlich 1.22 SORT = sort
|
237 david.dillard 1.8 REDIRECTERROR =
|
238 denise.eckstein 1.15 CIMSERVER_START_SERVICE = $(CIMSERVER_PATH)cimserver $(CIMSERVER_CONFIG_OPTIONS)
239 CIMSERVER_STOP_SERVICE = $(CIMSERVER_PATH)cimserver -s
|
240 david.dillard 1.8 SLEEP = sleep
241 REMOVE_PEGASUS_DIRECTORY = rm -Rf pegasus.old; mv pegasus pegasus.old
242 MUEXE = mu
|
243 jim.wunderlich 1.22 RM = rm -f
|
244 david.dillard 1.8 MKDIRHIER = mkdir -p
245 RMDIRHIER = rm -rf
246 ECHO = echo
|
247 denise.eckstein 1.13 ECHO-E =
|
248 david.dillard 1.8 COPY = cp
249 CHMOD =
250 CHOWN =
251 CHGRP =
|
252 denise.eckstein 1.1 endif
253
|
254 bafna.mukesh 1.28 ifeq ($(OS),darwin)
255 STRIPCRS =
256 DIFF = diff
257 SORT = sort
258 REDIRECTERROR = 2>&1
259 CIMSERVER_START_SERVICE = $(CIMSERVER_PATH)cimserver $(CIMSERVER_CONFIG_OPTIONS)
260 CIMSERVER_STOP_SERVICE = $(CIMSERVER_PATH)cimserver -s
261 SLEEP = sleep
262 REMOVE_PEGASUS_DIRECTORY = rm -Rf pegasus.old; mv pegasus pegasus.old
263 MUEXE = mu
264 RM = rm -f
265 MKDIRHIER = mkdir -p
266 RMDIRHIER = rm -rf
267 ECHO = echo
268 ECHO-E = mu echo-e
269 COPY = cp
270 TOUCH = touch
271 CAT = cat
272
273 CHMOD = chmod
274 CHOWN = chown
275 bafna.mukesh 1.28 CHGRP = chgrp
276
277 CHMODDIRHIER = chmod -R
278 CHOWNDIRHIER = chown -R
279 CHGRPDIRHIER = chgrp -R
280
281 SYMBOLIC_LINK_CMD = ln -f -s
282
283 CURRENT_USER=`whoami`
284 endif
285
|
286 denise.eckstein 1.1 ifndef TMP_DIR
|
287 david.dillard 1.8 ifdef PEGASUS_TMP
288 TMP_DIR = $(subst \,/,$(PEGASUS_TMP))
289 else
290 TMP_DIR = .
291 endif
|
292 denise.eckstein 1.1 endif
293
|
294 denise.eckstein 1.3 CMDSFORCE:
|
295 denise.eckstein 1.1
|
296 denise.eckstein 1.3 cimstop: CMDSFORCE
|
297 denise.eckstein 1.1 $(CIMSERVER_STOP_SERVICE)
298
|
299 denise.eckstein 1.3 cimstart: CMDSFORCE
|
300 denise.eckstein 1.1 $(CIMSERVER_START_SERVICE)
301
|
302 denise.eckstein 1.3 sleep: CMDSFORCE
|
303 denise.eckstein 1.1 $(SLEEP) $(TIME)
304
|
305 denise.eckstein 1.3 mkdirhier: CMDSFORCE
|
306 denise.eckstein 1.1 $(MKDIRHIER) $(DIRNAME)
307
|
308 denise.eckstein 1.3 rmdirhier: CMDSFORCE
|
309 denise.eckstein 1.1 $(RMDIRHIER) $(DIRNAME)
310
|
311 denise.eckstein 1.3 setpermissions: CMDSFORCE
|
312 denise.eckstein 1.2 $(CHMOD) $(PERMISSIONS) $(OBJECT)
313 $(CHOWN) $(OWNER) $(OBJECT)
314 $(CHGRP) $(GROUP) $(OBJECT)
315
|
316 denise.eckstein 1.3 sethierpermissions: CMDSFORCE
|
317 denise.eckstein 1.2 $(CHMODDIRHIER) $(PERMISSIONS) $(OBJECT)
318 $(CHOWNDIRHIER) $(OWNER) $(OBJECT)
319 $(CHGRPDIRHIER) $(GROUP) $(OBJECT)
320
|
321 denise.eckstein 1.3 createlink: CMDSFORCE
|
322 denise.eckstein 1.2 $(SYMBOLIC_LINK_CMD) $(OBJECT) $(LINKNAME)
323
|
324 denise.eckstein 1.3 createrandomseed: CMDSFORCE
|
325 denise.eckstein 1.2 $(GENERATE_RANDSEED) $(FILENAME)
326
|
327 denise.eckstein 1.14 # Because commands.mak is intended to be used as
328 # helper Makefile, embedded use of calls to "make" are
329 # problematic because the name of toplevel is not known.
330 # To workaround this problem, the MAKEOPTIONS define
331 # has been added to the following commands to
332 # allow the name of the toplevel Makefile to be included.
333 # E.g.,
334 #
335 # make MAKEOPTION="-f TestMakefile" cimstop_IgnoreError
336 #
337 # However, a better alternative would be to call the
338 # the command directly from the toplevel makefile.
339 # E.g.,
340 #
341 # make -f TestMakefile -i cimstop
342
343 cimstop_IgnoreError: CMDSFORCE
344 @$(MAKE) $(MAKEOPTIONS) -i cimstop
345
346 rmdirhier_IgnoreError: CMDSFORCE
347 @$(MAKE) $(MAKEOPTIONS) -i rmdirhier
348 denise.eckstein 1.14
349 mkdirhier_IgnoreError: CMDSFORCE
350 @$(MAKE) $(MAKEOPTIONS) -i mkdirhier
351
352
353 # The runTestSuite option starts the CIM Server
|
354 denise.eckstein 1.10 # with a designated set of configuration options (i.e.,
355 # CIMSERVER_CONFIG_OPTIONS) and then runs a specified
356 # set of tests (i.e., TESTSUITE_CMDS). After the tests
357 # have been executed, the CIM Server is stopped.
358 #
359 # To call runTestSuite, you simply (1) define the
360 # configuration options, (2) define the set of
361 # tests and (3) call commands.mak with the appropriate
362 # parameters. Note: when specifying the set of tests
363 # @@ is used as a replacement for blank. E.g., the
364 # following sequence can be used to enable the
365 # HTTP connection, disable the HTTPS connection and
366 # run an osinfo, TestClient, OSTestClient,
367 # and InvokeMethod2 test.
368 #
369 #runTestSuiteTest_CONFIG_OPTIONS = enableHttpConnection=true enableHttpsConnection=false
370 #runTestSuiteTest_TEST_CMDS = \
371 # osinfo@@-hlocalhost@@-p5988@@-uguest@@-wguest\
372 # TestClient@@-local \
373 # OSTestClient \
374 # $(MAKE)@@--directory=$(PEGASUS_ROOT)/src/Pegasus/Client/tests/InvokeMethod2@@poststarttests
375 denise.eckstein 1.10 #
376 #runTestSuiteTest: CMDSFORCE
|
377 denise.eckstein 1.14 # $(MAKE) $(MAKEOPTIONS) runTestSuite CIMSERVER_CONFIG_OPTIONS="$(runTestSuiteTest_CONFIG_OPTIONS)" TESTSUITE_CMDS="$(runTestSuiteTest_TEST_CMDS)"
|
378 denise.eckstein 1.10
379 runTestSuite: CMDSFORCE
|
380 denise.eckstein 1.14 $(CIMSERVER_START_SERVICE)
|
381 jim.wunderlich 1.30 $(foreach i, $(TESTSUITE_CMDS), $(subst @@, ,$(i)))
|
382 denise.eckstein 1.14 $(CIMSERVER_STOP_SERVICE)
|
383 denise.eckstein 1.25
384 ifndef PEGASUS_SSLCNF_FULLY_QUALIFIED_DSN
385 PEGASUS_SSLCNF_FULLY_QUALIFIED_DSN=$(GET_HOSTNAME)
386 endif
387
388 createSSLCnfFile: CMDSFORCE
389 @$(RM) $(PEGASUS_SSLCERT_CNFFILE)
390 @$(ECHO) "[ req ]" >> $(PEGASUS_SSLCERT_CNFFILE)
391 @$(ECHO) "distinguished_name = req_distinguished_name" >> $(PEGASUS_SSLCERT_CNFFILE)
392 @$(ECHO) "prompt = no" >> $(PEGASUS_SSLCERT_CNFFILE)
393 @$(ECHO) "[ req_distinguished_name ]" >> $(PEGASUS_SSLCERT_CNFFILE)
394 @$(ECHO) "C = $(PEGASUS_SSLCNF_COUNTRY_CODE)" >> $(PEGASUS_SSLCERT_CNFFILE)
395 @$(ECHO) "ST = $(PEGASUS_SSLCNF_STATE)" >> $(PEGASUS_SSLCERT_CNFFILE)
396 @$(ECHO) "L = $(PEGASUS_SSLCNF_LOCALITY)" >> $(PEGASUS_SSLCERT_CNFFILE)
397 @$(ECHO) "O = $(PEGASUS_SSLCNF_ORGANIZATION)" >> $(PEGASUS_SSLCERT_CNFFILE)
398 @$(ECHO) "OU = $(PEGASUS_SSLCNF_ORGANIZATION_UNIT)" >> $(PEGASUS_SSLCERT_CNFFILE)
399 @$(ECHO) "CN = $(PEGASUS_SSLCNF_FULLY_QUALIFIED_DSN)" >> $(PEGASUS_SSLCERT_CNFFILE)
400
401 createSSLCertificate: CMDSFORCE
402 ifdef PEGASUS_SSL_RANDOMFILE
403 @$(OPENSSL_COMMAND) req -x509 -days $(PEGASUS_SSLCERT_DAYS) -newkey rsa:2048 -rand $(PEGASUS_SSLCERT_RANDOMFILE) -nodes -config $(PEGASUS_SSLCERT_CNFFILE) -keyout $(PEGASUS_SSLCERT_KEYFILE) -out
404 denise.eckstein 1.25 $(PEGASUS_SSLCERT_CERTFILE)
405 else
406 @$(OPENSSL_COMMAND) req -x509 -days $(PEGASUS_SSLCERT_DAYS) -newkey rsa:2048 -nodes -config $(PEGASUS_SSLCERT_CNFFILE) -keyout $(PEGASUS_SSLCERT_KEYFILE) -out $(PEGASUS_SSLCERT_CERTFILE)
407 endif
408
409 displayCertificate: CMDSFORCE
410 @$(OPENSSL_COMMAND) x509 -in $(PEGASUS_SSLCERT_CERTFILE) -text
|