#!/bin/bash
# ------------------------------------------------------------------------------
# Programmer(s): Radu Serban, David J. Gardner, Cody J. Balos @ LLNL
# ------------------------------------------------------------------------------
# SUNDIALS Copyright Start
# Copyright (c) 2002-2022, Lawrence Livermore National Security
# and Southern Methodist University.
# All rights reserved.
#
# See the top-level LICENSE and NOTICE files for details.
#
# SPDX-License-Identifier: BSD-3-Clause
# SUNDIALS Copyright End
# ------------------------------------------------------------------------------
# Script to add shared files to a SUNDIALS tar-file.
# ------------------------------------------------------------------------------

set -e

tarfile=$1
distrobase=$2
doc=$3
doc_sundials=$4

echo ">>>>>>"
echo $distrobase
echo ">>>>>>"

# all remaining inputs are for tar command
shift 4
tar=$*

echo "   --- Add top-level files to $tarfile"

# Some tar implementations (e.g., BSD) will not create an archive with the -u
# option so the first tar call uses -c and ignores the input tar options
tar -cvf $tarfile $distrobase/CHANGELOG.md
$tar $tarfile $distrobase/CITATIONS.md
$tar $tarfile $distrobase/CMakeLists.txt
$tar $tarfile $distrobase/CONTRIBUTING.md
$tar $tarfile $distrobase/LICENSE
$tar $tarfile $distrobase/NOTICE
$tar $tarfile $distrobase/README.md
$tar $tarfile $distrobase/.readthedocs.yaml

if [ $doc = "T" ]; then
    $tar $tarfile $distrobase/INSTALL_GUIDE.pdf
fi

if [ $doc_sundials = "T" ]; then
    $tar $tarfile $distrobase/doc/superbuild/Makefile
    $tar $tarfile $distrobase/doc/superbuild/source
fi

$tar $tarfile $distrobase/doc/shared
$tar $tarfile $distrobase/doc/requirements.txt

echo "   --- Add benchmark files to $tarfile"

$tar $tarfile $distrobase/benchmarks

echo "   --- Add configuration files to $tarfile"

$tar $tarfile $distrobase/cmake/SUNDIALSConfig.cmake.in
$tar $tarfile $distrobase/cmake/SundialsDeprecated.cmake
$tar $tarfile $distrobase/cmake/SundialsBuildOptionsPre.cmake
$tar $tarfile $distrobase/cmake/SundialsBuildOptionsPost.cmake
$tar $tarfile $distrobase/cmake/SundialsExampleOptions.cmake
$tar $tarfile $distrobase/cmake/SundialsIndexSize.cmake
$tar $tarfile $distrobase/cmake/SundialsSetupCompilers.cmake
$tar $tarfile $distrobase/cmake/SundialsSetupConfig.cmake
$tar $tarfile $distrobase/cmake/SundialsSetupCuda.cmake
$tar $tarfile $distrobase/cmake/SundialsSetupHIP.cmake
$tar $tarfile $distrobase/cmake/SundialsSetupCXX.cmake
$tar $tarfile $distrobase/cmake/SundialsSetupFortran.cmake
$tar $tarfile $distrobase/cmake/SundialsSetupTPLs.cmake
$tar $tarfile $distrobase/cmake/SundialsSetupTesting.cmake
$tar $tarfile $distrobase/cmake/SundialsTPLOptions.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsAddExamplesGinkgo.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsAddExecutable.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsAddLibrary.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsAddTest.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsAddTestInstall.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsInstallExamples.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsInstallExamplesGinkgo.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsCMakeMacros.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsOption.cmake
$tar $tarfile $distrobase/cmake/macros/SundialsTryCompileExecute.cmake
$tar $tarfile $distrobase/cmake/tpl/FindHYPRE.cmake
$tar $tarfile $distrobase/cmake/tpl/FindKLU.cmake
$tar $tarfile $distrobase/cmake/tpl/FindMAGMA.cmake
$tar $tarfile $distrobase/cmake/tpl/FindPETSC.cmake
$tar $tarfile $distrobase/cmake/tpl/FindSUPERLUMT.cmake
$tar $tarfile $distrobase/cmake/tpl/FindSUPERLUDIST.cmake
$tar $tarfile $distrobase/cmake/tpl/FindTrilinos.cmake
$tar $tarfile $distrobase/cmake/tpl/FindXBRAID.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsCaliper.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsGinkgo.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsHypre.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsKLU.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsKokkos.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsKokkosKernels.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsLapack.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsMAGMA.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsMPI.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsONEMKL.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsOpenMP.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsPETSC.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsPOSIXTimers.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsPthread.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsRAJA.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsSuperLUDIST.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsSuperLUMT.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsTrilinos.cmake
$tar $tarfile $distrobase/cmake/tpl/SundialsXBRAID.cmake

