Blame makesrpm.sh

Packit Service 155747
#!/bin/bash
Packit Service 155747
#
Packit Service 155747
#  This file is provided under a dual BSD/GPLv2 license.  When using or
Packit Service 155747
#  redistributing this file, you may do so under either license.
Packit Service 155747
#
Packit Service 155747
#  GPL LICENSE SUMMARY
Packit Service 155747
#
Packit Service 155747
#  Copyright(c) 2015 Intel Corporation.
Packit Service 155747
#
Packit Service 155747
#  This program is free software; you can redistribute it and/or modify
Packit Service 155747
#  it under the terms of version 2 of the GNU General Public License as
Packit Service 155747
#  published by the Free Software Foundation.
Packit Service 155747
#
Packit Service 155747
#  This program is distributed in the hope that it will be useful, but
Packit Service 155747
#  WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 155747
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 155747
#  General Public License for more details.
Packit Service 155747
#
Packit Service 155747
#  Contact Information:
Packit Service 155747
#  Intel Corporation, www.intel.com
Packit Service 155747
#
Packit Service 155747
#  BSD LICENSE
Packit Service 155747
#
Packit Service 155747
#  Copyright(c) 2015 Intel Corporation.
Packit Service 155747
#
Packit Service 155747
#  Redistribution and use in source and binary forms, with or without
Packit Service 155747
#  modification, are permitted provided that the following conditions
Packit Service 155747
#  are met:
Packit Service 155747
#
Packit Service 155747
#    * Redistributions of source code must retain the above copyright
Packit Service 155747
#      notice, this list of conditions and the following disclaimer.
Packit Service 155747
#    * Redistributions in binary form must reproduce the above copyright
Packit Service 155747
#      notice, this list of conditions and the following disclaimer in
Packit Service 155747
#      the documentation and/or other materials provided with the
Packit Service 155747
#      distribution.
Packit Service 155747
#    * Neither the name of Intel Corporation nor the names of its
Packit Service 155747
#      contributors may be used to endorse or promote products derived
Packit Service 155747
#      from this software without specific prior written permission.
Packit Service 155747
#
Packit Service 155747
#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Packit Service 155747
#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Packit Service 155747
#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Packit Service 155747
#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
Packit Service 155747
#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
Packit Service 155747
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Packit Service 155747
#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
Packit Service 155747
#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Packit Service 155747
#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Packit Service 155747
#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit Service 155747
#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit Service 155747
#
Packit Service 155747
Packit Service 155747
#It makes no sense to have both CUDA and non-CUDA in the same invocation
Packit Service 155747
#as they require different versions of the hfi1_user.h at this point in time.
Packit Service 155747
#Limiting this script to only build CUDA if requested
Packit Service 155747
Packit Service 155747
#default BUILDARG to build source RPM only
Packit Service 155747
BUILDARG=s
Packit Service 155747
RPM_NAME=libpsm2
Packit Service 155747
Packit Service 155747
function usage()
Packit Service 155747
{
Packit Service 155747
    echo "Usage: $0 [OPTION] [OPTION] [OPTION]"
Packit Service 155747
    echo " "
Packit Service 155747
    echo "Creates tar ball of source and source rpms by default."
Packit Service 155747
    echo "Optionally generates binary rpm(s) "
Packit Service 155747
    echo " "
Packit Service 155747
    echo "     s,a,b,p,c,i,l"
Packit Service 155747
    echo "           Optional, default is s (sourcerpm)"
Packit Service 155747
    echo "           Set single extension letter for rpmbuild -b argument"
Packit Service 155747
    echo "     -r <name>, -rpmname <name>"
Packit Service 155747
    echo "           Optional, set the output rpm name"
Packit Service 155747
    echo "     -e <basename ext>, -baseext <basename ext>"
Packit Service 155747
    echo "           Optional, set a base name extension"
Packit Service 155747
    echo "           This only appends an extra string onto the base RPM name"
Packit Service 155747
    echo "           Does not affect supporting RPMs"
Packit Service 155747
    echo "     -c, -cuda"
Packit Service 155747
    echo "           Optional, default is unset"
Packit Service 155747
    echo "           Sets PSM_CUDA=1, creating -cuda based spec and rpms"
Packit Service 155747
    echo "     -d <path>, -dir <path>"
Packit Service 155747
    echo "           Optionally sets output folder for rpmbuild to use"
Packit Service 155747
    echo "     -h <hal_gen>, -hal_gen <hal_gen>"
Packit Service 155747
    echo "           Optional, default is includes all HAL generations"
Packit Service 155747
    echo "           Sets hal generations for rpmbuild to use"
Packit Service 155747
    echo "     Examples:"
Packit Service 155747
    echo "           $0 b"
Packit Service 155747
    echo "           $0 s -cuda"
Packit Service 155747
    echo "           $0 -cuda"
Packit Service 155747
    echo "           $0 -d ./temp"
Packit Service 155747
    echo "           $0 b -cuda -dir output"
Packit Service 155747
    echo "           $0 -h gen1"
Packit Service 155747
    exit 1
Packit Service 155747
}
Packit Service 155747
Packit Service 155747
err=0
Packit Service 155747
Packit Service 155747
# OUTDIR is where the Makefile places its meta-data
Packit Service 155747
OUTDIR=build_release
Packit Service 155747
Packit Service 155747
# Set TEMPDIR first, so user control can override the value
Packit Service 155747
# This is where rpmbuild places rpm(s) and uses its build meta-data.
Packit Service 155747
# It can be set the same as OUTDIR, and work just fine if desired.
Packit Service 155747
TEMPDIR=temp.$$
Packit Service 155747
Packit Service 155747
HAL_GENS=""
Packit Service 155747
Packit Service 155747
while [ "$1" != "" ]; do
Packit Service 155747
    case $1 in
