#!/bin/sh

tarfile=$1
distrobase=$2

shift 2
tar=$*

echo "   --- Add top-level files to $tarfile"
    
tar cfv $tarfile $distrobase/README
$tar $tarfile $distrobase/LICENSE
$tar $tarfile $distrobase/INSTALL_GUIDE.pdf

$tar $tarfile $distrobase/CMakeLists.txt

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

$tar $tarfile $distrobase/config/SundialsAddTest.cmake
$tar $tarfile $distrobase/config/SundialsFortran.cmake
$tar $tarfile $distrobase/config/SundialsFortran90.cmake
$tar $tarfile $distrobase/config/SundialsCXX.cmake
$tar $tarfile $distrobase/config/SundialsHypre.cmake
$tar $tarfile $distrobase/config/SundialsLapack.cmake
$tar $tarfile $distrobase/config/SundialsKLU.cmake
$tar $tarfile $distrobase/config/SundialsSuperLUMT.cmake
$tar $tarfile $distrobase/config/SundialsKLU.cmake
$tar $tarfile $distrobase/config/SundialsMPIC.cmake
$tar $tarfile $distrobase/config/SundialsMPICXX.cmake
$tar $tarfile $distrobase/config/SundialsMPIF.cmake
$tar $tarfile $distrobase/config/SundialsMPIF90.cmake
$tar $tarfile $distrobase/config/SundialsPETSc.cmake
$tar $tarfile $distrobase/config/FindMPI.cmake
$tar $tarfile $distrobase/config/FindHypre.cmake
$tar $tarfile $distrobase/config/FindKLU.cmake
$tar $tarfile $distrobase/config/FindSUPERLUMT.cmake
$tar $tarfile $distrobase/config/FindPETSc.cmake
$tar $tarfile $distrobase/config/FindKLU.cmake

# 03/06/2015 LEBanks - comment out, but don't remove yet...may want to recreate some of this logic in CMake 
#$tar $tarfile $distrobase/bin/sundials-config.in
#$tar $tarfile $distrobase/bin/fortran-update.in
#$tar $tarfile $distrobase/bin/makefile-update.in

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

$tar $tarfile $distrobase/include/sundials/sundials_config.in
$tar $tarfile $distrobase/include/sundials/sundials_types.h
$tar $tarfile $distrobase/include/sundials/sundials_math.h
$tar $tarfile $distrobase/include/sundials/sundials_nvector.h
$tar $tarfile $distrobase/include/sundials/sundials_fnvector.h
$tar $tarfile $distrobase/include/sundials/sundials_dense.h
$tar $tarfile $distrobase/include/sundials/sundials_direct.h
$tar $tarfile $distrobase/include/sundials/sundials_sparse.h
$tar $tarfile $distrobase/include/sundials/sundials_band.h
$tar $tarfile $distrobase/include/sundials/sundials_lapack.h
$tar $tarfile $distrobase/include/sundials/sundials_spgmr.h
$tar $tarfile $distrobase/include/sundials/sundials_spfgmr.h
$tar $tarfile $distrobase/include/sundials/sundials_spbcgs.h
$tar $tarfile $distrobase/include/sundials/sundials_sptfqmr.h
$tar $tarfile $distrobase/include/sundials/sundials_pcg.h
$tar $tarfile $distrobase/include/sundials/sundials_iterative.h
$tar $tarfile $distrobase/include/sundials/sundials_klu_impl.h
$tar $tarfile $distrobase/include/sundials/sundials_superlumt_impl.h

$tar $tarfile $distrobase/include/nvector/nvector_serial.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_openmp.h

$tar $tarfile $distrobase/src/sundials/README
$tar $tarfile $distrobase/src/sundials/LICENSE
$tar $tarfile $distrobase/src/sundials/CMakeLists.txt
$tar $tarfile $distrobase/src/sundials/sundials_math.c
$tar $tarfile $distrobase/src/sundials/sundials_nvector.c
$tar $tarfile $distrobase/src/sundials/sundials_dense.c
$tar $tarfile $distrobase/src/sundials/sundials_direct.c
$tar $tarfile $distrobase/src/sundials/sundials_sparse.c
$tar $tarfile $distrobase/src/sundials/sundials_band.c
$tar $tarfile $distrobase/src/sundials/sundials_spgmr.c
$tar $tarfile $distrobase/src/sundials/sundials_spfgmr.c
$tar $tarfile $distrobase/src/sundials/sundials_spbcgs.c
$tar $tarfile $distrobase/src/sundials/sundials_sptfqmr.c
$tar $tarfile $distrobase/src/sundials/sundials_pcg.c
$tar $tarfile $distrobase/src/sundials/sundials_iterative.c

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

$tar $tarfile $distrobase/src/nvec_ser/README
$tar $tarfile $distrobase/src/nvec_ser/CMakeLists.txt
$tar $tarfile $distrobase/src/nvec_ser/fnvector_serial.h
$tar $tarfile $distrobase/src/nvec_ser/nvector_serial.c
$tar $tarfile $distrobase/src/nvec_ser/fnvector_serial.c

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