echo "   --- Add include files to $tarfile"

$tar $tarfile $distrobase/include/sundials/sundials_band.h
$tar $tarfile $distrobase/include/sundials/sundials_base.hpp
$tar $tarfile $distrobase/include/sundials/sundials_config.in
$tar $tarfile $distrobase/include/sundials/sundials_context.h
$tar $tarfile $distrobase/include/sundials/sundials_context.hpp
$tar $tarfile $distrobase/include/sundials/sundials_convertibleto.hpp
$tar $tarfile $distrobase/include/sundials/sundials_cuda_policies.hpp
$tar $tarfile $distrobase/include/sundials/sundials_hip_policies.hpp
$tar $tarfile $distrobase/include/sundials/sundials_types.h
$tar $tarfile $distrobase/include/sundials/sundials_mpi_types.h
$tar $tarfile $distrobase/include/sundials/sundials_matrix.h
$tar $tarfile $distrobase/include/sundials/sundials_matrix.hpp
$tar $tarfile $distrobase/include/sundials/sundials_linearsolver.h
$tar $tarfile $distrobase/include/sundials/sundials_linearsolver.hpp
$tar $tarfile $distrobase/include/sundials/sundials_math.h
$tar $tarfile $distrobase/include/sundials/sundials_nvector.h
$tar $tarfile $distrobase/include/sundials/sundials_nvector.hpp
$tar $tarfile $distrobase/include/sundials/sundials_dense.h
$tar $tarfile $distrobase/include/sundials/sundials_direct.h
$tar $tarfile $distrobase/include/sundials/sundials_futils.h
$tar $tarfile $distrobase/include/sundials/sundials_iterative.h
$tar $tarfile $distrobase/include/sundials/sundials_lapack.h
$tar $tarfile $distrobase/include/sundials/sundials_linearsolver.h
$tar $tarfile $distrobase/include/sundials/sundials_logger.h
$tar $tarfile $distrobase/include/sundials/sundials_math.h
$tar $tarfile $distrobase/include/sundials/sundials_matrix.h
$tar $tarfile $distrobase/include/sundials/sundials_memory.h
$tar $tarfile $distrobase/include/sundials/sundials_mpi_types.h
$tar $tarfile $distrobase/include/sundials/sundials_nonlinearsolver.h
$tar $tarfile $distrobase/include/sundials/sundials_nonlinearsolver.hpp
$tar $tarfile $distrobase/include/sundials/sundials_nvector_senswrapper.h
$tar $tarfile $distrobase/include/sundials/sundials_nvector.h
$tar $tarfile $distrobase/include/sundials/sundials_profiler.h
$tar $tarfile $distrobase/include/sundials/sundials_sycl_policies.hpp
$tar $tarfile $distrobase/include/sundials/sundials_types.h
$tar $tarfile $distrobase/include/sundials/sundials_version.h
$tar $tarfile $distrobase/include/sundials/sundials_xbraid.h

$tar $tarfile $distrobase/include/nvector/nvector_cuda.h
$tar $tarfile $distrobase/include/nvector/nvector_hip.h
$tar $tarfile $distrobase/include/nvector/nvector_kokkos.hpp
$tar $tarfile $distrobase/include/nvector/nvector_manyvector.h
$tar $tarfile $distrobase/include/nvector/nvector_mpimanyvector.h
$tar $tarfile $distrobase/include/nvector/nvector_mpiplusx.h
$tar $tarfile $distrobase/include/nvector/nvector_openmp.h
$tar $tarfile $distrobase/include/nvector/nvector_openmpdev.h
$tar $tarfile $distrobase/include/nvector/nvector_parallel.h
$tar $tarfile $distrobase/include/nvector/nvector_parhyp.h
$tar $tarfile $distrobase/include/nvector/nvector_petsc.h
$tar $tarfile $distrobase/include/nvector/nvector_pthreads.h
$tar $tarfile $distrobase/include/nvector/nvector_raja.h
$tar $tarfile $distrobase/include/nvector/nvector_serial.h
$tar $tarfile $distrobase/include/nvector/nvector_sycl.h
$tar $tarfile $distrobase/include/nvector/nvector_trilinos.h
$tar $tarfile $distrobase/include/nvector/trilinos/SundialsTpetraVectorInterface.hpp
$tar $tarfile $distrobase/include/nvector/trilinos/SundialsTpetraVectorKernels.hpp

