amdgpu_repo='https://repo.radeon.com/amdgpu/6.0.2/ubuntu'
rocm_repo='https://repo.radeon.com/rocm/apt/6.0.2'
opencl_lib='opt/rocm-6.0.2/opencl/lib'
rocm_lib='opt/rocm-6.0.2/lib'
hip_lib='opt/rocm-6.0.2/hip/lib/'
amdgpu="opt/amdgpu/lib/x86_64-linux-gnu"
amdgpu_pro="opt/amdgpu-pro/lib/x86_64-linux-gnu/"

mk_source_dir "${SOURCE_DIRECTORY}" &&
cd "${SOURCE_DIRECTORY}" &&
verify_file '' &&

exz() {
  ar x $1 data.tar.xz &&
  tar xJf data.tar.xz &&
  rm data.tar.xz
}

egz() {
  ar x $1 data.tar.gz &&
  tar xfx data.tar.gz &&
  rm data.tar.gz
}

srcdir="${INSTALL_ROOT}/var/spool/sorcery" &&
pkgdir="${SOURCE_DIRECTORY}/installdir" &&

egz "${srcdir}/rocm-core_6.0.2.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/comgr_2.6.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hipcc_1.0.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hip-dev_6.0.32831.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hip-doc_6.0.32831.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hip-samples_6.0.32831.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hsakmt-roct-dev_20231016.2.245.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hsa-rocr_1.12.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hsa-rocr-dev_1.12.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocminfo_1.0.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hip-runtime-amd_6.0.32831.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-device-libs_1.0.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-language-runtime_6.0.2.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-hip-runtime_6.0.2.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-ocl-icd_2.0.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-opencl_2.0.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-opencl-dev_2.0.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-opencl-runtime_6.0.2.60002-115~22.04_amd64.deb" &&
exz "${srcdir}/rocm-clang-ocl_0.5.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-smi-lib_6.0.0.60002-115~22.04_amd64.deb" &&
exz "${srcdir}/rocm-cmake_0.11.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-dbgapi_0.71.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-debug-agent_2.0.3.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-utils_6.0.2.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocprofiler_2.0.60002.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocprofiler-dev_2.0.60002.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocprofiler-plugins_2.0.60002.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/roctracer_4.1.60002.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/roctracer-dev_4.1.60002.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-dev_6.0.2.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/hsa-amd-aqlprofile_1.0.0.60002.60002-115~22.04_amd64.deb" &&
exz "${srcdir}/libdrm-amdgpu-amdgpu1_2.4.116.60002-1718217.22.04_amd64.deb" &&
egz "${srcdir}/openmp-extras-runtime_17.60.0.60002-115~22.04_amd64.deb" &&
egz "${srcdir}/rocm-gdb_13.2.60002-115~22.04_amd64.deb" &&
exz "${srcdir}/opencl-legacy-amdgpu-pro-icd_23.20-1664987.22.04_amd64.deb" &&

mkdir "${SOURCE_DIRECTORY}/installdir" &&

cd "${SOURCE_DIRECTORY}/${amdgpu_pro}" &&
sed -i "s|libdrm_amdgpu|libdrm_amdgpo|g" libamdocl-orca64.so &&

cd "${SOURCE_DIRECTORY}/${amdgpu}" &&
rm "libdrm_amdgpu.so.1" &&
mv "libdrm_amdgpu.so.1.0.0" "libdrm_amdgpo.so.1.0.0" &&
ln -s "libdrm_amdgpo.so.1.0.0" "libdrm_amdgpo.so.1"	&&

# legacy
mkdir -p "${pkgdir}/usr/lib" &&
mv "${SOURCE_DIRECTORY}/${amdgpu_pro}/libamdocl-orca64.so" "${pkgdir}/usr/lib/" &&
mv "${SOURCE_DIRECTORY}/${amdgpu}/libdrm_amdgpo.so.1.0.0" "${pkgdir}/usr/lib/" &&
mv "${SOURCE_DIRECTORY}/${amdgpu}/libdrm_amdgpo.so.1" "${pkgdir}/usr/lib/" &&

mv "${SOURCE_DIRECTORY}/opt/" "${pkgdir}/" &&
ln -s "${INSTALL_ROOT}/opt/rocm-6.0.2" "${pkgdir}/opt/rocm" &&

mkdir -p "${pkgdir}/opt/amdgpu/share/libdrm" &&
cd "${pkgdir}/opt/amdgpu/share/libdrm" &&
ln -s "${INSTALL_ROOT}/usr/share/libdrm/amdgpu.ids" amdgpu.ids &&

mkdir -p "${pkgdir}/etc/OpenCL/vendors" &&
echo libamdocl64.so > "${pkgdir}/etc/OpenCL/vendors/amdocl64.icd" &&
echo libamdocl-orca64.so > "${pkgdir}/etc/OpenCL/vendors/amdocl-orca64.icd" &&

mkdir -p "${pkgdir}/etc/ld.so.conf.d" &&
echo "${INSTALL_ROOT}/opt/rocm-6.0.2/opencl/lib" > "${pkgdir}/etc/ld.so.conf.d/opencl-amd.conf" &&
echo "${INSTALL_ROOT}/opt/rocm-6.0.2/lib" >> "$pkgdir/etc/ld.so.conf.d/opencl-amd.conf" &&
echo "${INSTALL_ROOT}/opt/rocm-6.0.2/hip/lib" >> "$pkgdir/etc/ld.so.conf.d/opencl-amd.conf" &&

mkdir -p "${pkgdir}/etc/profile.d" &&
echo export PATH="\${PATH}:${INSTALL_ROOT}/opt/rocm-6.0.2/bin:${INSTALL_ROOT}/opt/rocm-6.0.2/hip/bin" > "$pkgdir/etc/profile.d/opencl-amd.sh"
