diff --git a/intel-cm-compiler-1.0.144.tar.gz b/intel-cm-compiler-1.0.144.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..eb04c1a2f2cd8bab415ef08b0354f063bf32493b Binary files /dev/null and b/intel-cm-compiler-1.0.144.tar.gz differ diff --git a/intel-cm-compiler.spec b/intel-cm-compiler.spec new file mode 100644 index 0000000000000000000000000000000000000000..e4bb8521f2affa8d7caae534ef05e2c15b7c4073 --- /dev/null +++ b/intel-cm-compiler.spec @@ -0,0 +1,129 @@ +# Copyright (C) 2023 Intel Corporation +# SPDX-License-Identifier: MIT +# +# This package is downstreamed from Intel GPU RHEL9.2 Package repository: +# https://dgpu-docs.intel.com/driver/installation.html#rhel-install-steps + +%global pkg_name intel-cm-compiler +%global lib_ver 1.0.144 +%global anolis_release 1 + +Name: %{pkg_name} +Version: %{lib_ver} +Release: %{anolis_release}%{?dist} +Summary: Intel(R) C for Metal Compiler +License: MIT +Group: System Environment/Libraries +URL: https://github.com/intel/cm-compiler +Source0: %{name}-%{version}.tar.gz + +#This package is x86 only +ExclusiveArch: x86_64 + +# Details for building intel-cm-compiler tree +# +# |- cmclang https://github.com/intel/cm-compiler/archive/22f9dbf8bd44/cmclang.tar.gz +# |- spirv-llvm https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/26db0ab3f4ea/spirv-llvm.tar.gz +# |- vc-intrinsics https://github.com/intel/vc-intrinsics/archive/v0.14.0/vc-intrinsics.tar.gz + +BuildRequires: bison cmake make patch gcc-c++ flex python3 +BuildRequires: pkg-config libxml2-devel git valgrind + +%description +Intel(R) C for Metal Compiler -- CM Frontend lib +The Intel(R) C for Metal compiler is a open source compiler that implements C +for Metal programming language. C for Metal is a new GPU kernel programming +language for Intel(R) Graphics. + +%package -n intel-igc-cm +Summary: Intel(R) C for Metal Compiler +Requires: intel-igc-core >= 1.0.12812 +%description -n intel-igc-cm +Intel(R) C for Metal Compiler -- CM Frontend lib +The Intel(R) C for Metal compiler is a open source compiler that implements C +for Metal programming language. C for Metal is a new GPU kernel programming +language for Intel(R) Graphics. + +%prep +%autosetup -n %{name}-%{version} + +%build +export CFLAGS="${RPM_OPT_FLAGS}" +export CXXFLAGS="${RPM_OPT_FLAGS}" + +mkdir build-llvm +mkdir install + +pushd build-llvm +cmake ../cmclang/llvm \ + -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=%{_builddir}/install \ + -DLLVM_INCLUDE_TOOLS=OFF \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF \ + -DLLVM_ENABLE_TERMINFO=OFF \ + -DLLVM_ENABLE_Z3_SOLVER=OFF \ + -DLLVM_TARGETS_TO_BUILD="X86" +%make_build +make install +popd + +mkdir build-vcint +pushd build-vcint +cmake ../vc-intrinsics \ + -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=%{_builddir}/install \ + -DLLVM_DIR=%{_builddir}/install/lib/cmake/llvm +%make_build +make install +popd + +mkdir build-spirv +pushd build-spirv +cmake ../spirv-llvm \ + -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=%{_builddir}/install \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DLLVM_DIR=%{_builddir}/install/lib/cmake/llvm +%make_build +make install +popd + +mkdir build_cmclang +pushd build_cmclang +cmake ../cmclang/clang \ + -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=%{_builddir}/install \ + -DCLANG_ANALYZER_ENABLE_Z3_SOLVER=FALSE \ + -DLLVMGenXIntrinsics_DIR=%{_builddir}/install/lib/cmake/LLVMGenXIntrinsics \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_DIR=%{_builddir}/install/lib/cmake/llvm \ + -DSPIRV_TRANSLATOR_DIR=%{_builddir}/install \ + -DFEWRAPPER_VERSION=%{version} +%make_build +make install +popd + +%install +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_bindir} +cp -aR %{_builddir}/install/lib/libclangFEWrapper.so* %{buildroot}%{_libdir} +cp -aR %{_builddir}/install/bin/cmc %{buildroot}%{_bindir} +rm -f cmclang/clang/lib/Headers/cm/include/*.txt +mkdir -p %{buildroot}%{_includedir} +cp -R cmclang/clang/lib/Headers/cm/include/* %{buildroot}%{_includedir} + +%files -n intel-igc-cm +%defattr(-,root,root) +%license cmclang/clang/LICENSE.TXT +%{_bindir}/cmc +%{_libdir}/libclangFEWrapper.so* +%{_includedir}/* + +%changelog +* Fri Dec 8 2023 Aubrey Li - 1.0.144-1 +- Initial spec file