$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_band.h
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_cusparse.h
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_dense.h
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_ginkgo.hpp
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_kokkosdense.hpp
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_magmadense.h
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_onemkldense.h
#$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_diagonal.h
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_sparse.h
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_slunrloc.h

$tar $tarfile $distrobase/include/sunmemory/sunmemory_cuda.h
$tar $tarfile $distrobase/include/sunmemory/sunmemory_hip.h
$tar $tarfile $distrobase/include/sunmemory/sunmemory_sycl.h
$tar $tarfile $distrobase/include/sunmemory/sunmemory_system.h

$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_cusolversp_batchqr.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_band.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_dense.h
#$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_diagonal.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_ginkgo.hpp
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_klu.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_kokkosdense.hpp
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_lapackband.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_lapackdense.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_magmadense.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_onemkldense.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_pcg.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_spbcgs.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_spfgmr.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_spgmr.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_sptfqmr.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_superlumt.h
$tar $tarfile $distrobase/include/sunlinsol/sunlinsol_superludist.h

$tar $tarfile $distrobase/include/sunnonlinsol/sunnonlinsol_newton.h
$tar $tarfile $distrobase/include/sunnonlinsol/sunnonlinsol_fixedpoint.h
$tar $tarfile $distrobase/include/sunnonlinsol/sunnonlinsol_petscsnes.h

echo "   --- Add scripts to $tarfile"

$tar $tarfile $distrobase/scripts/sundials_csv.py

echo "   --- Add shared source files to $tarfile"

$tar $tarfile $distrobase/src/CMakeLists.txt
$tar $tarfile $distrobase/src/sundials/CMakeLists.txt
$tar $tarfile $distrobase/src/sundials/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_context_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_context_mod.f90
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_futils_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_futils_mod.f90
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_linearsolver_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_linearsolver_mod.f90
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_logger_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_logger_mod.f90
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_matrix_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_matrix_mod.f90
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_nonlinearsolver_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_nonlinearsolver_mod.f90
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_nvector_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_nvector_mod.f90
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_profiler_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_profiler_mod.f90
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_types_mod.c
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_types_mod.f90
$tar $tarfile $distrobase/src/sundials/sundials_band.c
$tar $tarfile $distrobase/src/sundials/sundials_context_impl.h
$tar $tarfile $distrobase/src/sundials/sundials_context.c
$tar $tarfile $distrobase/src/sundials/sundials_cuda.h
$tar $tarfile $distrobase/src/sundials/sundials_cuda_kernels.cuh
$tar $tarfile $distrobase/src/sundials/sundials_debug.h
$tar $tarfile $distrobase/src/sundials/sundials_dense.c
$tar $tarfile $distrobase/src/sundials/sundials_direct.c
$tar $tarfile $distrobase/src/sundials/sundials_futils.c
$tar $tarfile $distrobase/src/sundials/sundials_hashmap.h
$tar $tarfile $distrobase/src/sundials/sundials_hip.h
$tar $tarfile $distrobase/src/sundials/sundials_hip_kernels.hip.hpp
$tar $tarfile $distrobase/src/sundials/sundials_iterative_impl.h
$tar $tarfile $distrobase/src/sundials/sundials_iterative.c
$tar $tarfile $distrobase/src/sundials/sundials_lapack_defs.h
$tar $tarfile $distrobase/src/sundials/sundials_linearsolver.c
$tar $tarfile $distrobase/src/sundials/sundials_logger_impl.h
$tar $tarfile $distrobase/src/sundials/sundials_logger.c
$tar $tarfile $distrobase/src/sundials/sundials_math.c
$tar $tarfile $distrobase/src/sundials/sundials_matrix.c
$tar $tarfile $distrobase/src/sundials/sundials_memory.c
$tar $tarfile $distrobase/src/sundials/sundials_nonlinearsolver.c
$tar $tarfile $distrobase/src/sundials/sundials_nvector.c
$tar $tarfile $distrobase/src/sundials/sundials_nvector_senswrapper.c
$tar $tarfile $distrobase/src/sundials/sundials_profiler.c
$tar $tarfile $distrobase/src/sundials/sundials_reductions.hpp
$tar $tarfile $distrobase/src/sundials/sundials_sycl.h
$tar $tarfile $distrobase/src/sundials/sundials_utils.h
$tar $tarfile $distrobase/src/sundials/sundials_version.c
$tar $tarfile $distrobase/src/sundials/sundials_xbraid.c

echo "   --- Add nvector modules to $tarfile"

$tar $tarfile $distrobase/src/nvector/CMakeLists.txt

