#!/bin/sh

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

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

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

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

tar cfv $tarfile $distrobase/README.md      || exit 1
$tar $tarfile $distrobase/CONTRIBUTING.md   || exit 1
$tar $tarfile $distrobase/LICENSE           || exit 1
$tar $tarfile $distrobase/NOTICE            || exit 1
$tar $tarfile $distrobase/CMakeLists.txt    || exit 1
if [ $doc = "T" ]; then
    $tar $tarfile $distrobase/INSTALL_GUIDE.pdf || exit 1
fi

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

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

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

$tar $tarfile $distrobase/include/sundials/sundials_band.h                || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_config.in             || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_fconfig.in            || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_cuda_policies.hpp     || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_hip_policies.hpp      || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_types.h               || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_mpi_types.h           || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_matrix.h              || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_linearsolver.h        || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_math.h                || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_nvector.h             || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_fnvector.h            || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_dense.h               || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_direct.h              || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_fconfig.in            || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_fnvector.h            || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_futils.h              || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_iterative.h           || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_lapack.h              || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_linearsolver.h        || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_math.h                || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_matrix.h              || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_memory.h              || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_mpi_types.h           || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_nonlinearsolver.h     || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_nvector_senswrapper.h || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_nvector.h             || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_sycl_policies.hpp     || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_types.h               || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_version.h             || exit 1
$tar $tarfile $distrobase/include/sundials/sundials_xbraid.h              || exit 1

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

$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_band.h        || exit 1
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_cusparse.h    || exit 1
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_dense.h       || exit 1
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_magmadense.h  || exit 1
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_onemkldense.h || exit 1
#$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_diagonal.h    || exit 1
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_sparse.h      || exit 1
$tar $tarfile $distrobase/include/sunmatrix/sunmatrix_slunrloc.h    || exit 1

$tar $tarfile $distrobase/include/sunmemory/sunmemory_cuda.h      || exit 1
$tar $tarfile $distrobase/include/sunmemory/sunmemory_hip.h       || exit 1
$tar $tarfile $distrobase/include/sunmemory/sunmemory_sycl.h       || exit 1

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

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

$tar $tarfile $distrobase/src/CMakeLists.txt                                      || exit 1
$tar $tarfile $distrobase/src/sundials/CMakeLists.txt                             || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/CMakeLists.txt                        || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_futils_mod.c                || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_futils_mod.f90              || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_linearsolver_mod.c          || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_linearsolver_mod.f90        || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_matrix_mod.c                || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_matrix_mod.f90              || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_nonlinearsolver_mod.c       || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_nonlinearsolver_mod.f90     || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_nvector_mod.c               || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_nvector_mod.f90             || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_types_mod.c                 || exit 1
$tar $tarfile $distrobase/src/sundials/fmod/fsundials_types_mod.f90               || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_band.c                            || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_cuda_kernels.cuh                  || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_cuda.h                            || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_debug.h                           || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_dense.c                           || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_direct.c                          || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_futils.c                          || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_hip_kernels.hip.hpp               || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_hip.h                             || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_iterative.c                       || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_linearsolver.c                    || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_math.c                            || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_matrix.c                          || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_memory.c                          || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_nonlinearsolver.c                 || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_nvector_senswrapper.c             || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_nvector.c                         || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_sycl.h                            || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_version.c                         || exit 1
$tar $tarfile $distrobase/src/sundials/sundials_xbraid.c                          || exit 1

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

$tar $tarfile $distrobase/src/nvector/CMakeLists.txt || exit 1

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

$tar $tarfile $distrobase/src/nvector/serial/CMakeLists.txt                   || exit 1
$tar $tarfile $distrobase/src/nvector/serial/nvector_serial.c                 || exit 1
$tar $tarfile $distrobase/src/nvector/serial/fnvector_serial.h                || exit 1
$tar $tarfile $distrobase/src/nvector/serial/fnvector_serial.c                || exit 1
$tar $tarfile $distrobase/src/nvector/serial/fmod/CMakeLists.txt              || exit 1
$tar $tarfile $distrobase/src/nvector/serial/fmod/fnvector_serial_mod.c       || exit 1
$tar $tarfile $distrobase/src/nvector/serial/fmod/fnvector_serial_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/nvector/parallel/CMakeLists.txt                     || exit 1
$tar $tarfile $distrobase/src/nvector/parallel/nvector_parallel.c                 || exit 1
$tar $tarfile $distrobase/src/nvector/parallel/fnvector_parallel.h                || exit 1
$tar $tarfile $distrobase/src/nvector/parallel/fnvector_parallel.c                || exit 1
$tar $tarfile $distrobase/src/nvector/parallel/fmod/CMakeLists.txt                || exit 1
$tar $tarfile $distrobase/src/nvector/parallel/fmod/fnvector_parallel_mod.c       || exit 1
$tar $tarfile $distrobase/src/nvector/parallel/fmod/fnvector_parallel_mod.f90     || exit 1

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

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

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

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

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

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

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

