#!/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 CVODE files to a SUNDIALS tar-file.
# ------------------------------------------------------------------------------

set -e

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

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

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

if [ $doc = "T" ]; then
    $tar $tarfile $distrobase/doc/cvode/cv_guide.pdf
    $tar $tarfile $distrobase/doc/cvode/cv_examples.pdf
fi
$tar $tarfile $distrobase/doc/cvode/guide/Makefile
$tar $tarfile $distrobase/doc/cvode/guide/source

$tar $tarfile $distrobase/include/cvode/cvode.h
$tar $tarfile $distrobase/include/cvode/cvode_bandpre.h
$tar $tarfile $distrobase/include/cvode/cvode_bbdpre.h
$tar $tarfile $distrobase/include/cvode/cvode_diag.h
$tar $tarfile $distrobase/include/cvode/cvode_direct.h
$tar $tarfile $distrobase/include/cvode/cvode_ls.h
$tar $tarfile $distrobase/include/cvode/cvode_proj.h
$tar $tarfile $distrobase/include/cvode/cvode_spils.h

$tar $tarfile $distrobase/src/cvode/LICENSE
$tar $tarfile $distrobase/src/cvode/NOTICE
$tar $tarfile $distrobase/src/cvode/README.md
$tar $tarfile $distrobase/src/cvode/CMakeLists.txt

$tar $tarfile $distrobase/src/cvode/cvode.c
$tar $tarfile $distrobase/src/cvode/cvode_fused_stubs.c
$tar $tarfile $distrobase/src/cvode/cvode_fused_gpu.cpp
$tar $tarfile $distrobase/src/cvode/cvode_bandpre.c
$tar $tarfile $distrobase/src/cvode/cvode_bandpre_impl.h
$tar $tarfile $distrobase/src/cvode/cvode_bbdpre.c
$tar $tarfile $distrobase/src/cvode/cvode_bbdpre_impl.h
$tar $tarfile $distrobase/src/cvode/cvode_diag.c
$tar $tarfile $distrobase/src/cvode/cvode_diag_impl.h
$tar $tarfile $distrobase/src/cvode/cvode_direct.c
$tar $tarfile $distrobase/src/cvode/cvode_impl.h
$tar $tarfile $distrobase/src/cvode/cvode_io.c
$tar $tarfile $distrobase/src/cvode/cvode_ls.c
$tar $tarfile $distrobase/src/cvode/cvode_ls_impl.h
$tar $tarfile $distrobase/src/cvode/cvode_nls.c
$tar $tarfile $distrobase/src/cvode/cvode_proj.c
$tar $tarfile $distrobase/src/cvode/cvode_proj_impl.h
$tar $tarfile $distrobase/src/cvode/cvode_spils.c

echo "   --- Add cvode F2003 interface to $tarfile"

$tar $tarfile $distrobase/src/cvode/fmod/CMakeLists.txt
$tar $tarfile $distrobase/src/cvode/fmod/fcvode_mod.c
$tar $tarfile $distrobase/src/cvode/fmod/fcvode_mod.f90

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

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