echo "   --- Add nvector/serial module to $tarfile"

$tar $tarfile $distrobase/src/nvector/serial/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/serial/nvector_serial.c
$tar $tarfile $distrobase/src/nvector/serial/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/serial/fmod/fnvector_serial_mod.c
$tar $tarfile $distrobase/src/nvector/serial/fmod/fnvector_serial_mod.f90

echo "   --- Add nvector/parallel module to $tarfile"

$tar $tarfile $distrobase/src/nvector/parallel/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/parallel/nvector_parallel.c
$tar $tarfile $distrobase/src/nvector/parallel/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/parallel/fmod/fnvector_parallel_mod.c
$tar $tarfile $distrobase/src/nvector/parallel/fmod/fnvector_parallel_mod.f90

echo "   --- Add nvector/parhyp module to $tarfile"

$tar $tarfile $distrobase/src/nvector/parhyp/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/parhyp/nvector_parhyp.c

echo "   --- Add nvector/petsc module to $tarfile"

$tar $tarfile $distrobase/src/nvector/petsc/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/petsc/nvector_petsc.c

echo "   --- Add nvecopenmpdev module to $tarfile"

$tar $tarfile $distrobase/src/nvector/openmpdev/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/openmpdev/nvector_openmpdev.c

echo "   --- Add nvector/openmp module to $tarfile"

$tar $tarfile $distrobase/src/nvector/openmp/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/openmp/nvector_openmp.c
$tar $tarfile $distrobase/src/nvector/openmp/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/openmp/fmod/fnvector_openmp_mod.c
$tar $tarfile $distrobase/src/nvector/openmp/fmod/fnvector_openmp_mod.f90

echo "   --- Add nvector/pthreads module to $tarfile"

$tar $tarfile $distrobase/src/nvector/pthreads/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/pthreads/nvector_pthreads.c
$tar $tarfile $distrobase/src/nvector/pthreads/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/pthreads/fmod/fnvector_pthreads_mod.c
$tar $tarfile $distrobase/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90

echo "   --- Add nvector/cuda module to $tarfile"

$tar $tarfile $distrobase/src/nvector/cuda/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/cuda/nvector_cuda.cu
$tar $tarfile $distrobase/src/nvector/cuda/VectorKernels.cuh
$tar $tarfile $distrobase/src/nvector/cuda/VectorArrayKernels.cuh

echo "   --- Add nvector/hip module to $tarfile"

$tar $tarfile $distrobase/src/nvector/hip/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/hip/nvector_hip.hip.cpp
$tar $tarfile $distrobase/src/nvector/hip/VectorKernels.hip.hpp
$tar $tarfile $distrobase/src/nvector/hip/VectorArrayKernels.hip.hpp

echo "   --- Add nvector/raja module to $tarfile"

$tar $tarfile $distrobase/src/nvector/raja/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/raja/nvector_raja.cpp

echo "   --- Add nvector/sycl module to $tarfile"

$tar $tarfile $distrobase/src/nvector/sycl/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/sycl/nvector_sycl.cpp

echo "   --- Add nvector/trilinos module to $tarfile"

$tar $tarfile $distrobase/src/nvector/trilinos/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/trilinos/nvector_trilinos.cpp

echo "   --- Add nvector/manyvector module to $tarfile"

$tar $tarfile $distrobase/src/nvector/manyvector/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/manyvector/nvector_manyvector.c
$tar $tarfile $distrobase/src/nvector/manyvector/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/manyvector/fmod/fnvector_manyvector_mod.c
$tar $tarfile $distrobase/src/nvector/manyvector/fmod/fnvector_manyvector_mod.f90
$tar $tarfile $distrobase/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.c
$tar $tarfile $distrobase/src/nvector/manyvector/fmod/fnvector_mpimanyvector_mod.f90

echo "   --- Add nvector/mpiplusx module to $tarfile"

$tar $tarfile $distrobase/src/nvector/mpiplusx/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/mpiplusx/nvector_mpiplusx.c
$tar $tarfile $distrobase/src/nvector/mpiplusx/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.c
$tar $tarfile $distrobase/src/nvector/mpiplusx/fmod/fnvector_mpiplusx_mod.f90

echo "   --- Add sunmatrix modules to $tarfile"

$tar $tarfile $distrobase/src/sunmatrix/CMakeLists.txt

echo "   --- Add sunmatrix/band module to $tarfile"

$tar $tarfile $distrobase/src/sunmatrix/band/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/band/sunmatrix_band.c
$tar $tarfile $distrobase/src/sunmatrix/band/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/band/fmod/fsunmatrix_band_mod.c
$tar $tarfile $distrobase/src/sunmatrix/band/fmod/fsunmatrix_band_mod.f90

