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

  1 w.otsuka 1.1 #//%2006////////////////////////////////////////////////////////////////////////
  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              #// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12              #// EMC Corporation; Symantec Corporation; The Open Group.
 13              #//
 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 w.otsuka 1.1 #// 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              ###############################################################################
 32              ##
 33              ## RPM Makefile for building tog-pegasus rpms
 34              ##
 35              ## see the usage rule for documentation of rules etc.
 36              ##
 37              ##
 38              ###############################################################################
 39              
 40              
 41 denise.eckstein 1.5 include pegasus/env_var_Linux.status
 42                     
 43 w.otsuka        1.1 RELEASE:=$(shell lsb_release -r -s)
 44                     IDISTRO:=$(shell lsb_release -i -s)
 45                     PLATFORM:=$(shell /bin/rpm --eval %_target_cpu)
 46                     BRANCH:=$(PEGASUS_BUILD_BRANCH)
 47                     RPM:=rpm
 48 denise.eckstein 1.4 ifndef PEGASUS_RPM_BUILD_DEBUG
 49                         RPMBUILD:=rpmbuild
 50                     else
 51                         RPMBUILD:=rpmbuild -vv
 52                     endif
 53 w.otsuka        1.1 RM:=rm
 54                     MV:=mv
 55                     CP:=cp
 56                     GREP:=grep
 57                     ECHO:=echo
 58                     TOG_INSTALLED_RPMS:=$(shell $(RPM) -qa|grep tog-pegasus)
 59 w.otsuka        1.3 CIMSERVER_START_SERVICE:=$(PEGASUS_SBIN_DIR)/cimserver
 60                     CIMSERVER_STOP_SERVICE:=$(PEGASUS_SBIN_DIR)/cimserver -s
 61 w.otsuka        1.1 
 62                     ifdef PEGASUS_BUILD_BRANCH
 63                         ifeq ($(PEGASUS_BUILD_BRANCH),MAIN)
 64                             PEGASUS_RPM_CVS_TAG:=HEAD
 65                         else
 66                             PEGASUS_RPM_CVS_TAG:=$(PEGASUS_BUILD_BRANCH)
 67                         endif
 68                     else
 69                             PEGASUS_RPM_CVS_TAG:=HEAD
 70                     endif
 71                     
 72                     ifeq ($(IDISTRO),RedHatEnterpriseServer)
 73                         DISTRO:=REDHAT
 74 denise.eckstein 1.6.16.1     export PEGASUS_DISTRO_SUFFIX:= \
 75                                  $(if $(filter $(RELEASE),4.92 4.93 5),el5,xxx)
 76 w.otsuka        1.1      else
 77                              ifeq ($(findstring RedHat,$(IDISTRO)),RedHat)
 78                                  DISTRO:=REDHAT
 79                                  ifeq ($(RELEASE),4)
 80                                     export PEGASUS_DISTRO_SUFFIX=rhel4
 81                                  else
 82                                      ifeq ($(RELEASE),3)
 83                                          export PEGASUS_DISTRO_SUFFIX=rhel3
 84                                      else
 85                                          export PEGASUS_DISTRO_SUFFIX=xxx
 86                                      endif
 87                                  endif
 88                              else
 89                                  ifeq ($(findstring SUSE,$(IDISTRO)),SUSE)
 90                                      DISTRO:=SUSE
 91                                      ifeq ($(RELEASE),9)
 92                                          export PEGASUS_DISTRO_SUFFIX=sles9
 93                                      else
 94                                          ifeq ($(RELEASE),10)
 95                                              export PEGASUS_DISTRO_SUFFIX=sles10
 96                                          else
 97 w.otsuka        1.1                          export PEGASUS_DISTRO_SUFFIX=xxx
 98                                          endif
 99                                      endif