$tar $tarfile $distrobase/examples/cvode/serial/README
$tar $tarfile $distrobase/examples/cvode/serial/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/serial/cvAdvDiff_bnd.c
$tar $tarfile $distrobase/examples/cvode/serial/cvAdvDiff_bndL.c
$tar $tarfile $distrobase/examples/cvode/serial/cvAdvDiff_bndL.out
$tar $tarfile $distrobase/examples/cvode/serial/cvAdvDiff_bnd.out
$tar $tarfile $distrobase/examples/cvode/serial/cvAnalytic_mels.c
$tar $tarfile $distrobase/examples/cvode/serial/cvAnalytic_mels.out
$tar $tarfile $distrobase/examples/cvode/serial/cvDirectDemo_ls.c
$tar $tarfile $distrobase/examples/cvode/serial/cvDirectDemo_ls.out
$tar $tarfile $distrobase/examples/cvode/serial/cvDisc_dns.c
$tar $tarfile $distrobase/examples/cvode/serial/cvDisc_dns.out
$tar $tarfile $distrobase/examples/cvode/serial/cvDiurnal_kry_bp.c
$tar $tarfile $distrobase/examples/cvode/serial/cvDiurnal_kry_bp.out
$tar $tarfile $distrobase/examples/cvode/serial/cvDiurnal_kry.c
$tar $tarfile $distrobase/examples/cvode/serial/cvDiurnal_kry.out
$tar $tarfile $distrobase/examples/cvode/serial/cvKrylovDemo_ls.c
$tar $tarfile $distrobase/examples/cvode/serial/cvKrylovDemo_ls.out
$tar $tarfile $distrobase/examples/cvode/serial/cvKrylovDemo_ls_1.out
$tar $tarfile $distrobase/examples/cvode/serial/cvKrylovDemo_ls_2.out
$tar $tarfile $distrobase/examples/cvode/serial/cvKrylovDemo_ls_0_1.out
$tar $tarfile $distrobase/examples/cvode/serial/cvKrylovDemo_prec.c
$tar $tarfile $distrobase/examples/cvode/serial/cvKrylovDemo_prec.out
$tar $tarfile $distrobase/examples/cvode/serial/cvParticle_dns.c
$tar $tarfile $distrobase/examples/cvode/serial/cvParticle_dns.out
$tar $tarfile $distrobase/examples/cvode/serial/cvPendulum_dns.c
$tar $tarfile $distrobase/examples/cvode/serial/cvPendulum_dns.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns_stats.csv
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns_constraints.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns_constraints.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dnsL.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dnsL.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns_uw.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns_uw.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns_negsol.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_dns_negsol.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_klu.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_klu.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_block_klu.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_block_klu.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_sps.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRoberts_sps.out
$tar $tarfile $distrobase/examples/cvode/serial/cvRocket_dns.c
$tar $tarfile $distrobase/examples/cvode/serial/cvRocket_dns.out
$tar $tarfile $distrobase/examples/cvode/serial/plot_cvParticle.py
$tar $tarfile $distrobase/examples/cvode/serial/plot_cvPendulum.py

$tar $tarfile $distrobase/examples/cvode/F2003_serial/README
$tar $tarfile $distrobase/examples/cvode/F2003_serial/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_analytic_fp_f2003.f90
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_analytic_fp_f2003.out
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_analytic_sys_dns_f2003.f90
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_analytic_sys_dns_f2003.out
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_analytic_sys_dns_jac_f2003.f90
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_analytic_sys_dns_jac_f2003.out
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_analytic_sys_klu_f2003.f90
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_analytic_sys_klu_f2003.out
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_brusselator_dns_f2003.f90
$tar $tarfile $distrobase/examples/cvode/F2003_serial/cv_brusselator_dns_f2003.out

$tar $tarfile $distrobase/examples/cvode/C_openmp/README
$tar $tarfile $distrobase/examples/cvode/C_openmp/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/C_openmp/cvAdvDiff_bnd_omp.c
$tar $tarfile $distrobase/examples/cvode/C_openmp/cvAdvDiff_bnd_omp.out

$tar $tarfile $distrobase/examples/cvode/C_openmpdev/README
$tar $tarfile $distrobase/examples/cvode/C_openmpdev/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/C_openmpdev/cvAdvDiff_kry_ompdev.c
$tar $tarfile $distrobase/examples/cvode/C_openmpdev/cvAdvDiff_kry_ompdev.out

$tar $tarfile $distrobase/examples/cvode/parallel/README
$tar $tarfile $distrobase/examples/cvode/parallel/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/parallel/cvAdvDiff_non_p.c
$tar $tarfile $distrobase/examples/cvode/parallel/cvAdvDiff_non_p.out
$tar $tarfile $distrobase/examples/cvode/parallel/cvAdvDiff_diag_p.c
$tar $tarfile $distrobase/examples/cvode/parallel/cvAdvDiff_diag_p.out
$tar $tarfile $distrobase/examples/cvode/parallel/cvDiurnal_kry_bbd_p.c
$tar $tarfile $distrobase/examples/cvode/parallel/cvDiurnal_kry_bbd_p.out
$tar $tarfile $distrobase/examples/cvode/parallel/cvDiurnal_kry_p.c
$tar $tarfile $distrobase/examples/cvode/parallel/cvDiurnal_kry_p.out