echo "   --- Add sunmatrix/cusparse module to $tarfile"

$tar $tarfile $distrobase/src/sunmatrix/cusparse/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/cusparse/sunmatrix_cusparse.cu
$tar $tarfile $distrobase/src/sunmatrix/cusparse/cusparse_kernels.cuh

echo "   --- Add sunmatrix/dense module to $tarfile"

$tar $tarfile $distrobase/src/sunmatrix/dense/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/dense/sunmatrix_dense.c
$tar $tarfile $distrobase/src/sunmatrix/dense/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.c
$tar $tarfile $distrobase/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.f90

echo "   --- Add sunmatrix/sparse module to $tarfile"

$tar $tarfile $distrobase/src/sunmatrix/sparse/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/sparse/sunmatrix_sparse.c
$tar $tarfile $distrobase/src/sunmatrix/sparse/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.c
$tar $tarfile $distrobase/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90

echo "   --- Add sunmatrix/slunrloc module to $tarfile"

$tar $tarfile $distrobase/src/sunmatrix/slunrloc/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/slunrloc/sunmatrix_slunrloc.c

echo "   --- Add sunmatrix/magmadense module to $tarfile"

$tar $tarfile $distrobase/src/sunmatrix/magmadense/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/magmadense/sunmatrix_magmadense.cpp
$tar $tarfile $distrobase/src/sunmatrix/magmadense/dense_cuda_kernels.cuh
$tar $tarfile $distrobase/src/sunmatrix/magmadense/dense_hip_kernels.hip.hpp

echo "   --- Add sunmatrix/onemkldense module to $tarfile"

$tar $tarfile $distrobase/src/sunmatrix/onemkldense/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmatrix/onemkldense/sunmatrix_onemkldense.cpp

echo "   --- Add sunmemory modules to $tarfile"

$tar $tarfile $distrobase/src/sunmemory/CMakeLists.txt

echo "   --- Add sunmemory/cuda modules to $tarfile"

$tar $tarfile $distrobase/src/sunmemory/cuda/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmemory/cuda/sundials_cuda_memory.cu

echo "   --- Add sunmemory/hip modules to $tarfile"

$tar $tarfile $distrobase/src/sunmemory/hip/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmemory/hip/sundials_hip_memory.hip.cpp

echo "   --- Add sunmemory/sycl modules to $tarfile"

$tar $tarfile $distrobase/src/sunmemory/sycl/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmemory/sycl/sundials_sycl_memory.cpp

echo "   --- Add sunmemory/system modules to $tarfile"

$tar $tarfile $distrobase/src/sunmemory/system/CMakeLists.txt
$tar $tarfile $distrobase/src/sunmemory/system/sundials_system_memory.c

echo "   --- Add sunlinsol modules to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/CMakeLists.txt

echo "   --- Add sunlinsol/band module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/band/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/band/sunlinsol_band.c
$tar $tarfile $distrobase/src/sunlinsol/band/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/band/fmod/fsunlinsol_band_mod.c
$tar $tarfile $distrobase/src/sunlinsol/band/fmod/fsunlinsol_band_mod.f90

echo "   --- Add sunlinsol/cusolversp module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/cusolversp/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/cusolversp/sunlinsol_cusolversp_batchqr.cu

echo "   --- Add sunlinsol/dense module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/dense/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/dense/sunlinsol_dense.c
$tar $tarfile $distrobase/src/sunlinsol/dense/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.c
$tar $tarfile $distrobase/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.f90

echo "   --- Add sunlinsol/klu module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/klu/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/klu/sunlinsol_klu.c
$tar $tarfile $distrobase/src/sunlinsol/klu/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.c
$tar $tarfile $distrobase/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.f90

echo "   --- Add sunlinsol/lapackband module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/lapackband/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/lapackband/sunlinsol_lapackband.c

echo "   --- Add sunlinsol/lapackdense module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/lapackdense/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/lapackdense/sunlinsol_lapackdense.c

echo "   --- Add sunlinsol/magmadense module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/magmadense/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/magmadense/sunlinsol_magmadense.cpp

echo "   --- Add sunlinsol/onemkldense module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/onemkldense/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/onemkldense/sunlinsol_onemkldense.cpp

echo "   --- Add sunlinsol/pcg module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/pcg/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/pcg/sunlinsol_pcg.c
$tar $tarfile $distrobase/src/sunlinsol/pcg/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.c
$tar $tarfile $distrobase/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.f90

echo "   --- Add sunlinsol/spbcgs module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/spbcgs/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.c
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.f90

