1 karl 1.36 #//%2006////////////////////////////////////////////////////////////////////////
|
2 martin 1.31 #//
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.36 #// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 #// EMC Corporation; Symantec Corporation; The Open Group.
|
13 martin 1.31 #//
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 karl 1.6 # Pegasus top level make file
|
32 jim.wunderlich 1.34 # see the usage rule for options
33
|
34 mike 1.1 ROOT = .
35
|
36 konrad.r 1.24 include $(ROOT)/env_var.status
|
37 mike 1.1 include $(ROOT)/mak/config.mak
38
|
39 karl 1.11 # This is a recurse make file
|
40 karl 1.6 # Defines subdirectorys to go to recursively
41
|
42 mike 1.3 # DIRS = src cgi
|
43 mike 1.43.2.1
44 ifeq ($(OS_TYPE),vxworks)
|
45 mike 1.43.2.2 DIRS = \
46 src/Pegasus/Common \
47 src/Pegasus/Common/tests \
48 src/Pegasus/Config \
49 src/Pegasus/Query/QueryCommon \
50 src/Pegasus/WQL \
51 src/Pegasus/CQL \
52 src/Pegasus/Query/QueryExpression \
53 src/Pegasus/Security/UserManager \
54 src/Pegasus/Client \
55 src/Service \
56 src/Pegasus/Provider \
57 src/Pegasus/Repository \
58 src/Pegasus/Repository/tests \
59 src/Pegasus/Server/ProviderRegistrationManager \
60 src/Pegasus/ProviderManager2 \
61 src/Pegasus/ProviderManager2/Default \
62 src/Pegasus/ExportServer \
63 src/Pegasus/ProviderManagerService \
64 src/Pegasus/Security/Authentication \
65 src/Pegasus/HandlerService \
66 mike 1.43.2.2 src/Pegasus/IndicationService \
67 src/Pegasus/ControlProviders/InteropProvider \
68 src/Pegasus/ControlProviders/Statistic \
69 src/Pegasus/ControlProviders/QueryCapabilitiesProvider \
70 src/Pegasus/ControlProviders/ProviderRegistrationProvider \
71 src/Pegasus/ControlProviders/NamespaceProvider \
72 src/Pegasus/ControlProviders/ConfigSettingProvider \
73 src/Pegasus/ControlProviders/UserAuthProvider \
74 src/Pegasus/Server \
|
75 mike 1.43.2.5 src/Server
|
76 mike 1.43.2.4
77 XSOURCES = \
|
78 mike 1.43.2.3 src/Providers/ManagedSystem/ComputerSystem \
79 src/Providers/ManagedSystem/Process \
80 src/Providers/ManagedSystem/Processor \
81 src/Providers/ManagedSystem/IP \
|
82 mike 1.43.2.2 src/Providers/ManagedSystem/ComputerSystem
|
83 mike 1.43.2.1 else
84 DIRS = src test Schemas
85 endif
|
86 mike 1.1
|
87 karl 1.11 # Define the inclusion of the recurse.mak file to execute the next
88 # level of makefiles defined by the DIRS variable
|
89 karl 1.6
|
90 mike 1.43.2.1 ifeq ($(OS_TYPE),vxworks)
91 defaultrule: all
92 else
93 defaultrule: all setupdevserver
94 endif
|
95 jim.wunderlich 1.34
|
96 mike 1.1 include $(ROOT)/mak/recurse.mak
97
|
98 jim.wunderlich 1.34 .PHONY: FORCE
|
99 jim.wunderlich 1.32
|
100 jim.wunderlich 1.34 FORCE:
|
101 jim.wunderlich 1.32
|
102 jim.wunderlich 1.34 usage: FORCE
103 $(USAGE)
104 $(USAGE)"Makefile targets:"
105 $(USAGE)
106 $(USAGE)"Recursive rules - These are the primatives that traverse the tree"
107 $(USAGE)"invoking the specified command in each subdirectory directory."
108 $(USAGE)"NOTE: all is special, it specifies no target and therefore invokes"
109 $(USAGE)"the default rule for that directory."
110 $(USAGE)"all - recursive DEFAULT rule"
111 $(USAGE)"clean - recursive clean"
112 $(USAGE)"depend - buildmu recursive depend"
113 $(USAGE)"messages - rootbundle recursive messages"
114 $(USAGE)"tests - recursive tests"
115 $(USAGE)"poststarttests - recursive poststarttests"
116 $(USAGE)
117 $(USAGE)"Combinational rules - Combine other rules to achieve results"
118 $(USAGE)"DEFAULT RULE - all, setupdevserver"
119 $(USAGE)"new - clean repositoryclean"
120 $(USAGE)"build - depend all, setupdevserver"
121 $(USAGE)"world - build unittests servertests"
122 $(USAGE)
123 jim.wunderlich 1.34 $(USAGE)"Functional rules - Other rules to achieve specified results"
|
124 jim.wunderlich 1.35 $(USAGE)"clobber -removes objects built during compile"
125 $(USAGE)" specifically the following directories are removed:"
126 $(USAGE)" $(PEGASUS_HOME)/bin"
127 $(USAGE)" $(PEGASUS_HOME)/lib"
128 $(USAGE)" $(PEGASUS_HOME)/obj"
|
129 jim.wunderlich 1.34 $(USAGE)"buildmu - builds the mu utility"
130 $(USAGE)"setupdevserver - setup the development server env"
131 $(USAGE)"cleandevserver - cleans the development server env"
|
132 karl 1.39 $(USAGE)"repository - builds the base repository. Does not remove other"
133 $(USAGE)" namespaces than the base namespaces."
|
134 jim.wunderlich 1.34 $(USAGE)"testrepository - builds items for the test suites into the repository"
135 $(USAGE)"removetestrepository- removes test items from the repository"
|
136 karl 1.39 $(USAGE)"repositoryclean - removes the complete repository"
|
137 jim.wunderlich 1.34 $(USAGE)"listplatforms - List all valid platforms"
138 $(USAGE)
139 $(USAGE)"Test rules (accessable here but implemented in TestMakefile)"
140 $(USAGE)"alltests - unittests and servertests"
141 $(USAGE)"unittests - runs the unit functional test"
142 $(USAGE)"servertests - runs basic server tests"
|
143 jim.wunderlich 1.35 $(USAGE)"perftests - runs basic server performance tests"
|
144 jim.wunderlich 1.34 $(USAGE)"standardtests - runs server extended tests"
145 $(USAGE)"testusage - TestMakefile usage"
146 $(USAGE)"testusage2 - TestMakefile usage2"
|
147 j.alex 1.37 $(USAGE)"stresstests - Runs the default stresstests"
|
148 jim.wunderlich 1.34 $(USAGE)
149 $(USAGE)"--------------------"
150 $(USAGE)"Quick start:"
151 $(USAGE)" After checkout of new tree:"
152 $(USAGE)" use \"make listplatforms\" to view a list of platforms"
153 $(USAGE)" set PEGASUS_PLATFORM=<your platofrm>"
154 $(USAGE)" set PEGASUS_ROOT=<location of your pegasus source>"
155 $(USAGE)" set PEGASUS_HOME=<build output location"
|
156 kumpf 1.42 $(USAGE)" make world"
|
157 jim.wunderlich 1.34 $(USAGE)
158 $(USAGE)" This will build everthing with a default configuration"
|
159 kumpf 1.42 $(USAGE)" and run the automated tests."
|
160 jim.wunderlich 1.34 $(USAGE)
161 $(USAGE)"--------------------"
162 $(USAGE)"Examples:"
|
163 kumpf 1.42 $(USAGE)" After \"cvs checkout\" of new tree: make world"
|
164 jim.wunderlich 1.34 $(USAGE)
165 $(USAGE)" After changes to include files: make"
166 $(USAGE)
167 $(USAGE)" After changes to the files included: make build"
168 $(USAGE)
|
169 kumpf 1.42 $(USAGE)" After \"cvs update\" or to start over: make new world"
|
170 jim.wunderlich 1.34 $(USAGE)
171
172 listplatforms: FORCE
173 $(USAGE)
174 $(USAGE)"The $(words $(VALID_PLATFORMS)) valid platforms are:"
175 $(USAGE)" $(foreach w, $(VALID_PLATFORMS), " $w ")"
176 $(USAGE)
177 $(USAGE)
178
179 #########################################################################
180 # This section defines any prerequisites that are required by the
181 # recursive rules.
182 #
183 # NOTE: You can add prerequisties for the recursive rules but you cannot
184 # add any commands to run as part of the rule. You can define them
185 # and make will quietly ignore them and they will not be run either
186 # before or after the recursive rule.
187 #
188 #
189 messages: rootbundle
|
190 karl 1.6
|
191 jim.wunderlich 1.34 depend: buildmu
|
192 kumpf 1.18
|
193 jim.wunderlich 1.34 #########################################################################
194 # This section defines combinational rules
195 #
|
196 jim.wunderlich 1.32 #-----------------------
|
197 jim.wunderlich 1.34 # build target: builds all source
|
198 jim.wunderlich 1.32 #
|
199 jim.wunderlich 1.34 build: depend all setupdevserver
|
200 jim.wunderlich 1.32
|
201 jim.wunderlich 1.34 #------------------------
202 # rebuild target is being deprecated instead use "make new build"
203 #
204 rebuild_msg: FORCE
205 @$(ECHO) "==============================================================================="
206 @$(ECHO) "Makefile: The rebuild target is being deprecated."
207 @$(ECHO) " Use \"make usage\" for a description of the usage model."
|
208 kumpf 1.42 @$(ECHO) " Consider using \"make new world\" ."
|
209 jim.wunderlich 1.34 @$(ECHO) " Invoking the old rebuild rule now."
210 @$(ECHO) "==============================================================================="
211
212 rebuild: rebuild_msg shortsleep new build s_unittests repository
|
213 jim.wunderlich 1.32
214 #-----------------------
|
215 jim.wunderlich 1.34 # new target: cleans everthing
216 #
217 # This can be combined on the command line with other rules like:
|
218 jim.wunderlich 1.32 #
|
219 jim.wunderlich 1.34 # make new build
220 # make new world
|
221 jim.wunderlich 1.32
|
222 jim.wunderlich 1.34 new: clean repositoryclean
|
223 jim.wunderlich 1.32
224 #-----------------------
|
225 jim.wunderlich 1.34 # world targets: builds everything and dependent on which target may do testing
|
226 jim.wunderlich 1.32 #
227 # Typically used after a fresh checkout from CVS
|
228 jim.wunderlich 1.34
229 world: build s_unittests servertests
230
231
232 ############################
233 #
234 # rules defined in TestMakefile that are repeated here for convenience
|
235 jim.wunderlich 1.32 #
|
236 jim.wunderlich 1.34 shortsleep: FORCE
237 @$(MAKE) -f TestMakefile shortsleep
238
239 servertests: FORCE
240 @ $(MAKE) -f TestMakefile servertests
241
|
242 jim.wunderlich 1.35 perftests: FORCE
243 @ $(MAKE) -f TestMakefile perftests
244
|
245 jim.wunderlich 1.34 s_unittests: FORCE
246 @ $(MAKE) -f TestMakefile -s unittests
247
248 unittests: FORCE
249 @ $(MAKE) -f TestMakefile unittests
250
251 standardtests: FORCE
252 @ $(MAKE) -f TestMakefile standardtests
253
254 alltests: FORCE
255 @ $(MAKE) -f TestMakefile alltests
256
257 testusage: FORCE
258 @ $(MAKE) -f TestMakefile usage
|
259 jim.wunderlich 1.32
|
260 jim.wunderlich 1.34 testusage2: FORCE
261 @ $(MAKE) -f TestMakefile usage2
|
262 mike 1.1
|
263 j.alex 1.37 stresstests:
264 @$(ECHO) "Running OpenPegasus StressTests"
265 @$(MAKE) -f TestMakefile stresstests
266 @$(ECHO) "+++++ OpenPegasus StressTests complete"
|
267 jim.wunderlich 1.35
|
268 jim.wunderlich 1.34 ##########################################################################
269 #
270 # This section defines functional rules
271 #
|
272 jim.wunderlich 1.32 #---------------------
273 # buildmu target: build mu the make utility that among other things
274 # includes depend
275 buildmu: FORCE
276 $(MKDIRHIER) $(BIN_DIR)
277 $(MAKE) --directory=$(PEGASUS_ROOT)/src/utils/mu -f Makefile
278
279 #----------------------
280 # setupdevserver and cleandevserver are used to setup and clear the
281 # server configuration files needed to run the server in a development
282 # environment.
283 #
284 setupdevserver: FORCE
285 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run
286 @$(ECHO) "PEGASUS Development Server Runtime Environment configured "
287
288 cleandevserver: FORCE
289 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run_clean
|
290 karl 1.6
|
291 jim.wunderlich 1.35 clobber: FORCE
292 - $(RMDIRHIER) $(PEGASUS_HOME)/bin
293 - $(RMDIRHIER) $(PEGASUS_HOME)/lib
294 - $(RMDIRHIER) $(PEGASUS_HOME)/obj
295
|
296 jim.wunderlich 1.34
297 #---------------------
|
298 karl 1.39 # The repository Target removes and rebuilds the base repository. It
299 # does not remove all possible namespaces. See
300 # Schemas/Pegasus/Makefile for details. The repository clean has the
301 # same limitation
|
302 mike 1.4
|
303 kumpf 1.25 # Note: Arguments must be quoted to preserve upper case characters in VMS.
|
304 kumpf 1.18 repository: FORCE
|
305 kumpf 1.25 @ $(MAKE) "-SC" Schemas/Pegasus repository
|
306 mike 1.9
|
307 jim.wunderlich 1.29 repositoryclean: FORCE
308 @ $(RMREPOSITORY) $(REPOSITORY_ROOT)
309
|
310 kumpf 1.18 repositoryServer: FORCE
|
311 kumpf 1.25 @ $(MAKE) "-SC" Schemas/Pegasus repositoryServer
|
312 kumpf 1.17
|
313 kumpf 1.18 testrepository: FORCE
|
314 kumpf 1.25 @ $(MAKE) "-SC" src/Providers/sample/Load repository
315 @ $(MAKE) "-SC" test/wetest repository
316 @ $(MAKE) "-SC" src/Clients/benchmarkTest/Load repository
|
317 chuck 1.26 @ $(MAKE) "-SC" src/Pegasus/CQL/CQLCLI repository
|
318 chuck 1.27 @ $(MAKE) "-SC" src/Pegasus/Query/QueryExpression/tests repository
|
319 kumpf 1.28 @ $(MAKE) "-SC" src/Providers/TestProviders/Load repository
|
320 kumpf 1.43 ifndef PEGASUS_DISABLE_CQL
|
321 a.arora 1.30 @ $(MAKE) "-SC" src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests repository
|
322 kumpf 1.43 endif
|
323 marek 1.38 ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), true)
324 @ $(MAKE) "-SC" src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests repository
325 endif
|
326 w.otsuka 1.40 @ $(MAKE) --directory=$(PEGASUS_ROOT)/src/Clients/cimsub/tests/testscript \
327 -f Makefile repository
|
328 kumpf 1.17
|
329 kumpf 1.18 testrepositoryServer: FORCE
|
330 kumpf 1.25 @ $(MAKE) "-SC" src/Providers/sample/Load repositoryServer
331 @ $(MAKE) "-SC" test/wetest repositoryServer
332 @ $(MAKE) "-SC" src/Clients/benchmarkTest/Load repositoryServer
|
333 chuck 1.26 @ $(MAKE) "-SC" src/Pegasus/CQL/CQLCLI repositoryServer
|
334 chuck 1.27 @ $(MAKE) "-SC" src/Pegasus/Query/QueryExpression/tests repositoryServer
|
335 kumpf 1.28 @ $(MAKE) "-SC" src/Providers/TestProviders/Load repositoryServer
|
336 kumpf 1.43 ifndef PEGASUS_DISABLE_CQL
|
337 a.arora 1.30 @ $(MAKE) "-SC" src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests repositoryServer
|
338 kumpf 1.43 endif
|
339 marek 1.38 ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), true)
340 @ $(MAKE) "-SC" src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests repositoryServer
341 endif
|
342 w.otsuka 1.40 @ $(MAKE) --directory=$(PEGASUS_ROOT)/src/Clients/cimsub/tests/testscript \
343 -f Makefile repositoryServer
|
344 kumpf 1.16
|
345 kumpf 1.18 removetestrepository: FORCE
|
346 kumpf 1.25 @ $(MAKE) "-SC" src/Providers/sample/Load removerepository
347 @ $(MAKE) "-SC" test/wetest removerepository
348 @ $(MAKE) "-SC" src/Clients/benchmarkTest/Load removerepository
|
349 kumpf 1.28 @ $(MAKE) "-SC" src/Providers/TestProviders/Load removerepository
|
350 w.otsuka 1.40 @ $(MAKE) "-SC" src/Clients/cimsub/tests/testscript removerepository
|
351 karl 1.15
|
352 konrad.r 1.24 config:
353 @ $(ROOT)/SetConfig_EnvVar
354
|
355 humberto 1.21 rootbundle:
356 $(MAKE) --directory=$(PEGASUS_ROOT)/src/utils/cnv2rootbundle -f Makefile
|