Packit Service 155747
        -d | -dir)      shift
Packit Service 155747
                        if [ -z "$1" ]; then
Packit Service 155747
                            usage
Packit Service 155747
                        fi
Packit Service 155747
                        TEMPDIR=$1
Packit Service 155747
                        ;;
Packit Service 155747
        -c | -cuda)     export PSM_CUDA=1
Packit Service 155747
                        RPM_EXT="-cuda"
Packit Service 155747
                        ;;
Packit Service 155747
        -e | -baseext)  shift
Packit Service 155747
                        if [ -z "$1" ]; then
Packit Service 155747
                            usage
Packit Service 155747
                        fi
Packit Service 155747
                        RPM_NAME_BASEEXT="$1"
Packit Service 155747
                        export RPM_NAME_BASEEXT="$1"
Packit Service 155747
                        ;;
Packit Service 155747
        -h | -halgen)   shift
Packit Service 155747
                        HAL_GENS="$1 $HAL_GENS"
Packit Service 155747
	                ;;
Packit Service 155747
        -r | -rpmname)  shift
Packit Service 155747
                        if [ -z "$1" ]; then
Packit Service 155747
                            usage
Packit Service 155747
                        fi
Packit Service 155747
                        $RPM_NAME="$1"
Packit Service 155747
                        export RPM_NAME="$1"
Packit Service 155747
                        ;;
Packit Service 155747
        s|a|b|p|c|i|l)  BUILDARG=$1
Packit Service 155747
                        ;;
Packit Service 155747
        * )             err=1
Packit Service 155747
                        usage
Packit Service 155747
                        ;;
Packit Service 155747
    esac
Packit Service 155747
    shift
Packit Service 155747
done
Packit Service 155747
Packit Service 155747
if [ "$HAL_GENS" = "" ]; then
Packit Service 155747
    HAL_GENS="*"
Packit Service 155747
fi
Packit Service 155747
Packit Service 155747
# Generic cleanup, build, and tmp folder creation
Packit Service 155747
make distclean OUTDIR=$OUTDIR
Packit Service 155747
make RPM_NAME=$RPM_NAME RPM_NAME_BASEEXT=$RPM_NAME_BASEEXT "PSM_HAL_ENABLE=$HAL_GENS" dist OUTDIR=$OUTDIR
Packit Service 155747
mkdir -p ./$TEMPDIR/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT}
Packit Service 155747
# Different paths based on RPM_EXT
Packit Service 155747
cp ${OUTDIR}/$RPM_NAME-*.tar.gz $TEMPDIR/SOURCES
Packit Service 155747
make RPM_NAME=$RPM_NAME RPM_NAME_BASEEXT=$RPM_NAME_BASEEXT specfile OUTDIR=$OUTDIR
Packit Service 155747
cp ${OUTDIR}/$RPM_NAME.spec $TEMPDIR/SPECS
Packit Service 155747
rpmbuild -b$BUILDARG --define "_topdir $PWD/$TEMPDIR" --nodeps $TEMPDIR/SPECS/$RPM_NAME.spec
Packit Service 155747
Packit Service 155747
echo "The SRPM(s) are in $TEMPDIR/SRPMS/`ls $TEMPDIR/SRPMS`"