$tar $tarfile $distrobase/src/nvec_par/README
$tar $tarfile $distrobase/src/nvec_par/CMakeLists.txt
$tar $tarfile $distrobase/src/nvec_par/fnvector_parallel.h
$tar $tarfile $distrobase/src/nvec_par/nvector_parallel.c
$tar $tarfile $distrobase/src/nvec_par/fnvector_parallel.c

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

$tar $tarfile $distrobase/src/nvec_parhyp/README
$tar $tarfile $distrobase/src/nvec_parhyp/CMakeLists.txt
$tar $tarfile $distrobase/src/nvec_parhyp/nvector_parhyp.c

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

$tar $tarfile $distrobase/src/nvec_petsc/README
$tar $tarfile $distrobase/src/nvec_petsc/CMakeLists.txt
$tar $tarfile $distrobase/src/nvec_petsc/nvector_petsc.c

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

$tar $tarfile $distrobase/src/nvec_openmp/README
$tar $tarfile $distrobase/src/nvec_openmp/CMakeLists.txt
$tar $tarfile $distrobase/src/nvec_openmp/nvector_openmp.c
$tar $tarfile $distrobase/src/nvec_openmp/fnvector_openmp.c
$tar $tarfile $distrobase/src/nvec_openmp/fnvector_openmp.h

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

$tar $tarfile $distrobase/src/nvec_pthreads/README
$tar $tarfile $distrobase/src/nvec_pthreads/CMakeLists.txt
$tar $tarfile $distrobase/src/nvec_pthreads/nvector_pthreads.c
$tar $tarfile $distrobase/src/nvec_pthreads/fnvector_pthreads.c
$tar $tarfile $distrobase/src/nvec_pthreads/fnvector_pthreads.h

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

$tar $tarfile $distrobase/examples/nvector/serial/test_nvector_serial.c
$tar $tarfile $distrobase/examples/nvector/serial/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/parallel/test_nvector_mpi.c
$tar $tarfile $distrobase/examples/nvector/parallel/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/parhyp/test_nvector_parhyp.c
$tar $tarfile $distrobase/examples/nvector/parhyp/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/petsc/test_nvector_petsc.c
$tar $tarfile $distrobase/examples/nvector/petsc/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/C_openmp/test_nvector_openmp.c
$tar $tarfile $distrobase/examples/nvector/C_openmp/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/pthreads/test_nvector_pthreads.c
$tar $tarfile $distrobase/examples/nvector/pthreads/CMakeLists.txt
$tar $tarfile $distrobase/examples/nvector/test_nvector.c
$tar $tarfile $distrobase/examples/nvector/test_nvector.h

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_F77_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parhyp_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_petsc_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_F77_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_openmp_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_openmp_F77_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_pthreads_C_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_pthreads_F77_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_serial_F90_ex.in
$tar $tarfile $distrobase/examples/templates/cmakelists_parallel_F90_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_F77_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parhyp_C_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_F77_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_serial_CXX_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_openmp_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_openmp_F77_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_pthreads_C_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_pthreads_F77_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_serial_F90_ex.in
$tar $tarfile $distrobase/examples/templates/makefile_parallel_F90_ex.in

# 3/3/2015:LEBanks - Don't add to release yet. Many tests will fail, which can be confusing to users
#echo "   --- Add regression test files to $tarfile"
#$tar $tarfile $distrobase/test/testRunner
#$tar $tarfile $distrobase/test/answers/test_nvector_mpi
#$tar $tarfile $distrobase/test/answers/test_nvector_mpi_1000_0
#$tar $tarfile $distrobase/test/answers/test_nvector_mpi_4
#$tar $tarfile $distrobase/test/answers/test_nvector_mpi_4_1000_0
#$tar $tarfile $distrobase/test/answers/test_nvector_openmp_10000_1_0
#$tar $tarfile $distrobase/test/answers/test_nvector_openmp_10000_2_0
#$tar $tarfile $distrobase/test/answers/test_nvector_openmp_10000_4_0
#$tar $tarfile $distrobase/test/answers/test_nvector_openmp_1000_1_0
#$tar $tarfile $distrobase/test/answers/test_nvector_openmp_1000_2_0
#$tar $tarfile $distrobase/test/answers/test_nvector_openmp_1000_4_0
#$tar $tarfile $distrobase/test/answers/test_nvector_pthreads_10000_1_0
#$tar $tarfile $distrobase/test/answers/test_nvector_pthreads_10000_2_0
#$tar $tarfile $distrobase/test/answers/test_nvector_pthreads_10000_4_0
#$tar $tarfile $distrobase/test/answers/test_nvector_pthreads_1000_1_0
#$tar $tarfile $distrobase/test/answers/test_nvector_pthreads_1000_2_0
#$tar $tarfile $distrobase/test/answers/test_nvector_pthreads_1000_4_0
#$tar $tarfile $distrobase/test/answers/test_nvector_serial_1000_0
#$tar $tarfile $distrobase/test/answers/test_nvector_serial_10000_0