$tar $tarfile $distrobase/src/nvector/openmp/CMakeLists.txt                   || exit 1
$tar $tarfile $distrobase/src/nvector/openmp/nvector_openmp.c                 || exit 1
$tar $tarfile $distrobase/src/nvector/openmp/fnvector_openmp.c                || exit 1
$tar $tarfile $distrobase/src/nvector/openmp/fnvector_openmp.h                || exit 1
$tar $tarfile $distrobase/src/nvector/openmp/fmod/CMakeLists.txt              || exit 1
$tar $tarfile $distrobase/src/nvector/openmp/fmod/fnvector_openmp_mod.c       || exit 1
$tar $tarfile $distrobase/src/nvector/openmp/fmod/fnvector_openmp_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/nvector/pthreads/CMakeLists.txt                     || exit 1
$tar $tarfile $distrobase/src/nvector/pthreads/nvector_pthreads.c                 || exit 1
$tar $tarfile $distrobase/src/nvector/pthreads/fnvector_pthreads.c                || exit 1
$tar $tarfile $distrobase/src/nvector/pthreads/fnvector_pthreads.h                || exit 1
$tar $tarfile $distrobase/src/nvector/pthreads/fmod/CMakeLists.txt                || exit 1
$tar $tarfile $distrobase/src/nvector/pthreads/fmod/fnvector_pthreads_mod.c       || exit 1
$tar $tarfile $distrobase/src/nvector/pthreads/fmod/fnvector_pthreads_mod.f90     || exit 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$tar $tarfile $distrobase/src/sunmatrix/CMakeLists.txt || exit 1

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

$tar $tarfile $distrobase/src/sunmatrix/band/CMakeLists.txt                   || exit 1
$tar $tarfile $distrobase/src/sunmatrix/band/sunmatrix_band.c                 || exit 1
$tar $tarfile $distrobase/src/sunmatrix/band/fsunmatrix_band.h                || exit 1
$tar $tarfile $distrobase/src/sunmatrix/band/fsunmatrix_band.c                || exit 1
$tar $tarfile $distrobase/src/sunmatrix/band/fmod/CMakeLists.txt              || exit 1
$tar $tarfile $distrobase/src/sunmatrix/band/fmod/fsunmatrix_band_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunmatrix/band/fmod/fsunmatrix_band_mod.f90     || exit 1

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

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

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

$tar $tarfile $distrobase/src/sunmatrix/dense/CMakeLists.txt                    || exit 1
$tar $tarfile $distrobase/src/sunmatrix/dense/sunmatrix_dense.c                 || exit 1
$tar $tarfile $distrobase/src/sunmatrix/dense/fsunmatrix_dense.h                || exit 1
$tar $tarfile $distrobase/src/sunmatrix/dense/fsunmatrix_dense.c                || exit 1
$tar $tarfile $distrobase/src/sunmatrix/dense/fmod/CMakeLists.txt               || exit 1
$tar $tarfile $distrobase/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunmatrix/dense/fmod/fsunmatrix_dense_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/sunmatrix/sparse/CMakeLists.txt                     || exit 1
$tar $tarfile $distrobase/src/sunmatrix/sparse/sunmatrix_sparse.c                 || exit 1
$tar $tarfile $distrobase/src/sunmatrix/sparse/fsunmatrix_sparse.h                || exit 1
$tar $tarfile $distrobase/src/sunmatrix/sparse/fsunmatrix_sparse.c                || exit 1
$tar $tarfile $distrobase/src/sunmatrix/sparse/fmod/CMakeLists.txt                || exit 1
$tar $tarfile $distrobase/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunmatrix/sparse/fmod/fsunmatrix_sparse_mod.f90     || exit 1

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

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

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

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

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

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

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

