Return to RPMMakefile CVS log | Up to [Pegasus] / pegasus / rpm |
File: [Pegasus] / pegasus / rpm / RPMMakefile
(download)
Revision: 1.19.10.1, Wed Oct 2 19:15:54 2013 UTC (10 years, 7 months ago) by dl.meetei Branch: TASK-PEP362_RestfulService-branch Changes since 1.19: +1 -1 lines PEP#: 362 TITLE: Restful Services and webadmin DESCRIPTION: This almost complete the current work for 2.14 except for following 1) doc for new config options 2) including the www files in rpm package, Not included yet as to decide path for it, or is it /opt/tog-pegasus/www Thanks to Anuj for SSL break fix. |
#//%LICENSE//////////////////////////////////////////////////////////////// #// #// Licensed to The Open Group (TOG) under one or more contributor license #// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with #// this work for additional information regarding copyright ownership. #// Each contributor licenses this file to you under the OpenPegasus Open #// Source License; you may not use this file except in compliance with the #// License. #// #// Permission is hereby granted, free of charge, to any person obtaining a #// copy of this software and associated documentation files (the "Software"), #// to deal in the Software without restriction, including without limitation #// the rights to use, copy, modify, merge, publish, distribute, sublicense, #// and/or sell copies of the Software, and to permit persons to whom the #// Software is furnished to do so, subject to the following conditions: #// #// The above copyright notice and this permission notice shall be included #// in all copies or substantial portions of the Software. #// #// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS #// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF #// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. #// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY #// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, #// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE #// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #// #////////////////////////////////////////////////////////////////////////// ############################################################################### ## ## RPM Makefile for building tog-pegasus rpms ## ## see the usage rule for documentation of rules etc. ## ## ############################################################################### include pegasus/env_var_Linux.status RELEASE:=$(shell lsb_release -r -s) IDISTRO:=$(shell lsb_release -i -s) PLATFORM:=$(shell /bin/rpm --eval %_target_cpu) BRANCH:=$(PEGASUS_BUILD_BRANCH) RPM:=rpm ifndef PEGASUS_RPM_BUILD_DEBUG RPMBUILD:=rpmbuild else RPMBUILD:=rpmbuild -vv endif RM:=rm MV:=mv CP:=cp GREP:=grep ECHO:=echo ECHO-E:=echo -e TOG_INSTALLED_RPMS:=$(shell $(RPM) -qa|grep $(PEGASUS_FLAVOR)-pegasus) ifdef PEGASUS_BUILD_BRANCH ifeq ($(PEGASUS_BUILD_BRANCH),MAIN) PEGASUS_RPM_CVS_TAG:=HEAD else PEGASUS_RPM_CVS_TAG:=$(PEGASUS_BUILD_BRANCH) endif else PEGASUS_RPM_CVS_TAG:=HEAD endif ############################################################################### ## ## 32 bit RedHat yield x.x like 5.5 for lsb_release -r -s whereas ## 32 bit SUSE yield x like 11 ## so, need to used findstring for comparing ## ## ############################################################################### ifeq ($(IDISTRO),RedHatEnterpriseServer) DISTRO:=REDHAT export PEGASUS_DISTRO_SUFFIX:= \ $(if $(filter $(RELEASE),4.92 4.93 5 5.1 5.2 5.3),el5,$(if $(filter $(RELEASE),6 6.0),el6,$(if $(filter $(RELEASE),7 7.0),el7,xxx))) else ifeq ($(findstring RedHat,$(IDISTRO)),RedHat) DISTRO:=REDHAT ifeq ($(findstring 7, $(RELEASE)),7) export PEGASUS_DISTRO_SUFFIX=rhel7 else ifeq ($(findstring 6, $(RELEASE)),6) export PEGASUS_DISTRO_SUFFIX=rhel6 else ifeq ($(findstring 5, $(RELEASE)),5) export PEGASUS_DISTRO_SUFFIX=rhel5 else ifeq ($(findstring 4, $(RELEASE)),4) export PEGASUS_DISTRO_SUFFIX=rhel4 else ifeq ($(findstring 3, $(RELEASE)),3) export PEGASUS_DISTRO_SUFFIX=rhel3 else export PEGASUS_DISTRO_SUFFIX=xxx endif endif endif endif endif else ifeq ($(findstring SUSE,$(IDISTRO)),SUSE) DISTRO:=SUSE ifeq ($(RELEASE),9) export PEGASUS_DISTRO_SUFFIX=sles9 else ifeq ($(RELEASE),10) export PEGASUS_DISTRO_SUFFIX=sles10 else ifeq ($(RELEASE),11) export PEGASUS_DISTRO_SUFFIX=sles11 else export PEGASUS_DISTRO_SUFFIX=xxx endif endif endif endif endif endif ############################################################################### # # The user may set PEGASUS_RPM_DIRECTORY to the path of their rpm build target. # The source tar file will then be in # PEGASUS_RPM_DIRECTORY/SOURCES/tog-pegasus. # If PEGASUS_RPM_DIRECTORY is not defined the rpm build target path will be # defaulted to the well-known locations on redhat and suse systems. # ############################################################################### ifndef PEGASUS_RPM_DIRECTORY ifeq ($(DISTRO),REDHAT) PEGASUS_RPM_DIRECTORY:=/usr/src/redhat else ifeq ($(DISTRO),SUSE) PEGASUS_RPM_DIRECTORY:=/usr/src/packages endif endif TOG_PEGASUS_DIR:="" else TOG_PEGASUS_DIR:=$(PEGASUS_FLAVOR)-pegasus endif VERSION:=$(PEGASUS_PRODUCT_VERSION)-$(PEGASUS_PACKAGE_VERSION) CORE_RPM:=$(PEGASUS_FLAVOR)-pegasus-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm SDK_RPM:=$(PEGASUS_FLAVOR)-pegasus-devel-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm TEST_RPM:=$(PEGASUS_FLAVOR)-pegasus-test-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm SRC_RPM:=$(PEGASUS_FLAVOR)-pegasus-$(VERSION).src.rpm RPM_SRC_DIR:=$(shell echo $(PEGASUS_FLAVOR)-pegasus-$(PEGASUS_PRODUCT_VERSION)) USAGE = @$(ECHO) $(1) usage: $(USAGE) $(USAGE)"RPMMakefile targets:" $(USAGE)"" $(USAGE)"exportSRC - cvs export of pegasus" $(USAGE)"createSRCRPM - creates source rpm" $(USAGE)"createBINRPM - creates binary rpms including the test" $(USAGE)" rpm from the source rpm" $(USAGE)"buildRPM - createSRCRPM createBINRPM" $(USAGE)"buildall - exportSRC buildRPM" $(USAGE)"list - list installed tog-pegasus rpms" $(USAGE)"tests - runs sample tests and test rpm tests" $(USAGE)"install - installs tog-pegasus core and devel rpms" $(USAGE)"world - cleanRPM buildall install tests" $(USAGE)"cleanRPM - uninstalls tog-pegasus rpms" $(USAGE)"" $(USAGE)"Input variables:" $(USAGE)"PEGASUS_BUILD_BRANCH - pegasus branch to build" $(USAGE)" HEAD is used if MAIN is specified" CORE_PATTERN = \"core*\" define checkForCores @if [ "`find $1 $2 -name $(CORE_PATTERN)`" != "" ]; \ then echo "*** One or more core files found:" \ "`find $1 $2 -name $(CORE_PATTERN)`"; \ exit 1; fi; @if [ "$(PEGASUS_CORE_DIR)" != "" ] && \ [ "`find $(PEGASUS_CORE_DIR) -maxdepth 1 -name $(CORE_PATTERN)`" \ != "" ]; then echo "*** One or more core files found:" \ "`find $(PEGASUS_CORE_DIR) -maxdepth 1 -name $(CORE_PATTERN)`";\ exit 1; fi endef define removeRPM @if [ -n "`rpm -qa | grep $1-[0-9]`" ]; then \ rpm -e `rpm -qa | grep $1-[0-9]`; \ fi endef define startCIMServer @/etc/init.d/$(PEGASUS_FLAVOR)-pegasus status > /dev/null 2>&1; \ if [ $$? != 0 ]; then \ /etc/init.d/$(PEGASUS_FLAVOR)-pegasus start; \ fi endef define stopCIMServer @/etc/init.d/$(PEGASUS_FLAVOR)-pegasus status > /dev/null 2>&1; \ if [ $$? == 0 ]; then \ /etc/init.d/$(PEGASUS_FLAVOR)-pegasus stop; \ fi endef exportSRC: @cvs -d:pserver:anon@cvs.opengroup.org:/cvs/MSB export -r $(PEGASUS_RPM_CVS_TAG) pegasus enableSQLiteRepository: $(ECHO-E) "" \ >> pegasus/env_var_Linux.status $(ECHO-E) "PEGASUS_USE_SQLITE_REPOSITORY = true" \ >> pegasus/env_var_Linux.status ifdef SQLITE_HOME $(ECHO-E) "SQLITE_HOME = $(SQLITE_HOME)" \ >> pegasus/env_var_Linux.status endif createSRCRPM: ifndef PEGASUS_PRODUCT_VERSION @$(ECHO) "PEGASUS_PRODUCT_VERSION is not defined" @exit 2 endif @$(MV) pegasus $(RPM_SRC_DIR) @$(CP) $(RPM_SRC_DIR)/rpm/tog-pegasus.spec \ $(PEGASUS_RPM_DIRECTORY)/SPECS @tar czf $(PEGASUS_FLAVOR)-pegasus-$(VERSION).tar.gz $(RPM_SRC_DIR) @$(CP) $(PEGASUS_FLAVOR)-pegasus-$(VERSION).tar.gz $(PEGASUS_RPM_DIRECTORY)/SOURCES/$(TOG_PEGASUS_DIR) @$(RPMBUILD) -bs $(PEGASUS_RPM_DIRECTORY)/SPECS/tog-pegasus.spec createBINRPM: @$(RPM) -i $(PEGASUS_RPM_DIRECTORY)/SRPMS/$(SRC_RPM) @$(RPMBUILD) -bb --define 'LINUX_VERSION $(PEGASUS_DISTRO_SUFFIX)' --define 'PEGASUS_BUILD_TEST_RPM 1' $(PEGASUS_RPM_DIRECTORY)/SPECS/tog-pegasus.spec list: @$(RPM) -qa|$(GREP) $(PEGASUS_FLAVOR)-pegasus tests: # Start cimserver -$(call stopCIMServer) $(call startCIMServer) $(call checkForCores,./,-maxdepth 1) # Run some sanity tests # osinfo, cimserver -v, cimprovider -l -s, cimconfig -l -c etc @$(ECHO) "+++++ Running sanity checks +++++" @$(ECHO) "+++++ Running osinfo +++++" $(PEGASUS_BIN_DIR)/osinfo $(call checkForCores,./,-maxdepth 1) @$(ECHO) "+++++ Running cimserver -v +++++" $(PEGASUS_SBIN_DIR)/cimserver -v $(call checkForCores,./,-maxdepth 1) @$(ECHO) "+++++ Running cimconfig +++++" $(PEGASUS_SBIN_DIR)/cimconfig -l -c $(call checkForCores,./,-maxdepth 1) @$(ECHO) "+++++ Running cimprovider +++++" $(PEGASUS_BIN_DIR)/cimprovider -l -s $(call checkForCores,./,-maxdepth 1) @$(ECHO) "+++++ Stopping cimserver +++++" @$(call stopCIMServer) $(call checkForCores,./,-maxdepth 1) @$(ECHO) "+++++ Starting cimserver +++++" $(call startCIMServer) $(call checkForCores,./,-maxdepth 1) # Run samples @$(ECHO) "+++++ Running samples +++++" $(MAKE) --directory=$(PEGASUS_SAMPLES_DIR) -f Makefile $(MAKE) --directory=$(PEGASUS_SAMPLES_DIR) -f Makefile setupSDK $(MAKE) --directory=$(PEGASUS_SAMPLES_DIR) -f Makefile testSDK $(MAKE) --directory=$(PEGASUS_SAMPLES_DIR) -f Makefile unsetupSDK $(call checkForCores,$(PEGASUS_SAMPLES_DIR),) # Install the test RPM after running SDK tests. This is because # the test RPM over-writes the repository. @$(ECHO) "+++++ Installing Test RPM +++++" $(RPM) -ih $(PEGASUS_RPM_DIRECTORY)/RPMS/$(PLATFORM)/$(TEST_RPM) $(MAKE) --directory=$(PEGASUS_TEST_DIR) -f Makefile setupTEST $(MAKE) --directory=$(PEGASUS_TEST_DIR) -f Makefile tests $(call checkForCores,$(PEGASUS_TEST_DIR),) # Install rpms install: @$(ECHO) "+++++ Installing RPMs +++++" $(RPM) -ih $(PEGASUS_RPM_DIRECTORY)/RPMS/$(PLATFORM)/$(CORE_RPM) $(RPM) -ih $(PEGASUS_RPM_DIRECTORY)/RPMS/$(PLATFORM)/$(SDK_RPM) $(PEGASUS_SCRIPT_DIR)/genOpenPegasusSSLCerts cleanRPM: $(call removeRPM,$(PEGASUS_FLAVOR)-pegasus-test); -$(call startCIMServer) $(call removeRPM,$(PEGASUS_FLAVOR)-pegasus-devel); $(call removeRPM,$(PEGASUS_FLAVOR)-pegasus); -$(RM) -Rf $(RPM_SRC_DIR).old ifneq ($(wildcard $(RPM_SRC_DIR)), ) $(MV) $(RPM_SRC_DIR) $(RPM_SRC_DIR).old endif buildRPM: cleanRPM createSRCRPM createBINRPM buildall: exportSRC buildRPM world: buildall install tests
No CVS admin address has been configured |
Powered by ViewCVS 0.9.2 |