$tar $tarfile $distrobase/examples/cvode/superludist/README
$tar $tarfile $distrobase/examples/cvode/superludist/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/superludist/cvAdvDiff_sludist.cpp
$tar $tarfile $distrobase/examples/cvode/superludist/cvAdvDiff_sludist_32.out
$tar $tarfile $distrobase/examples/cvode/superludist/cvAdvDiff_sludist_64.out

$tar $tarfile $distrobase/examples/cvode/parhyp/README
$tar $tarfile $distrobase/examples/cvode/parhyp/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/parhyp/cvAdvDiff_non_ph.c
$tar $tarfile $distrobase/examples/cvode/parhyp/cvAdvDiff_non_ph.out

$tar $tarfile $distrobase/examples/cvode/petsc/README
$tar $tarfile $distrobase/examples/cvode/petsc/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/petsc/cv_petsc_ex7.c
$tar $tarfile $distrobase/examples/cvode/petsc/cv_petsc_ex7.out
$tar $tarfile $distrobase/examples/cvode/petsc/cvAdvDiff_petsc.c
$tar $tarfile $distrobase/examples/cvode/petsc/cvAdvDiff_petsc.out

$tar $tarfile $distrobase/examples/cvode/C_mpimanyvector/README
$tar $tarfile $distrobase/examples/cvode/C_mpimanyvector/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/C_mpimanyvector/cvDiurnal_kry_mpimanyvec.c
$tar $tarfile $distrobase/examples/cvode/C_mpimanyvector/cvDiurnal_kry_mpimanyvec.out

$tar $tarfile $distrobase/examples/cvode/cuda/README
$tar $tarfile $distrobase/examples/cvode/cuda/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/cuda/cvAdvDiff_diag_cuda.cu
$tar $tarfile $distrobase/examples/cvode/cuda/cvAdvDiff_diag_cuda_0_0.out
$tar $tarfile $distrobase/examples/cvode/cuda/cvAdvDiff_diag_cuda_0_1.out
$tar $tarfile $distrobase/examples/cvode/cuda/cvAdvDiff_diag_cuda_1_1.out
$tar $tarfile $distrobase/examples/cvode/cuda/cvAdvDiff_kry_cuda.cu
$tar $tarfile $distrobase/examples/cvode/cuda/cvAdvDiff_kry_cuda.out
$tar $tarfile $distrobase/examples/cvode/cuda/cvAdvDiff_kry_cuda_managed.cu
$tar $tarfile $distrobase/examples/cvode/cuda/cvAdvDiff_kry_cuda_managed.out
$tar $tarfile $distrobase/examples/cvode/cuda/cvRoberts_block_cusolversp_batchqr.cu
$tar $tarfile $distrobase/examples/cvode/cuda/cvRoberts_block_cusolversp_batchqr.out

$tar $tarfile $distrobase/examples/cvode/ginkgo/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_heat2D_ginkgo.cpp
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_heat2D_ginkgo.hpp
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_heat2D_ginkgo.CUDA.out
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_heat2D_ginkgo.OMP.out
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_heat2D_ginkgo.REF.out
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_kpr_ginkgo.cpp
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_kpr_ginkgo.hpp
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_kpr_ginkgo.OMP.out
$tar $tarfile $distrobase/examples/cvode/ginkgo/cv_kpr_ginkgo.REF.out

$tar $tarfile $distrobase/examples/cvode/hip/README
$tar $tarfile $distrobase/examples/cvode/hip/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/hip/cvAdvDiff_diag_hip.cpp
$tar $tarfile $distrobase/examples/cvode/hip/cvAdvDiff_diag_hip_0_0.out
$tar $tarfile $distrobase/examples/cvode/hip/cvAdvDiff_diag_hip_0_1.out
$tar $tarfile $distrobase/examples/cvode/hip/cvAdvDiff_diag_hip_1_1.out
$tar $tarfile $distrobase/examples/cvode/hip/cvAdvDiff_kry_hip.cpp
$tar $tarfile $distrobase/examples/cvode/hip/cvAdvDiff_kry_hip.out

$tar $tarfile $distrobase/examples/cvode/kokkos/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/kokkos/cv_bruss_batched_kokkos.cpp
$tar $tarfile $distrobase/examples/cvode/kokkos/cv_bruss_batched_kokkos.CUDA.out
$tar $tarfile $distrobase/examples/cvode/kokkos/cv_bruss_batched_kokkos.OPENMP.out
$tar $tarfile $distrobase/examples/cvode/kokkos/cv_bruss_batched_kokkos.SERIAL.out

