mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
117 lines
4.2 KiB
Bash
Executable File
117 lines
4.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
#
|
|
# Copyright (C) 2021-2022 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
|
|
set -ex
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
REPO_DIR="$( cd "$( dirname "${DIR}/../../../../" )" && pwd )"
|
|
BUILD_DIR="${REPO_DIR}/../build_opencl"
|
|
|
|
ENABLE_OPENCL="${ENABLE_OPENCL:-1}"
|
|
if [ "${ENABLE_OPENCL}" == "0" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
BUILD_SRPM="${BUILD_SRPM:-1}"
|
|
BUILD_RPM="${BUILD_RPM:-1}"
|
|
SPEC_FILE="${SPEC_FILE:-${OS_TYPE}}"
|
|
if [[ ${SPEC_FILE} == rhel* ]]; then
|
|
SPEC_FILE=${SPEC_FILE%.*}
|
|
fi
|
|
|
|
export BUILD_ID="${BUILD_ID:-1}"
|
|
export CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE:-Release}"
|
|
|
|
(
|
|
if [ "${BUILD_SRPM}" == "1" ]; then
|
|
BRANCH_SUFFIX="$( cat ${REPO_DIR}/.branch )"
|
|
PACKAGING_DIR="$REPO_DIR/scripts/packaging/opencl/${SPEC_FILE}"
|
|
SPEC_SRC="$PACKAGING_DIR/SPECS/opencl.spec"
|
|
SPEC="$BUILD_DIR/SPECS/opencl.spec"
|
|
COPYRIGHT="${REPO_DIR}/scripts/packaging/${BRANCH_SUFFIX}/opencl/${SPEC_FILE}/copyright"
|
|
|
|
build_args=()
|
|
if [ "${CMAKE_BUILD_TYPE}" == "Debug" ]; then
|
|
export CFLAGS=" "
|
|
export CXXFLAGS=" "
|
|
export FFLAGS=" "
|
|
build_args+=(--define 'name_suffix -debug')
|
|
fi
|
|
|
|
source "${REPO_DIR}/scripts/packaging/${BRANCH_SUFFIX}/functions.sh"
|
|
source "${REPO_DIR}/scripts/packaging/${BRANCH_SUFFIX}/opencl/opencl.sh"
|
|
|
|
get_opencl_version # NEO_OCL_VERSION_MAJOR.NEO_OCL_VERSION_MINOR.NEO_OCL_VERSION_BUILD
|
|
get_api_version # API_VERSION-API_VERSION_SRC and API_RPM_MODEL_LINK
|
|
|
|
VERSION="${NEO_OCL_VERSION_MAJOR}.${NEO_OCL_VERSION_MINOR}.${NEO_OCL_VERSION_BUILD}${API_VERSION}"
|
|
RELEASE="${NEO_OCL_VERSION_HOTFIX}${API_VERSION_SRC}${API_RPM_MODEL_LINK}"
|
|
|
|
RELEASE_WITH_REGKEYS="${RELEASE_WITH_REGKEYS:-FALSE}"
|
|
|
|
#setup rpm build tree
|
|
rm -rf $BUILD_DIR
|
|
mkdir -p $BUILD_DIR/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
|
|
tar -c -I 'xz -6 -T0' -f $BUILD_DIR/SOURCES/compute-runtime.tar.xz -C $REPO_DIR --transform "s,${REPO_DIR:1},compute-runtime," --exclude=.git\* $REPO_DIR
|
|
cp $COPYRIGHT $BUILD_DIR/SOURCES/
|
|
cp $SPEC_SRC $BUILD_DIR/SPECS/
|
|
|
|
if [ -d "$I915_HEADERS_DIR" ]; then
|
|
tar -c -I 'xz -6 -T0' -f $BUILD_DIR/SOURCES/uapi.tar.xz -C $REPO_DIR --transform "s,${I915_HEADERS_DIR:1},uapi," $I915_HEADERS_DIR
|
|
perl -pi -e "s;^%global I915_HEADERS_DIR .*;%global I915_HEADERS_DIR %{_builddir}/uapi;" $SPEC
|
|
fi
|
|
|
|
PATCH_SPEC="${REPO_DIR}/scripts/packaging/${BRANCH_SUFFIX}/patch_spec.sh"
|
|
|
|
if [ -f "$PATCH_SPEC" ]; then
|
|
source "$PATCH_SPEC"
|
|
fi
|
|
|
|
if [ -z "${BRANCH_SUFFIX}" ]; then
|
|
sed -i '/^Epoch: /d' ${SPEC}
|
|
fi
|
|
|
|
# Update spec file with new version
|
|
perl -pi -e "s/^%global NEO_OCL_VERSION_MAJOR .*/%global NEO_OCL_VERSION_MAJOR ${NEO_OCL_VERSION_MAJOR}/" $SPEC
|
|
perl -pi -e "s/^%global NEO_OCL_VERSION_MINOR .*/%global NEO_OCL_VERSION_MINOR ${NEO_OCL_VERSION_MINOR}/" $SPEC
|
|
perl -pi -e "s/^%global NEO_OCL_VERSION_BUILD .*/%global NEO_OCL_VERSION_BUILD ${NEO_OCL_VERSION_BUILD}/" $SPEC
|
|
perl -pi -e "s/^%global NEO_RELEASE_WITH_REGKEYS .*/%global NEO_RELEASE_WITH_REGKEYS ${RELEASE_WITH_REGKEYS}/" $SPEC
|
|
perl -pi -e "s/^%global rel .*/%global rel ${RELEASE}/" $SPEC
|
|
perl -pi -e "s/^%global ver .*/%global ver ${VERSION}/" $SPEC
|
|
|
|
rpmbuild --define "_topdir $BUILD_DIR" -bs $SPEC --define 'build_type ${CMAKE_BUILD_TYPE}' "${build_args[@]}"
|
|
mkdir -p ${REPO_DIR}/../output/SRPMS
|
|
echo -n ${VERSION} > ${REPO_DIR}/../output/.opencl.version
|
|
cp -v $BUILD_DIR/SRPMS/*.rpm ${REPO_DIR}/../output/SRPMS/
|
|
fi
|
|
)
|
|
|
|
if [ "${BUILD_RPM}" == "1" ]; then
|
|
LOG_CCACHE_STATS="${LOG_CCACHE_STATS:-0}"
|
|
|
|
rm -rf $BUILD_DIR
|
|
mkdir -p $BUILD_DIR/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
|
|
|
|
build_args=()
|
|
build_args+=(--define "_topdir $BUILD_DIR")
|
|
|
|
VERSION=$(cat ${REPO_DIR}/../output/.opencl.version)
|
|
if [ "${LOG_CCACHE_STATS}" == "1" ]; then
|
|
ccache -z
|
|
fi
|
|
export CCACHE_BASEDIR=$(readlink -m $BUILD_DIR/BUILD/compute-runtime/)
|
|
rpmbuild --rebuild ${REPO_DIR}/../output/SRPMS/intel-opencl-${VERSION}*.src.rpm "${build_args[@]}"
|
|
if [ "${LOG_CCACHE_STATS}" == "1" ]; then
|
|
ccache -s
|
|
ccache -s | grep 'cache hit rate' | cut -d ' ' -f 4- | xargs -I{} echo OpenCL {} >> $REPO_DIR/../output/logs/ccache.log
|
|
fi
|
|
|
|
sudo rpm -Uvh --force $BUILD_DIR/RPMS/*/*.rpm
|
|
cp $BUILD_DIR/RPMS/*/*.rpm $REPO_DIR/../output/
|
|
fi
|