$tar $tarfile $distrobase/src/sunmemory/CMakeLists.txt || exit 1

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

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

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

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

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

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

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

$tar $tarfile $distrobase/src/sunlinsol/CMakeLists.txt || exit 1

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

$tar $tarfile $distrobase/src/sunlinsol/band/CMakeLists.txt                   || exit 1
$tar $tarfile $distrobase/src/sunlinsol/band/sunlinsol_band.c                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/band/fsunlinsol_band.h                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/band/fsunlinsol_band.c                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/band/fmod/CMakeLists.txt              || exit 1
$tar $tarfile $distrobase/src/sunlinsol/band/fmod/fsunlinsol_band_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunlinsol/band/fmod/fsunlinsol_band_mod.f90     || exit 1

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

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

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

$tar $tarfile $distrobase/src/sunlinsol/dense/CMakeLists.txt                    || exit 1
$tar $tarfile $distrobase/src/sunlinsol/dense/sunlinsol_dense.c                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/dense/fsunlinsol_dense.h                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/dense/fsunlinsol_dense.c                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/dense/fmod/CMakeLists.txt               || exit 1
$tar $tarfile $distrobase/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunlinsol/dense/fmod/fsunlinsol_dense_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/sunlinsol/klu/CMakeLists.txt                  || exit 1
$tar $tarfile $distrobase/src/sunlinsol/klu/sunlinsol_klu.c                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/klu/fsunlinsol_klu.h                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/klu/fsunlinsol_klu.c                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/klu/fmod/CMakeLists.txt             || exit 1
$tar $tarfile $distrobase/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunlinsol/klu/fmod/fsunlinsol_klu_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/sunlinsol/lapackband/CMakeLists.txt          || exit 1
$tar $tarfile $distrobase/src/sunlinsol/lapackband/sunlinsol_lapackband.c  || exit 1
$tar $tarfile $distrobase/src/sunlinsol/lapackband/fsunlinsol_lapackband.h || exit 1
$tar $tarfile $distrobase/src/sunlinsol/lapackband/fsunlinsol_lapackband.c || exit 1

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

$tar $tarfile $distrobase/src/sunlinsol/lapackdense/CMakeLists.txt           || exit 1
$tar $tarfile $distrobase/src/sunlinsol/lapackdense/sunlinsol_lapackdense.c  || exit 1
$tar $tarfile $distrobase/src/sunlinsol/lapackdense/fsunlinsol_lapackdense.h || exit 1
$tar $tarfile $distrobase/src/sunlinsol/lapackdense/fsunlinsol_lapackdense.c || exit 1

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

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

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

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

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

$tar $tarfile $distrobase/src/sunlinsol/pcg/CMakeLists.txt                  || exit 1
$tar $tarfile $distrobase/src/sunlinsol/pcg/sunlinsol_pcg.c                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/pcg/fsunlinsol_pcg.h                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/pcg/fsunlinsol_pcg.c                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/pcg/fmod/CMakeLists.txt             || exit 1
$tar $tarfile $distrobase/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunlinsol/pcg/fmod/fsunlinsol_pcg_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/sunlinsol/spbcgs/CMakeLists.txt                     || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/sunlinsol_spbcgs.c                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/fsunlinsol_spbcgs.h                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/fsunlinsol_spbcgs.c                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/fmod/CMakeLists.txt                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spbcgs/fmod/fsunlinsol_spbcgs_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/sunlinsol/spfgmr/CMakeLists.txt                     || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/sunlinsol_spfgmr.c                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/fsunlinsol_spfgmr.h                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/fsunlinsol_spfgmr.c                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/fmod/CMakeLists.txt                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spfgmr/fmod/fsunlinsol_spfgmr_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/sunlinsol/spgmr/CMakeLists.txt                    || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spgmr/sunlinsol_spgmr.c                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spgmr/fsunlinsol_spgmr.h                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spgmr/fsunlinsol_spgmr.c                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spgmr/fmod/CMakeLists.txt               || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunlinsol/spgmr/fmod/fsunlinsol_spgmr_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/CMakeLists.txt                      || exit 1
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/sunlinsol_sptfqmr.c                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/fsunlinsol_sptfqmr.h                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/fsunlinsol_sptfqmr.c                || exit 1
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/fmod/CMakeLists.txt                 || exit 1
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunlinsol/sptfqmr/fmod/fsunlinsol_sptfqmr_mod.f90     || exit 1

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

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

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

