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

File: [Pegasus] / pegasus / rpm / RPMMakefile (download)
Revision: 1.5, Wed Sep 12 19:23:46 2007 UTC (16 years, 8 months ago) by denise.eckstein
Branch: MAIN
CVS Tags: RELEASE_2_7_0-RC1
Changes since 1.4: +21 -40 lines
BUG#:6932
TITLE: RPM package version needs to be updated.

DESCRIPTION: Updated package version (aka RELEASE tag) to 2. To simplify updating the RELEASE tag, this change introduces a new environment variable PEGASUS_PACKAGE_VERSION.

#//%2006////////////////////////////////////////////////////////////////////////
#//
#// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
#// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
#// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
#// IBM Corp.; EMC Corporation, The Open Group.
#// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
#// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
#// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
#// EMC Corporation; VERITAS Software Corporation; The Open Group.
#// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
#// EMC Corporation; Symantec Corporation; The Open Group.
#//
#// 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
TOG_INSTALLED_RPMS:=$(shell $(RPM) -qa|grep tog-pegasus)
CIMSERVER_START_SERVICE:=$(PEGASUS_SBIN_DIR)/cimserver
CIMSERVER_STOP_SERVICE:=$(PEGASUS_SBIN_DIR)/cimserver -s

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

ifeq ($(IDISTRO),RedHatEnterpriseServer)
    DISTRO:=REDHAT
    export PEGASUS_DISTRO_SUFFIX:=$(if $(filter $(RELEASE),4.92 4.93 5),el5,\
        xxx)
else
    ifeq ($(findstring RedHat,$(IDISTRO)),RedHat)
        DISTRO:=REDHAT
        ifeq ($(RELEASE),4)
           export PEGASUS_DISTRO_SUFFIX=rhel4
        else
            ifeq ($(RELEASE),3)
                export PEGASUS_DISTRO_SUFFIX=rhel3
            else
                export PEGASUS_DISTRO_SUFFIX=xxx
            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
                    export PEGASUS_DISTRO_SUFFIX=xxx
                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:=tog-pegasus
endif

VERSION:=$(PEGASUS_PRODUCT_VERSION)-$(PEGASUS_PACKAGE_VERSION)
CORE_RPM:=tog-pegasus-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm
SDK_RPM:=tog-pegasus-devel-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm
TEST_RPM:=tog-pegasus-test-$(VERSION).$(PEGASUS_DISTRO_SUFFIX).$(PLATFORM).rpm
SRC_RPM:=tog-pegasus-$(VERSION).src.rpm

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"

exportSRC:
	@cvs -d:pserver:anon@cvs.opengroup.org:/cvs/MSB export -r $(PEGASUS_RPM_CVS_TAG) pegasus

createSRCRPM:

ifndef PEGASUS_PRODUCT_VERSION
	@$(ECHO) "PEGASUS_PRODUCT_VERSION is not defined"
	@exit 2
endif
	@$(MV) pegasus tog-pegasus-$(PEGASUS_PRODUCT_VERSION)
	@$(CP) tog-pegasus-$(PEGASUS_PRODUCT_VERSION)/rpm/tog-pegasus.spec $(PEGASUS_RPM_DIRECTORY)/SPECS 
	@tar czf tog-pegasus-$(VERSION).tar.gz tog-pegasus-$(PEGASUS_PRODUCT_VERSION)
	@$(CP) tog-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) tog-pegasus

tests:
	# Start cimserver
	-$(CIMSERVER_STOP_SERVICE)
	$(CIMSERVER_START_SERVICE)
	@check_for_core

	# 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
	-@check_for_core

	@$(ECHO) "+++++ Running cimserver -v +++++"
	$(PEGASUS_SBIN_DIR)/cimserver -v
	@check_for_core

	@$(ECHO) "+++++ Running cimconfig +++++"
	$(PEGASUS_SBIN_DIR)/cimconfig -l -c
	@check_for_core

	@$(ECHO) "+++++ Running cimprovider +++++"
	$(PEGASUS_BIN_DIR)/cimprovider -l -s
	@check_for_core

	@$(ECHO) "+++++ Stopping cimserver +++++"
	@$(CIMSERVER_STOP_SERVICE)
	@check_for_core

	@$(ECHO) "+++++ Starting cimserver +++++"
	$(CIMSERVER_START_SERVICE)
	@check_for_core

	# 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
	@check_for_core

	# 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
	@check_for_core

# 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:
	-$(RPM) -e $(filter tog-pegasus-test%,$(TOG_INSTALLED_RPMS))
	-$(RPM) -e $(filter tog-pegasus-devel%,$(TOG_INSTALLED_RPMS))
	-$(RPM) -e $(filter tog-pegasus-2%,$(TOG_INSTALLED_RPMS))
	-$(RM) -Rf tog-pegasus-$(PEGASUS_PRODUCT_VERSION).old
	-$(MV) tog-pegasus-$(PEGASUS_PRODUCT_VERSION) tog-pegasus-$(PEGASUS_PRODUCT_VERSION).old

buildRPM: cleanRPM createSRCRPM createBINRPM

buildall: exportSRC buildRPM

world: buildall install tests

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2