1 martin 1.50 #//%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.51 #//
|
3 martin 1.50 #// 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.51 #//
|
10 martin 1.50 #// 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.51 #//
|
17 martin 1.50 #// The above copyright notice and this permission notice shall be included
18 #// in all copies or substantial portions of the Software.
|
19 martin 1.51 #//
|
20 martin 1.50 #// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.51 #// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.50 #// 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.51 #//
|
28 martin 1.50 #//////////////////////////////////////////////////////////////////////////
|
29 karl 1.6 # Pegasus top level make file
|
30 jim.wunderlich 1.34 # see the usage rule for options
31
|
32 mike 1.1 ROOT = .
33
|
34 konrad.r 1.24 include $(ROOT)/env_var.status
|
35 mike 1.1 include $(ROOT)/mak/config.mak
36
|
37 karl 1.49 ## Include mu in the clean structure
38 ## This required because mu is not part of the hiearchial build
39 ##structure. It is built with the buildmu target. Adding this
40 ## variable allows it to be cleaned with the normal clean target.
41 RECURSE_EXTRA_CLEAN_DIRS += src/utils/mu
42
|
43 karl 1.11 # This is a recurse make file
|
44 kumpf 1.48 # Defines subdirectories to go to recursively
|
45 karl 1.6
|
46 kumpf 1.47 DIRS = src
|
47 s.kodali 1.46
48 TEST_DIRS = test
|
49 mike 1.1
|
50 karl 1.11 # Define the inclusion of the recurse.mak file to execute the next
51 # level of makefiles defined by the DIRS variable
|
52 karl 1.6
|
53 s.kodali 1.54 defaultrule: cimprovagt32 all setupdevserver
|
54 jim.wunderlich 1.34
|
55 mike 1.1 include $(ROOT)/mak/recurse.mak
56
|
57 jim.wunderlich 1.34 .PHONY: FORCE
|
58 jim.wunderlich 1.32
|
59 jim.wunderlich 1.34 FORCE:
|
60 jim.wunderlich 1.32
|
61 jim.wunderlich 1.34 usage: FORCE
62 $(USAGE)
63 $(USAGE)"Makefile targets:"
64 $(USAGE)
65 $(USAGE)"Recursive rules - These are the primatives that traverse the tree"
66 $(USAGE)"invoking the specified command in each subdirectory directory."
67 $(USAGE)"NOTE: all is special, it specifies no target and therefore invokes"
68 $(USAGE)"the default rule for that directory."
69 $(USAGE)"all - recursive DEFAULT rule"
70 $(USAGE)"clean - recursive clean"
71 $(USAGE)"depend - buildmu recursive depend"
72 $(USAGE)"messages - rootbundle recursive messages"
73 $(USAGE)"tests - recursive tests"
74 $(USAGE)"poststarttests - recursive poststarttests"
|
75 kumpf 1.52 $(USAGE)
|
76 jim.wunderlich 1.34 $(USAGE)"Combinational rules - Combine other rules to achieve results"
77 $(USAGE)"DEFAULT RULE - all, setupdevserver"
78 $(USAGE)"new - clean repositoryclean"
79 $(USAGE)"build - depend all, setupdevserver"
80 $(USAGE)"world - build unittests servertests"
81 $(USAGE)
82 $(USAGE)"Functional rules - Other rules to achieve specified results"
|
83 jim.wunderlich 1.35 $(USAGE)"clobber -removes objects built during compile"
84 $(USAGE)" specifically the following directories are removed:"
85 $(USAGE)" $(PEGASUS_HOME)/bin"
86 $(USAGE)" $(PEGASUS_HOME)/lib"
87 $(USAGE)" $(PEGASUS_HOME)/obj"
|
88 jim.wunderlich 1.34 $(USAGE)"buildmu - builds the mu utility"
|
89 nagaraj.gr 1.56 $(USAGE)"buildclientlibs - Build only the Client and Common libraries"
|
90 jim.wunderlich 1.34 $(USAGE)"setupdevserver - setup the development server env"
91 $(USAGE)"cleandevserver - cleans the development server env"
|
92 karl 1.39 $(USAGE)"repository - builds the base repository. Does not remove other"
|
93 kumpf 1.52 $(USAGE)" namespaces than the base namespaces."
|
94 jim.wunderlich 1.34 $(USAGE)"testrepository - builds items for the test suites into the repository"
|
95 karl 1.39 $(USAGE)"repositoryclean - removes the complete repository"
|
96 jim.wunderlich 1.34 $(USAGE)"listplatforms - List all valid platforms"
97 $(USAGE)
98 $(USAGE)"Test rules (accessable here but implemented in TestMakefile)"
99 $(USAGE)"alltests - unittests and servertests"
100 $(USAGE)"unittests - runs the unit functional test"
101 $(USAGE)"servertests - runs basic server tests"
|
102 jim.wunderlich 1.35 $(USAGE)"perftests - runs basic server performance tests"
|
103 jim.wunderlich 1.34 $(USAGE)"standardtests - runs server extended tests"
104 $(USAGE)"testusage - TestMakefile usage"
105 $(USAGE)"testusage2 - TestMakefile usage2"
|
106 j.alex 1.37 $(USAGE)"stresstests - Runs the default stresstests"
|
107 jim.wunderlich 1.34 $(USAGE)
|
108 lawrence.luo 1.57.10.1 $(USAGE)"webadmin - build/config webadmin"
109 $(USAGE)
|
110 jim.wunderlich 1.34 $(USAGE)"--------------------"
111 $(USAGE)"Quick start:"
112 $(USAGE)" After checkout of new tree:"
113 $(USAGE)" use \"make listplatforms\" to view a list of platforms"
114 $(USAGE)" set PEGASUS_PLATFORM=<your platofrm>"
115 $(USAGE)" set PEGASUS_ROOT=<location of your pegasus source>"
116 $(USAGE)" set PEGASUS_HOME=<build output location"
|
117 kumpf 1.42 $(USAGE)" make world"
|
118 jim.wunderlich 1.34 $(USAGE)
119 $(USAGE)" This will build everthing with a default configuration"
|
120 kumpf 1.42 $(USAGE)" and run the automated tests."
|
121 jim.wunderlich 1.34 $(USAGE)
122 $(USAGE)"--------------------"
123 $(USAGE)"Examples:"
|
124 kumpf 1.42 $(USAGE)" After \"cvs checkout\" of new tree: make world"
|
125 jim.wunderlich 1.34 $(USAGE)
126 $(USAGE)" After changes to include files: make"
127 $(USAGE)
128 $(USAGE)" After changes to the files included: make build"
129 $(USAGE)
|
130 kumpf 1.52 $(USAGE)" After \"cvs update\" or to start over: make new world"
|
131 jim.wunderlich 1.34 $(USAGE)
|
132 lawrence.luo 1.57.10.1
|
133 jim.wunderlich 1.34
134 listplatforms: FORCE
135 $(USAGE)
136 $(USAGE)"The $(words $(VALID_PLATFORMS)) valid platforms are:"
137 $(USAGE)" $(foreach w, $(VALID_PLATFORMS), " $w ")"
138 $(USAGE)
139 $(USAGE)
140
141 #########################################################################
|
142 kumpf 1.52 # This section defines any prerequisites that are required by the
|
143 jim.wunderlich 1.34 # recursive rules.
144 #
145 # NOTE: You can add prerequisties for the recursive rules but you cannot
|
146 kumpf 1.52 # add any commands to run as part of the rule. You can define them
|
147 jim.wunderlich 1.34 # and make will quietly ignore them and they will not be run either
|
148 kumpf 1.52 # before or after the recursive rule.
|
149 jim.wunderlich 1.34 #
150 #
151 messages: rootbundle
|
152 karl 1.6
|
153 jim.wunderlich 1.34 depend: buildmu
|
154 kumpf 1.18
|
155 jim.wunderlich 1.34 #########################################################################
156 # This section defines combinational rules
157 #
|
158 jim.wunderlich 1.32 #-----------------------
|
159 jim.wunderlich 1.34 # build target: builds all source
|
160 jim.wunderlich 1.32 #
|
161 anusha.kandepu 1.55 build: cimprovagt32depend cimprovagt32 depend renameinterop all setupdevserver
|
162 jim.wunderlich 1.32
|
163 jim.wunderlich 1.34 #------------------------
164 # rebuild target is being deprecated instead use "make new build"
165 #
166 rebuild_msg: FORCE
167 @$(ECHO) "==============================================================================="
|
168 kumpf 1.52 @$(ECHO) "Makefile: The rebuild target is being deprecated."
|
169 jim.wunderlich 1.34 @$(ECHO) " Use \"make usage\" for a description of the usage model."
|
170 kumpf 1.42 @$(ECHO) " Consider using \"make new world\" ."
|
171 jim.wunderlich 1.34 @$(ECHO) " Invoking the old rebuild rule now."
172 @$(ECHO) "==============================================================================="
173
174 rebuild: rebuild_msg shortsleep new build s_unittests repository
|
175 jim.wunderlich 1.32
176 #-----------------------
|
177 jim.wunderlich 1.34 # new target: cleans everthing
178 #
179 # This can be combined on the command line with other rules like:
|
180 jim.wunderlich 1.32 #
|
181 jim.wunderlich 1.34 # make new build
|
182 kumpf 1.52 # make new world
|
183 jim.wunderlich 1.32
|
184 s.kodali 1.54 new: cimprovagt32clean clean repositoryclean
|
185 jim.wunderlich 1.32
186 #-----------------------
|
187 jim.wunderlich 1.34 # world targets: builds everything and dependent on which target may do testing
|
188 jim.wunderlich 1.32 #
|
189 kumpf 1.52 # Typically used after a fresh checkout from CVS
|
190 jim.wunderlich 1.34
191 world: build s_unittests servertests
192
|
193 s.kodali 1.54 ############################
194 #
195 # rules for building 32 bit provider agent
196 #
197 cimprovagt32depend: FORCE
198 ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT
199 $(MAKE) --directory=$(ROOT) -f Makefile.cimprovagt32 depend
200 endif
201 cimprovagt32: FORCE
202 ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT
203 $(MAKE) --directory=$(ROOT) -f Makefile.cimprovagt32
204 endif
205
206 cimprovagt32clean: FORCE
207 ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT
208 $(MAKE) --directory=$(ROOT) -f Makefile.cimprovagt32 clean
209 endif
|
210 jim.wunderlich 1.34
211 ############################
212 #
213 # rules defined in TestMakefile that are repeated here for convenience
|
214 jim.wunderlich 1.32 #
|
215 jim.wunderlich 1.34 shortsleep: FORCE
216 @$(MAKE) -f TestMakefile shortsleep
217
218 servertests: FORCE
219 @ $(MAKE) -f TestMakefile servertests
220
|
221 jim.wunderlich 1.35 perftests: FORCE
222 @ $(MAKE) -f TestMakefile perftests
223
|
224 jim.wunderlich 1.34 s_unittests: FORCE
225 @ $(MAKE) -f TestMakefile -s unittests
226
227 unittests: FORCE
228 @ $(MAKE) -f TestMakefile unittests
229
230 standardtests: FORCE
231 @ $(MAKE) -f TestMakefile standardtests
232
233 alltests: FORCE
234 @ $(MAKE) -f TestMakefile alltests
235
236 testusage: FORCE
237 @ $(MAKE) -f TestMakefile usage
|
238 jim.wunderlich 1.32
|
239 jim.wunderlich 1.34 testusage2: FORCE
240 @ $(MAKE) -f TestMakefile usage2
|
241 mike 1.1
|
242 j.alex 1.37 stresstests:
243 @$(ECHO) "Running OpenPegasus StressTests"
244 @$(MAKE) -f TestMakefile stresstests
245 @$(ECHO) "+++++ OpenPegasus StressTests complete"
|
246 jim.wunderlich 1.35
|
247 jim.wunderlich 1.34 ##########################################################################
248 #
249 # This section defines functional rules
250 #
|
251 jim.wunderlich 1.32 #---------------------
252 # buildmu target: build mu the make utility that among other things
|
253 karl 1.49 # includes a depend implementation. This is a separate target because
254 # it must be build before anything else and before the depend target is used
255 # on some platforms. Note that mu is not used on all platforms.
|
256 kumpf 1.52 #
|
257 jim.wunderlich 1.32 buildmu: FORCE
258 $(MAKE) --directory=$(PEGASUS_ROOT)/src/utils/mu -f Makefile
259
|
260 anusha.kandepu 1.55 ##########################################################################
261 #
262 # renameinterop: This is with regard to PEP304, build time option.
263 # There are many test cases and result files where namespace name
264 # root/PG_InterOp is hardcoded. So this searches for root/PG_InterOp
265 # and changes that to "interop" or "root/interop".
266 #
267 # This uses mu replace internally. The original files are all saved as
268 # filename.save. These file can be restored by running
269 # make -f Makefile.interop restore
270 #
271 renameinterop: buildmu
272 ifeq ($(PEGASUS_INTEROP_NAMESPACE),root/interop)
273 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile.interop replace
274 endif
275 ifeq ($(PEGASUS_INTEROP_NAMESPACE),interop)
276 $(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile.interop replace
277 endif
278
|
279 nagaraj.gr 1.56 # buildclientlibs: The libpegclient depends on libpegcommon library.
280 # This build target can be used to build just these two libraries.
281 # With this target, SLP support for clients is not enabled.
282 #
283
284 buildclientlibs: FORCE
285 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/Common -f Makefile
286 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/Client -f Makefile
287
|
288 jim.wunderlich 1.32 #----------------------
|
289 kumpf 1.52 # setupdevserver and cleandevserver are used to setup and clear the
|
290 jim.wunderlich 1.32 # server configuration files needed to run the server in a development
|
291 kumpf 1.52 # environment.
|
292 jim.wunderlich 1.32 #
293 setupdevserver: FORCE
294 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run
|
295 dl.meetei 1.57.10.3 ifeq ($(PEGASUS_ENABLE_PROTOCOL_WEB), true)
|
296 dl.meetei 1.57.10.2 -$(MAKE) --directory=$(PEGASUS_ROOT)/www -f Makefile setupwebadmin
|
297 dl.meetei 1.57.10.3 endif
|
298 jim.wunderlich 1.32 @$(ECHO) "PEGASUS Development Server Runtime Environment configured "
299
300 cleandevserver: FORCE
301 $(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run_clean
|
302 karl 1.6
|
303 jim.wunderlich 1.35 clobber: FORCE
304 - $(RMDIRHIER) $(PEGASUS_HOME)/bin
305 - $(RMDIRHIER) $(PEGASUS_HOME)/lib
306 - $(RMDIRHIER) $(PEGASUS_HOME)/obj
307
|
308 jim.wunderlich 1.34
309 #---------------------
|
310 kumpf 1.48 # The repository target removes the entire repository and rebuilds the Pegasus
311 # namespaces. The repositoryServer target does not remove the repository
312 # before building the Pegasus namespaces. (The repositoryServer target in
313 # TestMakefile *does* remove the repository first.)
|
314 mike 1.4
|
315 kumpf 1.25 # Note: Arguments must be quoted to preserve upper case characters in VMS.
|
316 kumpf 1.48 repository: repositoryclean
|
317 kumpf 1.25 @ $(MAKE) "-SC" Schemas/Pegasus repository
|
318 mike 1.9
|
319 jim.wunderlich 1.29 repositoryclean: FORCE
320 @ $(RMREPOSITORY) $(REPOSITORY_ROOT)
321
|
322 kumpf 1.18 repositoryServer: FORCE
|
323 kumpf 1.25 @ $(MAKE) "-SC" Schemas/Pegasus repositoryServer
|
324 kumpf 1.17
|
325 kumpf 1.48 #---------------------
326 # The testrepository and testrepositoryServer targets build the Pegasus test
327 # namespaces. A pre-existing repository is not removed.
328
|
329 kumpf 1.18 testrepository: FORCE
|
330 kumpf 1.25 @ $(MAKE) "-SC" src/Providers/sample/Load repository
331 @ $(MAKE) "-SC" test/wetest repository
332 @ $(MAKE) "-SC" src/Clients/benchmarkTest/Load repository
|
333 chuck 1.26 @ $(MAKE) "-SC" src/Pegasus/CQL/CQLCLI repository
|
334 chuck 1.27 @ $(MAKE) "-SC" src/Pegasus/Query/QueryExpression/tests repository
|
335 kumpf 1.28 @ $(MAKE) "-SC" src/Providers/TestProviders/Load repository
|
336 karl 1.44 ifeq ($(PEGASUS_ENABLE_CQL),true)
|
337 a.arora 1.30 @ $(MAKE) "-SC" src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests repository
|
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 repository
341 endif
|
342 w.otsuka 1.40 @ $(MAKE) --directory=$(PEGASUS_ROOT)/src/Clients/cimsub/tests/testscript \
343 -f Makefile repository
|
344 kumpf 1.17
|
345 kumpf 1.18 testrepositoryServer: FORCE
|
346 kumpf 1.25 @ $(MAKE) "-SC" src/Providers/sample/Load repositoryServer
347 @ $(MAKE) "-SC" test/wetest repositoryServer
348 @ $(MAKE) "-SC" src/Clients/benchmarkTest/Load repositoryServer
|
349 chuck 1.26 @ $(MAKE) "-SC" src/Pegasus/CQL/CQLCLI repositoryServer
|
350 chuck 1.27 @ $(MAKE) "-SC" src/Pegasus/Query/QueryExpression/tests repositoryServer
|
351 kumpf 1.28 @ $(MAKE) "-SC" src/Providers/TestProviders/Load repositoryServer
|
352 karl 1.44 ifeq ($(PEGASUS_ENABLE_CQL),true)
|
353 a.arora 1.30 @ $(MAKE) "-SC" src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests repositoryServer
|
354 kumpf 1.43 endif
|
355 marek 1.38 ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), true)
356 @ $(MAKE) "-SC" src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests repositoryServer
357 endif
|
358 w.otsuka 1.40 @ $(MAKE) --directory=$(PEGASUS_ROOT)/src/Clients/cimsub/tests/testscript \
359 -f Makefile repositoryServer
|
360 kumpf 1.16
|
361 kumpf 1.52 rootbundle:
|
362 humberto 1.21 $(MAKE) --directory=$(PEGASUS_ROOT)/src/utils/cnv2rootbundle -f Makefile
|
363 lawrence.luo 1.57.10.1
|
364 karl 1.57 # DO NOT DELETE
|