diff --git a/projects/clr/opencl/CMakeLists.txt b/projects/clr/opencl/CMakeLists.txt index 3fe9eeb75b..7b97cfdeff 100644 --- a/projects/clr/opencl/CMakeLists.txt +++ b/projects/clr/opencl/CMakeLists.txt @@ -102,18 +102,42 @@ if(NOT DEFINED ROCM_PATH) endif() message (STATUS "ROCM Installation path(ROCM_PATH): ${ROCM_PATH}") +configure_file( + packaging/amdocl64.icd + ${CMAKE_BINARY_DIR}/opencl/packages/opencl/${OPENCL_AMD_ICD_FILE} + COPYONLY +) +install( + FILES ${CMAKE_BINARY_DIR}/opencl/packages/opencl/${OPENCL_AMD_ICD_FILE} + DESTINATION /${CMAKE_INSTALL_SYSCONFDIR}/OpenCL/vendors + COMPONENT binary + EXCLUDE_FROM_ALL +) + +configure_file( + packaging/rocm-opencl.conf + ${CMAKE_BINARY_DIR}/opencl/packages/opencl/10-rocm-opencl.conf + COPYONLY +) +install( + FILES ${CMAKE_BINARY_DIR}/opencl/packages/opencl/10-rocm-opencl.conf + DESTINATION /${CMAKE_INSTALL_SYSCONFDIR}/ld.so.conf.d + COMPONENT binary + EXCLUDE_FROM_ALL +) + #Package: rocm-opencl,rocm-opencl-dev/devel,rocm-ocl-icd set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/opencl) configure_file(packaging/rocm-opencl.postinst ${BUILD_DIR}/postinst @ONLY) -configure_file(packaging/rocm-opencl.prerm ${BUILD_DIR}/prerm @ONLY) +configure_file(packaging/rocm-opencl.postrm ${BUILD_DIR}/postrm @ONLY) configure_file(packaging/rocm-opencl.rpm_post ${BUILD_DIR}/rpm_post @ONLY) configure_file(packaging/rocm-opencl.rpm_postun ${BUILD_DIR}/rpm_postun @ONLY) if(BUILD_ICD) set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/rocm-ocl-icd) configure_file(packaging/rocm-ocl-icd.postinst ${BUILD_DIR}/postinst @ONLY) - configure_file(packaging/rocm-ocl-icd.prerm ${BUILD_DIR}/prerm @ONLY) + configure_file(packaging/rocm-ocl-icd.postrm ${BUILD_DIR}/postrm @ONLY) configure_file(packaging/rocm-ocl-icd.rpm_post ${BUILD_DIR}/rpm_post @ONLY) configure_file(packaging/rocm-ocl-icd.rpm_postun ${BUILD_DIR}/rpm_postun @ONLY) endif() diff --git a/projects/clr/opencl/packaging/CMakeLists.txt b/projects/clr/opencl/packaging/CMakeLists.txt index 7ede6fc204..7d9e6366fd 100644 --- a/projects/clr/opencl/packaging/CMakeLists.txt +++ b/projects/clr/opencl/packaging/CMakeLists.txt @@ -55,7 +55,7 @@ set(CPACK_DEBIAN_BINARY_PACKAGE_REPLACES "rocm-opencl-icd-loader") set(CPACK_DEBIAN_BINARY_PACKAGE_CONFLICTS "rocm-opencl-icd-loader") set(CPACK_RPM_BINARY_PACKAGE_OBSOLETES "rocm-opencl-icd-loader") -set(CPACK_DEBIAN_BINARY_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/opencl/packages/opencl/postinst;${CMAKE_BINARY_DIR}/opencl/packages/opencl/prerm") +set(CPACK_DEBIAN_BINARY_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/opencl/packages/opencl/postinst;${CMAKE_BINARY_DIR}/opencl/packages/opencl/postrm") # RPM CPACK variables set(CPACK_RPM_BINARY_POST_INSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/opencl/packages/opencl/rpm_post") set(CPACK_RPM_BINARY_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_BINARY_DIR}/opencl/packages/opencl/rpm_postun") @@ -124,7 +124,7 @@ if(BUILD_ICD) set(CPACK_ICD_DEB "ON") set(CPACK_DEBIAN_ICD_PACKAGE_NAME "rocm-ocl-icd") - set(CPACK_DEBIAN_ICD_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/opencl/packages/rocm-ocl-icd/postinst;${CMAKE_BINARY_DIR}/opencl/packages/rocm-ocl-icd/prerm") + set(CPACK_DEBIAN_ICD_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/opencl/packages/rocm-ocl-icd/postinst;${CMAKE_BINARY_DIR}/opencl/packages/rocm-ocl-icd/postrm") set(CPACK_DEBIAN_ICD_PACKAGE_DEPENDS "rocm-core") # RPM CPACK variables diff --git a/projects/clr/opencl/packaging/amdocl64.icd b/projects/clr/opencl/packaging/amdocl64.icd new file mode 100644 index 0000000000..ec1be031ec --- /dev/null +++ b/projects/clr/opencl/packaging/amdocl64.icd @@ -0,0 +1 @@ +libamdocl64.so diff --git a/projects/clr/opencl/packaging/rocm-ocl-icd.postinst b/projects/clr/opencl/packaging/rocm-ocl-icd.postinst index e22be0df9c..e3ba5d4900 100644 --- a/projects/clr/opencl/packaging/rocm-ocl-icd.postinst +++ b/projects/clr/opencl/packaging/rocm-ocl-icd.postinst @@ -6,7 +6,6 @@ INSTALL_PATH=@CPACK_PACKAGING_INSTALL_PREFIX@ do_ldconfig() { echo ${INSTALL_PATH}/@CMAKE_INSTALL_LIBDIR@ > /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/10-rocm-opencl.conf && ldconfig - mkdir -p /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors && (echo libamdocl64.so > /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors/@OPENCL_AMD_ICD_FILE@) } case "$1" in diff --git a/projects/clr/opencl/packaging/rocm-ocl-icd.postrm b/projects/clr/opencl/packaging/rocm-ocl-icd.postrm new file mode 100644 index 0000000000..54913a3091 --- /dev/null +++ b/projects/clr/opencl/packaging/rocm-ocl-icd.postrm @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +rm_ldconfig() { + ldconfig +} + +case "$1" in + purge) + ;; + remove | upgrade ) + rm_ldconfig + ;; + *) + exit 0 + ;; +esac diff --git a/projects/clr/opencl/packaging/rocm-ocl-icd.prerm b/projects/clr/opencl/packaging/rocm-ocl-icd.prerm deleted file mode 100644 index 4843048571..0000000000 --- a/projects/clr/opencl/packaging/rocm-ocl-icd.prerm +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -set -e - -rm_ldconfig() { - rm -f /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/10-rocm-opencl.conf && ldconfig - rm -f /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors/@OPENCL_AMD_ICD_FILE@ -} - -case "$1" in - purge) - ;; - remove | upgrade ) - rm_ldconfig - ;; - *) - exit 0 - ;; -esac diff --git a/projects/clr/opencl/packaging/rocm-ocl-icd.rpm_post b/projects/clr/opencl/packaging/rocm-ocl-icd.rpm_post index b467f63ba8..8c7657e581 100644 --- a/projects/clr/opencl/packaging/rocm-ocl-icd.rpm_post +++ b/projects/clr/opencl/packaging/rocm-ocl-icd.rpm_post @@ -1,4 +1,3 @@ INSTALL_PATH=@CPACK_PACKAGING_INSTALL_PREFIX@ echo ${INSTALL_PATH}/@CMAKE_INSTALL_LIBDIR@ > /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/10-rocm-opencl.conf && ldconfig -mkdir -p /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors && (echo libamdocl64.so > /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors/@OPENCL_AMD_ICD_FILE@) diff --git a/projects/clr/opencl/packaging/rocm-ocl-icd.rpm_postun b/projects/clr/opencl/packaging/rocm-ocl-icd.rpm_postun index f3655dfe90..48056b8f12 100644 --- a/projects/clr/opencl/packaging/rocm-ocl-icd.rpm_postun +++ b/projects/clr/opencl/packaging/rocm-ocl-icd.rpm_postun @@ -1,8 +1,5 @@ if [ $1 -eq 0 ]; then - # Remove rocm-opencl.conf during remove/uninstall operation - rm -f /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/10-rocm-opencl.conf && ldconfig + # ldconfig during remove/uninstall operation. No ldconfig during upgrade + ldconfig fi -# Remove icd file for uninstall and upgrade operation -rm -f /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors/@OPENCL_AMD_ICD_FILE@ - diff --git a/projects/clr/opencl/packaging/rocm-opencl.conf b/projects/clr/opencl/packaging/rocm-opencl.conf new file mode 100644 index 0000000000..ad7268343a --- /dev/null +++ b/projects/clr/opencl/packaging/rocm-opencl.conf @@ -0,0 +1,3 @@ +# Default value. +# It will be replaced by package script, such as postinst, during installation. +/opt/rocm/lib diff --git a/projects/clr/opencl/packaging/rocm-opencl.postinst b/projects/clr/opencl/packaging/rocm-opencl.postinst index 337ceaa9de..930be229b5 100644 --- a/projects/clr/opencl/packaging/rocm-opencl.postinst +++ b/projects/clr/opencl/packaging/rocm-opencl.postinst @@ -7,7 +7,6 @@ INSTALL_PATH=@CPACK_PACKAGING_INSTALL_PREFIX@ do_ldconfig() { echo ${INSTALL_PATH}/@CMAKE_INSTALL_LIBDIR@ > /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/10-rocm-opencl.conf && ldconfig - mkdir -p /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors && (echo libamdocl64.so > /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors/@OPENCL_AMD_ICD_FILE@) } case "$1" in diff --git a/projects/clr/opencl/packaging/rocm-opencl.postrm b/projects/clr/opencl/packaging/rocm-opencl.postrm new file mode 100644 index 0000000000..54913a3091 --- /dev/null +++ b/projects/clr/opencl/packaging/rocm-opencl.postrm @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +rm_ldconfig() { + ldconfig +} + +case "$1" in + purge) + ;; + remove | upgrade ) + rm_ldconfig + ;; + *) + exit 0 + ;; +esac diff --git a/projects/clr/opencl/packaging/rocm-opencl.prerm b/projects/clr/opencl/packaging/rocm-opencl.prerm deleted file mode 100644 index 4843048571..0000000000 --- a/projects/clr/opencl/packaging/rocm-opencl.prerm +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -set -e - -rm_ldconfig() { - rm -f /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/10-rocm-opencl.conf && ldconfig - rm -f /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors/@OPENCL_AMD_ICD_FILE@ -} - -case "$1" in - purge) - ;; - remove | upgrade ) - rm_ldconfig - ;; - *) - exit 0 - ;; -esac diff --git a/projects/clr/opencl/packaging/rocm-opencl.rpm_post b/projects/clr/opencl/packaging/rocm-opencl.rpm_post index b467f63ba8..8c7657e581 100644 --- a/projects/clr/opencl/packaging/rocm-opencl.rpm_post +++ b/projects/clr/opencl/packaging/rocm-opencl.rpm_post @@ -1,4 +1,3 @@ INSTALL_PATH=@CPACK_PACKAGING_INSTALL_PREFIX@ echo ${INSTALL_PATH}/@CMAKE_INSTALL_LIBDIR@ > /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/10-rocm-opencl.conf && ldconfig -mkdir -p /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors && (echo libamdocl64.so > /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors/@OPENCL_AMD_ICD_FILE@) diff --git a/projects/clr/opencl/packaging/rocm-opencl.rpm_postun b/projects/clr/opencl/packaging/rocm-opencl.rpm_postun index f3655dfe90..48056b8f12 100644 --- a/projects/clr/opencl/packaging/rocm-opencl.rpm_postun +++ b/projects/clr/opencl/packaging/rocm-opencl.rpm_postun @@ -1,8 +1,5 @@ if [ $1 -eq 0 ]; then - # Remove rocm-opencl.conf during remove/uninstall operation - rm -f /@CMAKE_INSTALL_SYSCONFDIR@/ld.so.conf.d/10-rocm-opencl.conf && ldconfig + # ldconfig during remove/uninstall operation. No ldconfig during upgrade + ldconfig fi -# Remove icd file for uninstall and upgrade operation -rm -f /@CMAKE_INSTALL_SYSCONFDIR@/OpenCL/vendors/@OPENCL_AMD_ICD_FILE@ -