$tar $tarfile $distrobase/src/sunlinsol/superlumt/CMakeLists.txt         || exit 1
$tar $tarfile $distrobase/src/sunlinsol/superlumt/sunlinsol_superlumt.c  || exit 1
$tar $tarfile $distrobase/src/sunlinsol/superlumt/fsunlinsol_superlumt.h || exit 1
$tar $tarfile $distrobase/src/sunlinsol/superlumt/fsunlinsol_superlumt.c || exit 1

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

$tar $tarfile $distrobase/src/sunnonlinsol/CMakeLists.txt || exit 1

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

$tar $tarfile $distrobase/src/sunnonlinsol/newton/CMakeLists.txt                        || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/newton/sunnonlinsol_newton.c                 || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/newton/fsunnonlinsol_newton.h                || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/newton/fsunnonlinsol_newton.c                || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/newton/fmod/CMakeLists.txt                   || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/newton/fmod/fsunnonlinsol_newton_mod.f90     || exit 1

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

$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/CMakeLists.txt                            || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/sunnonlinsol_fixedpoint.c                 || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/fsunnonlinsol_fixedpoint.h                || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/fsunnonlinsol_fixedpoint.c                || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/fmod/CMakeLists.txt                       || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.c       || exit 1
$tar $tarfile $distrobase/src/sunnonlinsol/fixedpoint/fmod/fsunnonlinsol_fixedpoint_mod.f90     || exit 1

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

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

echo "   --- Add examples to $tarfile"

$tar $tarfile $distrobase/examples/CMakeLists.txt || exit 1

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

$tar $tarfile $distrobase/examples/utilities/custom_memory_helper_gpu.h  || exit 1
$tar $tarfile $distrobase/examples/utilities/custom_memory_helper_sycl.h || exit 1
$tar $tarfile $distrobase/examples/utilities/test_utilities.f90          || exit 1
$tar $tarfile $distrobase/examples/utilities/plot_data_2d.py             || exit 1

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

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

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

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

$tar $tarfile $distrobase/examples/sunmatrix/CMakeLists.txt                        || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/band/test_sunmatrix_band.c            || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/band/test_fsunmatrix_band_mod.f90     || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/band/CMakeLists.txt                   || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/cusparse/test_sunmatrix_cusparse.cu   || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/cusparse/CMakeLists.txt               || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/magmadense/test_sunmatrix_magmadense.cpp || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/magmadense/CMakeLists.txt                || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/onemkldense/CMakeLists.txt                 || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/onemkldense/test_sunmatrix_onemkldense.cpp || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/dense/test_sunmatrix_dense.c          || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/dense/test_fsunmatrix_dense_mod.f90   || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/dense/CMakeLists.txt                  || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/sparse/test_sunmatrix_sparse.c        || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/sparse/test_fsunmatrix_sparse_mod.f90 || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/sparse/CMakeLists.txt                 || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/slunrloc/test_sunmatrix_slunrloc.cpp  || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/slunrloc/CMakeLists.txt               || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/dreadrb.c                             || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/dreadrb.h                             || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/test_sunmatrix.f90                    || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/test_sunmatrix.c                      || exit 1
$tar $tarfile $distrobase/examples/sunmatrix/test_sunmatrix.h                      || exit 1

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

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