echo "   --- Add sunlinsol/spfgmr module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/spfgmr/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.c
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.f90

echo "   --- Add sunlinsol/spgmr module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/spgmr/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/spgmr/sunlinsol_spgmr.c
$tar $tarfile $distrobase/src/sunlinsol/spgmr/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.c
$tar $tarfile $distrobase/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.f90

echo "   --- Add sunlinsol/sptfqmr module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.c
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.f90

echo "   --- Add sunlinsol/superludist module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/superludist/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/superludist/sunlinsol_superludist.c

echo "   --- Add sunlinsol/superlumt module to $tarfile"

$tar $tarfile $distrobase/src/sunlinsol/superlumt/CMakeLists.txt
$tar $tarfile $distrobase/src/sunlinsol/superlumt/sunlinsol_superlumt.c

echo "   --- Add sunnonlinsol modules to $tarfile"

$tar $tarfile $distrobase/src/sunnonlinsol/CMakeLists.txt

echo "   --- Add sunnonlinsol/newton modules to $tarfile"

$tar $tarfile $distrobase/src/sunnonlinsol/newton/CMakeLists.txt
$tar $tarfile $distrobase/src/sunnonlinsol/newton/sunnonlinsol_newton.c
$tar $tarfile $distrobase/src/sunnonlinsol/newton/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.c
$tar $tarfile $distrobase/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.f90

echo "   --- Add sunnonlinsol/fixedpoint modules to $tarfile"

$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/CMakeLists.txt
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.c
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.f90

echo "   --- Add sunnonlinsol/petscsnes modules to $tarfile"

$tar $tarfile $distrobase/src/sunnonlinsol/petscsnes/CMakeLists.txt
$tar $tarfile $distrobase/src/sunnonlinsol/petscsnes/sunnonlinsol_petscsnes.c

echo "   --- Add examples to $tarfile"

$tar $tarfile $distrobase/examples/CMakeLists.txt

echo "   --- Add examples utilities to $tarfile"

$tar $tarfile $distrobase/examples/utilities/custom_memory_helper_gpu.h
$tar $tarfile $distrobase/examples/utilities/custom_memory_helper_sycl.h
$tar $tarfile $distrobase/examples/utilities/example_utilities.hpp
$tar $tarfile $distrobase/examples/utilities/test_utilities.f90
$tar $tarfile $distrobase/examples/utilities/plot_data_2d.py

echo "   --- Add nvector examples to $tarfile"

$tar $tarfile $distrobase/examples/nvector/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/test_nvector.f90

$tar $tarfile $distrobase/examples/nvector/C_openmp/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/C_openmp/test_fnvector_openmp_mod.f90
$tar $tarfile $distrobase/examples/nvector/C_openmp/test_nvector_openmp.c
$tar $tarfile $distrobase/examples/nvector/cuda/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/cuda/test_nvector_cuda.cu
$tar $tarfile $distrobase/examples/nvector/hip/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/hip/test_nvector_hip.cpp
$tar $tarfile $distrobase/examples/nvector/kokkos/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/kokkos/test_nvector_kokkos.cpp
$tar $tarfile $distrobase/examples/nvector/manyvector/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/manyvector/test_fnvector_manyvector_mod.f90
$tar $tarfile $distrobase/examples/nvector/manyvector/test_nvector_manyvector.c
$tar $tarfile $distrobase/examples/nvector/mpicuda/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/mpicuda/test_nvector_mpicuda.cu
$tar $tarfile $distrobase/examples/nvector/mpimanyvector/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/mpimanyvector/test_fnvector_mpimanyvector_mod.f90
$tar $tarfile $distrobase/examples/nvector/mpimanyvector/test_nvector_mpimanyvector_parallel1.c
$tar $tarfile $distrobase/examples/nvector/mpimanyvector/test_nvector_mpimanyvector_parallel2.c
$tar $tarfile $distrobase/examples/nvector/mpiplusx/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/mpiplusx/test_fnvector_mpiplusx_mod.f90
$tar $tarfile $distrobase/examples/nvector/mpiplusx/test_nvector_mpiplusx.c
$tar $tarfile $distrobase/examples/nvector/mpiraja/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/mpiraja/test_nvector_mpiraja.cpp
$tar $tarfile $distrobase/examples/nvector/openmpdev/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/openmpdev/test_nvector_openmpdev.c
$tar $tarfile $distrobase/examples/nvector/parallel/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/parallel/test_fnvector_parallel_mod.f90
$tar $tarfile $distrobase/examples/nvector/parallel/test_nvector_mpi.c
$tar $tarfile $distrobase/examples/nvector/parhyp/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/parhyp/test_nvector_parhyp.c
$tar $tarfile $distrobase/examples/nvector/petsc/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/petsc/test_nvector_petsc.c
$tar $tarfile $distrobase/examples/nvector/pthreads/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/pthreads/test_fnvector_pthreads_mod.f90
$tar $tarfile $distrobase/examples/nvector/pthreads/test_nvector_pthreads.c
$tar $tarfile $distrobase/examples/nvector/raja/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/raja/test_nvector_raja.cpp
$tar $tarfile $distrobase/examples/nvector/serial/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/serial/test_fnvector_serial_mod.f90
$tar $tarfile $distrobase/examples/nvector/serial/test_nvector_serial.c
$tar $tarfile $distrobase/examples/nvector/sycl/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/sycl/test_nvector_sycl.cpp
$tar $tarfile $distrobase/examples/nvector/test_mpinvector.c
$tar $tarfile $distrobase/examples/nvector/test_nvector.c
$tar $tarfile $distrobase/examples/nvector/test_nvector.h
$tar $tarfile $distrobase/examples/nvector/trilinos/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/trilinos/test_nvector_trilinos.cpp