$tar $tarfile $distrobase/examples/cvode/magma/README
$tar $tarfile $distrobase/examples/cvode/magma/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/magma/cv_bruss_batched_magma.cpp
$tar $tarfile $distrobase/examples/cvode/magma/cv_bruss_batched_magma.out

$tar $tarfile $distrobase/examples/cvode/raja/README
$tar $tarfile $distrobase/examples/cvode/raja/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/raja/cvAdvDiff_kry_raja.cpp
$tar $tarfile $distrobase/examples/cvode/raja/cvAdvDiff_kry_raja.out

$tar $tarfile $distrobase/examples/cvode/CXX_onemkl/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/CXX_onemkl/README
$tar $tarfile $distrobase/examples/cvode/CXX_onemkl/cvRoberts_blockdiag_onemkl.cpp
$tar $tarfile $distrobase/examples/cvode/CXX_onemkl/cvRoberts_blockdiag_onemkl.out

$tar $tarfile $distrobase/examples/cvode/CXX_serial/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/CXX_serial/README
$tar $tarfile $distrobase/examples/cvode/CXX_serial/cv_heat2D.cpp
$tar $tarfile $distrobase/examples/cvode/CXX_serial/cv_heat2D.hpp
$tar $tarfile $distrobase/examples/cvode/CXX_serial/cv_heat2D.out
$tar $tarfile $distrobase/examples/cvode/CXX_serial/cv_kpr.cpp
$tar $tarfile $distrobase/examples/cvode/CXX_serial/cv_kpr.hpp
$tar $tarfile $distrobase/examples/cvode/CXX_serial/cv_kpr.out
$tar $tarfile $distrobase/examples/cvode/CXX_serial/plot_heat2D.py

$tar $tarfile $distrobase/examples/cvode/CXX_parallel/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/CXX_parallel/README
$tar $tarfile $distrobase/examples/cvode/CXX_parallel/cv_heat2D_p.cpp
$tar $tarfile $distrobase/examples/cvode/CXX_parallel/cv_heat2D_p_--np_2_2.out
$tar $tarfile $distrobase/examples/cvode/CXX_parallel/plot_heat2D_p.py

$tar $tarfile $distrobase/examples/cvode/CXX_parhyp/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/CXX_parhyp/README
$tar $tarfile $distrobase/examples/cvode/CXX_parhyp/cv_heat2D_hypre_ls.cpp
$tar $tarfile $distrobase/examples/cvode/CXX_parhyp/cv_heat2D_hypre_ls_--np_2_2.out
$tar $tarfile $distrobase/examples/cvode/CXX_parhyp/cv_heat2D_hypre_pfmg.cpp
$tar $tarfile $distrobase/examples/cvode/CXX_parhyp/cv_heat2D_hypre_pfmg_--np_2_2.out
$tar $tarfile $distrobase/examples/cvode/CXX_parhyp/plot_heat2D_p.py

$tar $tarfile $distrobase/examples/cvode/CXX_sycl/CMakeLists.txt
$tar $tarfile $distrobase/examples/cvode/CXX_sycl/README
$tar $tarfile $distrobase/examples/cvode/CXX_sycl/cvAdvDiff_kry_sycl.cpp
$tar $tarfile $distrobase/examples/cvode/CXX_sycl/cvAdvDiff_kry_sycl.out

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

$tar $tarfile $distrobase/test/unit_tests/cvode/CMakeLists.txt
$tar $tarfile $distrobase/test/unit_tests/cvode/C_serial/CMakeLists.txt
$tar $tarfile $distrobase/test/unit_tests/cvode/C_serial/cv_test_getuserdata.c
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/CMakeLists.txt
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr.cpp
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr.hpp
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--dgmax_jbad_1.0.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--dgmax_lsetup_0.0.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_cf_0.5.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_max_ef_0.1_--small_nef_1.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_max_fs_2.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_ef_0.5.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_es_2_--small_nst_5.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_fx_1.0_--eta_max_fx_2.0.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_fx_1.0_--eta_min_0.5.out
$tar $tarfile $distrobase/test/unit_tests/cvode/CXX_serial/cv_test_kpr_--eta_min_gs_2.out