$tar $tarfile $distrobase/examples/sunlinsol/band/test_sunlinsol_band.c                            || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/band/test_fsunlinsol_band_mod.f90                     || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/band/CMakeLists.txt                                   || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/cusolversp/test_sunlinsol_cusolversp_batchqr.cu       || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/cusolversp/CMakeLists.txt                             || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/dense/test_sunlinsol_dense.c                          || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/dense/test_fsunlinsol_dense_mod.f90                   || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/dense/CMakeLists.txt                                  || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/klu/test_sunlinsol_klu.c                              || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/klu/test_fsunlinsol_klu_mod.f90                       || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/klu/CMakeLists.txt                                    || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/lapackband/test_sunlinsol_lapackband.c                || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/lapackband/CMakeLists.txt                             || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/lapackdense/test_sunlinsol_lapackdense.c              || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/lapackdense/CMakeLists.txt                            || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/magmadense/test_sunlinsol_magmadense.cpp              || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/magmadense/CMakeLists.txt                             || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/onemkldense/CMakeLists.txt                            || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/onemkldense/test_sunlinsol_onemkldense.cpp            || exit 1
#$tar $tarfile $distrobase/examples/sunlinsol/pcg/parallel/test_sunlinsol_pcg_parallel.c           || exit 1
#$tar $tarfile $distrobase/examples/sunlinsol/pcg/parallel/CMakeLists.txt                          || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/pcg/serial/test_sunlinsol_pcg_serial.c                || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/pcg/serial/test_fsunlinsol_pcg_mod_serial.f90         || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/pcg/serial/CMakeLists.txt                             || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/parallel/test_sunlinsol_spbcgs_parallel.c      || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/parallel/CMakeLists.txt                        || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/serial/test_sunlinsol_spbcgs_serial.c          || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/serial/CMakeLists.txt                          || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spbcgs/serial/test_fsunlinsol_spbcgs_mod_serial.f90   || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/parallel/test_sunlinsol_spfgmr_parallel.c      || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/parallel/CMakeLists.txt                        || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/serial/test_sunlinsol_spfgmr_serial.c          || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/serial/test_fsunlinsol_spfgmr_mod_serial.f90   || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spfgmr/serial/CMakeLists.txt                          || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spgmr/parallel/test_sunlinsol_spgmr_parallel.c        || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spgmr/parallel/CMakeLists.txt                         || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spgmr/serial/test_sunlinsol_spgmr_serial.c            || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spgmr/serial/test_fsunlinsol_spgmr_mod_serial.f90     || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/spgmr/serial/CMakeLists.txt                           || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/parallel/test_sunlinsol_sptfqmr_parallel.c    || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/parallel/CMakeLists.txt                       || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/serial/test_sunlinsol_sptfqmr_serial.c        || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/serial/test_fsunlinsol_sptfqmr_mod_serial.f90 || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/sptfqmr/serial/CMakeLists.txt                         || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/superludist/test_sunlinsol_superludist.cpp            || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/superludist/CMakeLists.txt                            || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/superlumt/test_sunlinsol_superlumt.c                  || exit 1
$tar $tarfile $distrobase/examples/sunlinsol/superlumt/CMakeLists.txt                              || exit 1

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

$tar $tarfile $distrobase/examples/sunnonlinsol/CMakeLists.txt || exit 1

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

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

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

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

$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_C_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_F77_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_F2003_ex.in  || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_CXX_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_CUDA_ex.in   || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_RAJA_ex.in   || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_parhyp_C_ex.in        || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_parhyp_CXX_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_petsc_C_ex.in         || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_CXX_ex.in             || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_CUDA_ex.in            || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_HIP_ex.in             || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_MPI_ex.in             || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_C_ex.in        || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_F77_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_F2003_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_CXX_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_CUDA_ex.in     || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_RAJA_ex.in     || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_openmp_C_ex.in        || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_openmpdev_ex.in       || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_openmp_F77_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_pthreads_C_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_pthreads_F77_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_F90_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_F90_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_trilinos_CXX_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_superludist_CXX_ex.in || exit 1
$tar $tarfile $distrobase/examples/templates/cmakelists_xbraid_CXX_ex.in      || exit 1

$tar $tarfile $distrobase/examples/templates/makefile_CXX_ex.in             || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parallel_C_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parallel_F77_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parallel_F2003_ex.in  || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parallel_CXX_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parallel_CUDA_ex.in   || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parallel_RAJA_ex.in   || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parhyp_C_ex.in        || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parhyp_CXX_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_petsc_C_ex.in         || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_serial_C_ex.in        || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_serial_F77_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_serial_F2003_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_serial_CXX_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_serial_CUDA_ex.in     || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_serial_RAJA_ex.in     || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_openmp_C_ex.in        || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_openmpdev_ex.in       || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_openmp_F77_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_pthreads_C_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_pthreads_F77_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_serial_F90_ex.in      || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_parallel_F90_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_trilinos_CXX_ex.in    || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_superludist_CXX_ex.in || exit 1
$tar $tarfile $distrobase/examples/templates/makefile_xbraid_CXX_ex.in      || exit 1


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

$tar $tarfile $distrobase/test/testRunner || exit 1

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

$tar $tarfile $distrobase/test/unit_tests/CMakeLists.txt || exit 1