echo "   --- Add sunmatrix examples to $tarfile"

$tar $tarfile $distrobase/examples/sunmatrix/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/band/test_sunmatrix_band.c
$tar $tarfile $distrobase/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90
$tar $tarfile $distrobase/examples/sunmatrix/band/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/cusparse/test_sunmatrix_cusparse.cu
$tar $tarfile $distrobase/examples/sunmatrix/cusparse/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/dense/test_sunmatrix_dense.c
$tar $tarfile $distrobase/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90
$tar $tarfile $distrobase/examples/sunmatrix/dense/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/ginkgo/test_sunmatrix_ginkgo.cpp
$tar $tarfile $distrobase/examples/sunmatrix/ginkgo/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/kokkos/test_sunmatrix_kokkosdense.cpp
$tar $tarfile $distrobase/examples/sunmatrix/kokkos/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/magmadense/test_sunmatrix_magmadense.cpp
$tar $tarfile $distrobase/examples/sunmatrix/magmadense/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/onemkldense/CMakeLists.txt
$tar $tarfile $distrobase/examples/sunmatrix/onemkldense/test_sunmatrix_onemkldense.cpp

$tar $tarfile $distrobase/examples/sunmatrix/sparse/test_sunmatrix_sparse.c
$tar $tarfile $distrobase/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90
$tar $tarfile $distrobase/examples/sunmatrix/sparse/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/slunrloc/test_sunmatrix_slunrloc.cpp
$tar $tarfile $distrobase/examples/sunmatrix/slunrloc/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunmatrix/dreadrb.c
$tar $tarfile $distrobase/examples/sunmatrix/dreadrb.h

$tar $tarfile $distrobase/examples/sunmatrix/test_sunmatrix.f90
$tar $tarfile $distrobase/examples/sunmatrix/test_sunmatrix.c
$tar $tarfile $distrobase/examples/sunmatrix/test_sunmatrix.h

echo "   --- Add sunlinsol examples to $tarfile"

$tar $tarfile $distrobase/examples/sunlinsol/CMakeLists.txt
$tar $tarfile $distrobase/examples/sunlinsol/test_sunlinsol.f90
$tar $tarfile $distrobase/examples/sunlinsol/test_sunlinsol.c
$tar $tarfile $distrobase/examples/sunlinsol/test_sunlinsol.h

$tar $tarfile $distrobase/examples/sunlinsol/band/test_sunlinsol_band.c
$tar $tarfile $distrobase/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90
$tar $tarfile $distrobase/examples/sunlinsol/band/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/cusolversp/test_sunlinsol_cusolversp_batchqr.cu
$tar $tarfile $distrobase/examples/sunlinsol/cusolversp/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/dense/test_sunlinsol_dense.c
$tar $tarfile $distrobase/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90
$tar $tarfile $distrobase/examples/sunlinsol/dense/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/ginkgo/test_sunlinsol_ginkgo.cpp
$tar $tarfile $distrobase/examples/sunlinsol/ginkgo/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/klu/test_sunlinsol_klu.c
$tar $tarfile $distrobase/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90
$tar $tarfile $distrobase/examples/sunlinsol/klu/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/kokkos/test_sunlinsol_kokkosdense.cpp
$tar $tarfile $distrobase/examples/sunlinsol/kokkos/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/lapackband/test_sunlinsol_lapackband.c
$tar $tarfile $distrobase/examples/sunlinsol/lapackband/CMakeLists.txt
$tar $tarfile $distrobase/examples/sunlinsol/lapackdense/test_sunlinsol_lapackdense.c
$tar $tarfile $distrobase/examples/sunlinsol/lapackdense/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/magmadense/test_sunlinsol_magmadense.cpp
$tar $tarfile $distrobase/examples/sunlinsol/magmadense/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/onemkldense/CMakeLists.txt
$tar $tarfile $distrobase/examples/sunlinsol/onemkldense/test_sunlinsol_onemkldense.cpp