100                                  endif
101                              endif
102                          endif
103                          
104                          ###############################################################################
105                          #
106                          # The user may set PEGASUS_RPM_DIRECTORY to the path of their rpm build target.
107                          # The source tar file will then be in 
108                          # PEGASUS_RPM_DIRECTORY/SOURCES/tog-pegasus.
109                          # If PEGASUS_RPM_DIRECTORY is not defined the rpm build target path will be
110                          # defaulted to the well-known locations on redhat and suse systems.
111                          #
112                          ###############################################################################
113                          ifndef PEGASUS_RPM_DIRECTORY
114                            ifeq ($(DISTRO),REDHAT)
115                              PEGASUS_RPM_DIRECTORY:=/usr/src/redhat
116                            else
117                              ifeq ($(DISTRO),SUSE)
118 w.otsuka        1.1            PEGASUS_RPM_DIRECTORY:=/usr/src/packages
119                              endif
120                            endif
121                            TOG_PEGASUS_DIR:=""
122                          else
123                            TOG_PEGASUS_DIR:=tog-pegasus
124                          endif
125                          
126 denise.eckstein 1.5      VERSION:=$(PEGASUS_PRODUCT_VERSION)-$(PEGASUS_PACKAGE_VERSION)
127 w.otsuka        1.1      CORE_RPM:=tog-pegasus-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm
128                          SDK_RPM:=tog-pegasus-devel-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm
129                          TEST_RPM:=tog-pegasus-test-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm
130                          SRC_RPM:=tog-pegasus-$(VERSION).src.rpm
131                          
132                          USAGE = @$(ECHO) $(1)
133                          
134                          usage: 
135                          	$(USAGE)
136                          	$(USAGE)"RPMMakefile targets:"
137                          	$(USAGE)""
138                          	$(USAGE)"exportSRC            - cvs export of pegasus"
139                          	$(USAGE)"createSRCRPM         - creates source rpm"
140                          	$(USAGE)"createBINRPM         - creates binary rpms including the test"
141                          	$(USAGE)"                       rpm from the source rpm"
142                          	$(USAGE)"buildRPM             - createSRCRPM createBINRPM"
143                          	$(USAGE)"buildall             - exportSRC buildRPM"
144 w.otsuka        1.3      	$(USAGE)"list                 - list installed tog-pegasus rpms"
145                          	$(USAGE)"tests                - runs sample tests and test rpm tests"
146                          	$(USAGE)"install              - installs tog-pegasus core and devel rpms"
147                          	$(USAGE)"world                - cleanRPM buildall install tests"
148                          	$(USAGE)"cleanRPM             - uninstalls tog-pegasus rpms"
149 w.otsuka        1.1      	$(USAGE)""
150                          	$(USAGE)"Input variables:"
151                          	$(USAGE)"PEGASUS_BUILD_BRANCH - pegasus branch to build"
152                          	$(USAGE)"                       HEAD is used if MAIN is specified"
153                          
154 denise.eckstein 1.6.16.1 CORE_PATTERN = \"core*\"
155                          define checkForCores
156                          	@if [ "`find $1 $2  -name $(CORE_PATTERN)`" != "" ]; \
157                                       then echo "*** One or more core files found:" \
158                                          "`find $1 $2 -name $(CORE_PATTERN)`"; \
159                                          exit 1; fi;
160                          	@if [ "$(PEGASUS_CORE_DIR)" != "" ] && \
161                                       [ "`find $(PEGASUS_CORE_DIR) -maxdepth 1 -name $(CORE_PATTERN)`" \
162                                          != "" ]; then echo "*** One or more core files found:" \
163                                          "`find $(PEGASUS_CORE_DIR) -maxdepth 1 -name $(CORE_PATTERN)`";\
164                                          exit 1; fi
165                          endef
166                          
167 w.otsuka        1.1      exportSRC:
168                          	@cvs -d:pserver:anon@cvs.opengroup.org:/cvs/MSB export -r $(PEGASUS_RPM_CVS_TAG) pegasus
169                          
170                          createSRCRPM:
171                          
172 denise.eckstein 1.5      ifndef PEGASUS_PRODUCT_VERSION
173                          	@$(ECHO) "PEGASUS_PRODUCT_VERSION is not defined"
174 w.otsuka        1.1      	@exit 2
175                          endif
176 denise.eckstein 1.5      	@$(MV) pegasus tog-pegasus-$(PEGASUS_PRODUCT_VERSION)
177                          	@$(CP) tog-pegasus-$(PEGASUS_PRODUCT_VERSION)/rpm/tog-pegasus.spec $(PEGASUS_RPM_DIRECTORY)/SPECS 
178                          	@tar czf tog-pegasus-$(VERSION).tar.gz tog-pegasus-$(PEGASUS_PRODUCT_VERSION)
179 w.otsuka        1.1      	@$(CP) tog-pegasus-$(VERSION).tar.gz $(PEGASUS_RPM_DIRECTORY)/SOURCES/$(TOG_PEGASUS_DIR)
180                          	@$(RPMBUILD) -bs $(PEGASUS_RPM_DIRECTORY)/SPECS/tog-pegasus.spec
181                          
182                          createBINRPM:
183                          	@$(RPM) -i $(PEGASUS_RPM_DIRECTORY)/SRPMS/$(SRC_RPM)
184                          	@$(RPMBUILD) -bb --define 'LINUX_VERSION $(PEGASUS_DISTRO_SUFFIX)' --define 'PEGASUS_BUILD_TEST_RPM 1' $(PEGASUS_RPM_DIRECTORY)/SPECS/tog-pegasus.spec
185                          
186                          list: 
187                          	@$(RPM) -qa|$(GREP) tog-pegasus
188                          
189 w.otsuka        1.3      tests:
190                          	# Start cimserver
191                          	-$(CIMSERVER_STOP_SERVICE)
192                          	$(CIMSERVER_START_SERVICE)
193 denise.eckstein 1.6.16.1 	$(call checkForCores,./,-maxdepth 1)
194 w.otsuka        1.3      
195                          	# Run some sanity tests
196                          	# osinfo, cimserver -v, cimprovider -l -s, cimconfig -l -c etc
197                          	@$(ECHO) "+++++ Running sanity checks +++++"
198                          	@$(ECHO) "+++++ Running osinfo +++++"
199                          	$(PEGASUS_BIN_DIR)/osinfo
200 denise.eckstein 1.6.16.1 	$(call checkForCores,./,-maxdepth 1)
201 w.otsuka        1.3      
202                          	@$(ECHO) "+++++ Running cimserver -v +++++"
203                          	$(PEGASUS_SBIN_DIR)/cimserver -v
204 denise.eckstein 1.6.16.1 	$(call checkForCores,./,-maxdepth 1)
205 w.otsuka        1.3      
206                          	@$(ECHO) "+++++ Running cimconfig +++++"
207                          	$(PEGASUS_SBIN_DIR)/cimconfig -l -c
208 denise.eckstein 1.6.16.1 	$(call checkForCores,./,-maxdepth 1)
209 w.otsuka        1.3      
210                          	@$(ECHO) "+++++ Running cimprovider +++++"
211                          	$(PEGASUS_BIN_DIR)/cimprovider -l -s
212 denise.eckstein 1.6.16.1 	$(call checkForCores,./,-maxdepth 1)
213 w.otsuka        1.3      
214                          	@$(ECHO) "+++++ Stopping cimserver +++++"
215                          	@$(CIMSERVER_STOP_SERVICE)
216 denise.eckstein 1.6.16.1 	$(call checkForCores,./,-maxdepth 1)
217 w.otsuka        1.3      
218                          	@$(ECHO) "+++++ Starting cimserver +++++"
219                          	$(CIMSERVER_START_SERVICE)
220 denise.eckstein 1.6.16.1 	$(call checkForCores,./,-maxdepth 1)
221 w.otsuka        1.3      
222                          	# Run samples
223                          	@$(ECHO) "+++++ Running samples +++++"
224                          	$(MAKE) --directory=$(PEGASUS_SAMPLES_DIR) -f Makefile
225                          	$(MAKE) --directory=$(PEGASUS_SAMPLES_DIR) -f Makefile setupSDK
226                          	$(MAKE) --directory=$(PEGASUS_SAMPLES_DIR) -f Makefile testSDK
227 yi.zhou         1.6      	$(MAKE) --directory=$(PEGASUS_SAMPLES_DIR) -f Makefile unsetupSDK
228 denise.eckstein 1.6.16.1 	$(call checkForCores,$(PEGASUS_SAMPLES_DIR),)
229 w.otsuka        1.3      
230                          	# Install the test RPM after running SDK tests. This is because
231                          	# the test RPM over-writes the repository.
232                          	@$(ECHO) "+++++ Installing Test RPM +++++"
233                          	$(RPM) -ih $(PEGASUS_RPM_DIRECTORY)/RPMS/$(PLATFORM)/$(TEST_RPM)
234 denise.eckstein 1.5      	$(MAKE) --directory=$(PEGASUS_TEST_DIR) -f Makefile setupTEST
235                          	$(MAKE) --directory=$(PEGASUS_TEST_DIR) -f Makefile tests
236 denise.eckstein 1.6.16.1 	$(call checkForCores,$(PEGASUS_TEST_DIR),)
237 w.otsuka        1.3      
238                          # Install rpms
239                          install:
240                          	@$(ECHO) "+++++ Installing RPMs +++++"
241                          	$(RPM) -ih $(PEGASUS_RPM_DIRECTORY)/RPMS/$(PLATFORM)/$(CORE_RPM)
242                          	$(RPM) -ih $(PEGASUS_RPM_DIRECTORY)/RPMS/$(PLATFORM)/$(SDK_RPM)
243                          	$(PEGASUS_SCRIPT_DIR)/genOpenPegasusSSLCerts
244                          
245                          cleanRPM:
246 w.otsuka        1.1      	-$(RPM) -e $(filter tog-pegasus-test%,$(TOG_INSTALLED_RPMS))
247                          	-$(RPM) -e $(filter tog-pegasus-devel%,$(TOG_INSTALLED_RPMS))
248                          	-$(RPM) -e $(filter tog-pegasus-2%,$(TOG_INSTALLED_RPMS))
249 denise.eckstein 1.5      	-$(RM) -Rf tog-pegasus-$(PEGASUS_PRODUCT_VERSION).old
250                          	-$(MV) tog-pegasus-$(PEGASUS_PRODUCT_VERSION) tog-pegasus-$(PEGASUS_PRODUCT_VERSION).old
251 w.otsuka        1.3      
252                          buildRPM: cleanRPM createSRCRPM createBINRPM
253                          
254                          buildall: exportSRC buildRPM
255 w.otsuka        1.1      
256 w.otsuka        1.3      world: buildall install tests

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2