(file) Return to Makefile CVS log (file) (dir) Up to [Pegasus] / pegasus

  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 karl           1.54.2.1 	$(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                         	$(USAGE)"--------------------"
109                         	$(USAGE)"Quick start:"
110                         	$(USAGE)"  After checkout of new tree:"
111                         	$(USAGE)"  use \"make listplatforms\" to view a list of platforms"
112                         	$(USAGE)"  set PEGASUS_PLATFORM=<your platofrm>"
113                         	$(USAGE)"  set PEGASUS_ROOT=<location of your pegasus source>"
114                         	$(USAGE)"  set PEGASUS_HOME=<build output location"
115 kumpf          1.42     	$(USAGE)"  make world"
116 jim.wunderlich 1.34     	$(USAGE)
117                         	$(USAGE)"  This will build everthing with a default configuration"
118 kumpf          1.42     	$(USAGE)"  and run the automated tests."
119 jim.wunderlich 1.34     	$(USAGE)
120                         	$(USAGE)"--------------------"
121                         	$(USAGE)"Examples:"
122 kumpf          1.42     	$(USAGE)"  After \"cvs checkout\" of new tree:    make world"
123 jim.wunderlich 1.34     	$(USAGE)
124                         	$(USAGE)"  After changes to include files:      make"
125                         	$(USAGE)
126                         	$(USAGE)"  After changes to the files included: make build"
127                         	$(USAGE)
128 kumpf          1.52     	$(USAGE)"  After \"cvs update\" or to start over: make new world"
129 jim.wunderlich 1.34     	$(USAGE)
130 karl           1.54.2.3 	
131 jim.wunderlich 1.34     
132                         listplatforms: FORCE
133                         	$(USAGE)
134                         	$(USAGE)"The $(words $(VALID_PLATFORMS)) valid platforms are:"
135                         	$(USAGE)" $(foreach w, $(VALID_PLATFORMS), " $w ")"
136                         	$(USAGE)
137                         	$(USAGE)
138                         
139                         #########################################################################
140 kumpf          1.52     # This section defines any prerequisites that are required by the
141 jim.wunderlich 1.34     # recursive rules.
142                         #
143                         # NOTE: You can add prerequisties for the recursive rules but you cannot
144 kumpf          1.52     #       add any commands to run as part of the rule. You can define them
145 jim.wunderlich 1.34     #       and make will quietly ignore them and they will not be run either
146 kumpf          1.52     #       before or after the recursive rule.
147 jim.wunderlich 1.34     #
148                         #
149                         messages: rootbundle
150 karl           1.6      
151 jim.wunderlich 1.34     depend: buildmu
152 kumpf          1.18     
153 jim.wunderlich 1.34     #########################################################################
154                         # This section defines combinational rules
155                         #
156 jim.wunderlich 1.32     #-----------------------
157 jim.wunderlich 1.34     # build target: builds all source
158 jim.wunderlich 1.32     #
159 karl           1.54.2.1 build: cimprovagt32depend cimprovagt32 depend renameinterop all setupdevserver
160 jim.wunderlich 1.32     
161 jim.wunderlich 1.34     #------------------------
162                         # rebuild target is being deprecated instead use "make new build"
163                         #
164                         rebuild_msg: FORCE
165                         	@$(ECHO) "==============================================================================="
166 kumpf          1.52     	@$(ECHO) "Makefile: The rebuild target is being deprecated."
167 jim.wunderlich 1.34     	@$(ECHO) "          Use \"make usage\" for a description of the usage model."
168 kumpf          1.42     	@$(ECHO) "          Consider using \"make new world\" ."
169 jim.wunderlich 1.34     	@$(ECHO) "          Invoking the old rebuild rule now."
170                         	@$(ECHO) "==============================================================================="
171                         
172                         rebuild: rebuild_msg shortsleep new build s_unittests repository
173 jim.wunderlich 1.32     
174                         #-----------------------
175 jim.wunderlich 1.34     # new target: cleans everthing
176                         #
177                         # This can be combined on the command line with other rules like:
178 jim.wunderlich 1.32     #
179 jim.wunderlich 1.34     # make new build
180 kumpf          1.52     # make new world
181 jim.wunderlich 1.32     
182 s.kodali       1.54     new: cimprovagt32clean clean repositoryclean
183 jim.wunderlich 1.32     
184                         #-----------------------
185 jim.wunderlich 1.34     # world targets: builds everything and dependent on which target may do testing
186 jim.wunderlich 1.32     #
187 kumpf          1.52     #       Typically used after a fresh checkout from CVS
188 jim.wunderlich 1.34     
189                         world: build s_unittests servertests
190                         
191 s.kodali       1.54     ############################
192                         #
193                         # rules for building 32 bit provider agent
194                         #
195                         cimprovagt32depend: FORCE
196                         ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT
197                         	$(MAKE) --directory=$(ROOT) -f Makefile.cimprovagt32 depend
198                         endif
199                         cimprovagt32: FORCE
200                         ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT
201                         	$(MAKE) --directory=$(ROOT) -f Makefile.cimprovagt32
202                         endif
203                         
204                         cimprovagt32clean: FORCE
205                         ifdef PEGASUS_PLATFORM_FOR_32BIT_PROVIDER_SUPPORT
206                         	$(MAKE) --directory=$(ROOT) -f Makefile.cimprovagt32 clean
207                         endif
208 jim.wunderlich 1.34     
209                         ############################
210                         #
211                         # rules defined in TestMakefile that are repeated here for convenience
212 jim.wunderlich 1.32     #
213 jim.wunderlich 1.34     shortsleep: FORCE
214                         	@$(MAKE)  -f TestMakefile shortsleep
215                         
216                         servertests: FORCE
217                         	@ $(MAKE) -f TestMakefile servertests
218                         
219 jim.wunderlich 1.35     perftests: FORCE
220                         	@ $(MAKE) -f TestMakefile perftests
221                         
222 jim.wunderlich 1.34     s_unittests: FORCE
223                         	@ $(MAKE) -f TestMakefile -s unittests
224                         
225                         unittests: FORCE
226                         	@ $(MAKE) -f TestMakefile unittests
227                         
228                         standardtests: FORCE
229                         	@ $(MAKE) -f TestMakefile standardtests
230                         
231                         alltests: FORCE
232                         	@ $(MAKE) -f TestMakefile alltests
233                         
234                         testusage: FORCE
235                         	@ $(MAKE) -f TestMakefile usage
236 jim.wunderlich 1.32     
237 jim.wunderlich 1.34     testusage2: FORCE
238                         	@ $(MAKE) -f TestMakefile usage2
239 mike           1.1      
240 j.alex         1.37     stresstests:
241                         	@$(ECHO) "Running OpenPegasus StressTests"
242                         	@$(MAKE)  -f TestMakefile stresstests
243                         	@$(ECHO) "+++++ OpenPegasus StressTests complete"
244 jim.wunderlich 1.35     
245 jim.wunderlich 1.34     ##########################################################################
246                         #
247                         # This section defines functional rules
248                         #
249 jim.wunderlich 1.32     #---------------------
250                         # buildmu target: build mu the make utility that among other things
251 karl           1.49     # includes a depend implementation. This is a separate target because
252                         # it must be build before anything else and before the depend target is used
253                         # on some platforms. Note that mu is not used on all platforms.
254 kumpf          1.52     #
255 jim.wunderlich 1.32     buildmu: FORCE
256                         	$(MAKE) --directory=$(PEGASUS_ROOT)/src/utils/mu -f Makefile
257                         
258 karl           1.54.2.1 ##########################################################################
259                         #
260                         # renameinterop: This is with regard to PEP304, build time option.
261                         # There are many test cases and result files where namespace name
262                         # root/PG_InterOp is hardcoded. So this searches for root/PG_InterOp
263                         # and changes that to "interop" or "root/interop".
264                         #
265                         # This uses mu replace internally. The original files are all saved as
266                         # filename.save. These file can be restored by running 
267                         # make -f Makefile.interop restore
268                         #
269                         renameinterop: buildmu
270                         ifeq ($(PEGASUS_INTEROP_NAMESPACE),root/interop)
271                         	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile.interop replace
272                         endif
273                         ifeq ($(PEGASUS_INTEROP_NAMESPACE),interop)
274                         	$(MAKE) --directory=$(PEGASUS_ROOT) -f Makefile.interop replace
275                         endif
276                         
277                         # buildclientlibs: The libpegclient depends on libpegcommon library.
278                         # This build target can be used to build just these two libraries. 
279 karl           1.54.2.1 # With this target, SLP support for clients is not enabled.
280                         #
281                         
282                         buildclientlibs: FORCE
283                         	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/Common -f Makefile
284                         	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Pegasus/Client -f Makefile
285                         
286 jim.wunderlich 1.32     #----------------------
287 kumpf          1.52     # setupdevserver and cleandevserver are used to setup and clear the
288 jim.wunderlich 1.32     # server configuration files needed to run the server in a development
289 kumpf          1.52     # environment.
290 jim.wunderlich 1.32     #
291                         setupdevserver: FORCE
292                         	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run
293 karl           1.54.2.3 ifeq ($(PEGASUS_ENABLE_PROTOCOL_WEB), true)
294                         	-$(MAKE) -f Makefile.webAdmin setupwebadmin
295                         endif
296 jim.wunderlich 1.32     	@$(ECHO) "PEGASUS Development Server Runtime Environment configured "
297                         
298                         cleandevserver: FORCE
299                         	$(MAKE) --directory=$(PEGASUS_ROOT)/src/Server -f Makefile install_run_clean
300 karl           1.6      
301 jim.wunderlich 1.35     clobber: FORCE
302                         	- $(RMDIRHIER) $(PEGASUS_HOME)/bin
303                         	- $(RMDIRHIER) $(PEGASUS_HOME)/lib
304                         	- $(RMDIRHIER) $(PEGASUS_HOME)/obj
305                         
306 jim.wunderlich 1.34     
307                         #---------------------
308 kumpf          1.48     # The repository target removes the entire repository and rebuilds the Pegasus
309                         # namespaces.  The repositoryServer target does not remove the repository
310                         # before building the Pegasus namespaces.  (The repositoryServer target in
311                         # TestMakefile *does* remove the repository first.)
312 mike           1.4      
313 kumpf          1.25     # Note: Arguments must be quoted to preserve upper case characters in VMS.
314 kumpf          1.48     repository: repositoryclean
315 kumpf          1.25     	@ $(MAKE) "-SC" Schemas/Pegasus repository
316 mike           1.9      
317 jim.wunderlich 1.29     repositoryclean: FORCE
318                         	@ $(RMREPOSITORY) $(REPOSITORY_ROOT)
319                         
320 kumpf          1.18     repositoryServer: FORCE
321 kumpf          1.25     	@ $(MAKE) "-SC" Schemas/Pegasus repositoryServer
322 kumpf          1.17     
323 kumpf          1.48     #---------------------
324                         # The testrepository and testrepositoryServer targets build the Pegasus test
325                         # namespaces.  A pre-existing repository is not removed.
326                         
327 kumpf          1.18     testrepository: FORCE
328 kumpf          1.25     	@ $(MAKE) "-SC" src/Providers/sample/Load repository
329                         	@ $(MAKE) "-SC" test/wetest repository
330                         	@ $(MAKE) "-SC" src/Clients/benchmarkTest/Load repository
331 chuck          1.26     	@ $(MAKE) "-SC" src/Pegasus/CQL/CQLCLI repository
332 chuck          1.27     	@ $(MAKE) "-SC" src/Pegasus/Query/QueryExpression/tests repository
333 kumpf          1.28     	@ $(MAKE) "-SC" src/Providers/TestProviders/Load repository
334 karl           1.44     ifeq ($(PEGASUS_ENABLE_CQL),true)
335 a.arora        1.30     	@ $(MAKE) "-SC" src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests repository
336 kumpf          1.43     endif
337 marek          1.38     ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), true)
338                         	@ $(MAKE) "-SC" src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests repository
339                         endif
340 w.otsuka       1.40     	@ $(MAKE) --directory=$(PEGASUS_ROOT)/src/Clients/cimsub/tests/testscript \
341                                     -f Makefile repository
342 kumpf          1.17     
343 kumpf          1.18     testrepositoryServer: FORCE
344 kumpf          1.25     	@ $(MAKE) "-SC" src/Providers/sample/Load repositoryServer
345                         	@ $(MAKE) "-SC" test/wetest repositoryServer
346                         	@ $(MAKE) "-SC" src/Clients/benchmarkTest/Load repositoryServer
347 chuck          1.26     	@ $(MAKE) "-SC" src/Pegasus/CQL/CQLCLI repositoryServer
348 chuck          1.27     	@ $(MAKE) "-SC" src/Pegasus/Query/QueryExpression/tests repositoryServer
349 kumpf          1.28     	@ $(MAKE) "-SC" src/Providers/TestProviders/Load repositoryServer
350 karl           1.44     ifeq ($(PEGASUS_ENABLE_CQL),true)
351 a.arora        1.30     	@ $(MAKE) "-SC" src/Pegasus/ControlProviders/QueryCapabilitiesProvider/tests repositoryServer
352 kumpf          1.43     endif
353 marek          1.38     ifeq ($(PEGASUS_ENABLE_JMPI_PROVIDER_MANAGER), true)
354                         	@ $(MAKE) "-SC" src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests repositoryServer
355                         endif
356 w.otsuka       1.40     	@ $(MAKE) --directory=$(PEGASUS_ROOT)/src/Clients/cimsub/tests/testscript \
357                                     -f Makefile repositoryServer
358 kumpf          1.16     
359 kumpf          1.52     rootbundle:
360 humberto       1.21     	$(MAKE) --directory=$(PEGASUS_ROOT)/src/utils/cnv2rootbundle -f Makefile
361 karl           1.54.2.3 
362 karl           1.54.2.2 # DO NOT DELETE

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2