#$tar $tarfile $distrobase/examples/sunlinsol/pcg/parallel/test_sunlinsol_pcg_parallel.c
#$tar $tarfile $distrobase/examples/sunlinsol/pcg/parallel/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/pcg/serial/test_sunlinsol_pcg_serial.c
$tar $tarfile $distrobase/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90
$tar $tarfile $distrobase/examples/sunlinsol/pcg/serial/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/parallel/test_sunlinsol_spbcgs_parallel.c
$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/parallel/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/serial/test_sunlinsol_spbcgs_serial.c
$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/serial/CMakeLists.txt
$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90

$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/parallel/test_sunlinsol_spfgmr_parallel.c
$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/parallel/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/serial/test_sunlinsol_spfgmr_serial.c
$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90
$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/serial/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/spgmr/parallel/test_sunlinsol_spgmr_parallel.c
$tar $tarfile $distrobase/examples/sunlinsol/spgmr/parallel/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/spgmr/serial/test_sunlinsol_spgmr_serial.c
$tar $tarfile $distrobase/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90
$tar $tarfile $distrobase/examples/sunlinsol/spgmr/serial/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/parallel/test_sunlinsol_sptfqmr_parallel.c
$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/parallel/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/serial/test_sunlinsol_sptfqmr_serial.c
$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90
$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/serial/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/superludist/test_sunlinsol_superludist.cpp
$tar $tarfile $distrobase/examples/sunlinsol/superludist/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunlinsol/superlumt/test_sunlinsol_superlumt.c
$tar $tarfile $distrobase/examples/sunlinsol/superlumt/CMakeLists.txt

echo "   --- Add sunnonlinsol examples to $tarfile"

$tar $tarfile $distrobase/examples/sunnonlinsol/CMakeLists.txt

$tar $tarfile $distrobase/examples/sunnonlinsol/newton/CMakeLists.txt
$tar $tarfile $distrobase/examples/sunnonlinsol/newton/test_sunnonlinsol_newton.c
$tar $tarfile $distrobase/examples/sunnonlinsol/newton/test_fsunnonlinsol_newton_mod.f90

$tar $tarfile $distrobase/examples/sunnonlinsol/fixedpoint/CMakeLists.txt
$tar $tarfile $distrobase/examples/sunnonlinsol/fixedpoint/test_sunnonlinsol_fixedpoint.c
$tar $tarfile $distrobase/examples/sunnonlinsol/fixedpoint/test_fsunnonlinsol_fixedpoint_mod.f90

$tar $tarfile $distrobase/examples/sunnonlinsol/petsc/CMakeLists.txt
$tar $tarfile $distrobase/examples/sunnonlinsol/petsc/test_sunnonlinsol_petscsnes.c

echo "   --- Add directory with example Makefile templates to $tarfile"

$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_F2003_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_CUDA_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_RAJA_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parhyp_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parhyp_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_petsc_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_C_MPI_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_CXX_ginkgo_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_CXX_MPI_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_CUDA_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_CUDA_MPI_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_HIP_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_MPI_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_F2003_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_CUDA_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_RAJA_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_openmp_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_openmpdev_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_pthreads_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_trilinos_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_xbraid_CXX_ex.in

$tar $tarfile $distrobase/examples/templates/makefile_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_F2003_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_CUDA_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_RAJA_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parhyp_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parhyp_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_petsc_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_serial_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_serial_F2003_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_serial_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_serial_CUDA_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_serial_RAJA_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_openmp_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_openmpdev_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_pthreads_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_trilinos_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_xbraid_CXX_ex.in


echo "   --- Add testing files to $tarfile"

$tar $tarfile $distrobase/test/testRunner

echo "   --- Add unit tests files to $tarfile"

$tar $tarfile $distrobase/test/unit_tests/CMakeLists.txt
$tar $tarfile $distrobase/test/unit_tests/reductions
$tar $tarfile $distrobase/test/unit_tests/reductions/CMakeLists.txt
$tar $tarfile $distrobase/test/unit_tests/reductions/test_reduction_operators.cpp
