#!/bin/sh
# Copyright 1998-2019 Lawrence Livermore National Security, LLC and other
# HYPRE Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

INTERNAL_HEADER=_hypre_struct_mv.h

#===========================================================================
# Include guards and other includes
#===========================================================================

cat > $INTERNAL_HEADER <<@

/*** DO NOT EDIT THIS FILE DIRECTLY (use 'headers' to generate) ***/


#ifndef hypre_STRUCT_MV_HEADER
#define hypre_STRUCT_MV_HEADER

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#include "HYPRE_struct_mv.h"
#include "_hypre_utilities.h"

@


cat >> $INTERNAL_HEADER <<@
#if defined(HYPRE_USING_RAJA)
@

cat boxloop_raja.h                >> $INTERNAL_HEADER

cat >> $INTERNAL_HEADER <<@
#elif defined(HYPRE_USING_KOKKOS)
@

cat boxloop_kokkos.h              >> $INTERNAL_HEADER

cat >> $INTERNAL_HEADER <<@
#elif defined(HYPRE_USING_CUDA)
@

cat boxloop_cuda.h                >> $INTERNAL_HEADER

cat >> $INTERNAL_HEADER <<@
#elif defined(HYPRE_USING_DEVICE_OPENMP)
@
cat boxloop_omp45.h                >> $INTERNAL_HEADER

cat >> $INTERNAL_HEADER <<@
#else
@

cat boxloop.h                     >> $INTERNAL_HEADER

cat >> $INTERNAL_HEADER <<@
#endif
@

cat >> $INTERNAL_HEADER <<@
#ifdef __cplusplus
extern "C" {
#endif
@

#===========================================================================
# Structures and prototypes
#===========================================================================

cat box.h                  >> $INTERNAL_HEADER  
cat assumed_part.h         >> $INTERNAL_HEADER
cat box_manager.h          >> $INTERNAL_HEADER
cat struct_grid.h          >> $INTERNAL_HEADER  
cat struct_stencil.h       >> $INTERNAL_HEADER  
cat struct_communication.h >> $INTERNAL_HEADER  
cat computation.h          >> $INTERNAL_HEADER  
cat struct_matrix.h        >> $INTERNAL_HEADER  
cat struct_vector.h        >> $INTERNAL_HEADER  

cat protos.h               >> $INTERNAL_HEADER

#===========================================================================
# Include guards
#===========================================================================

cat >> $INTERNAL_HEADER <<@

#ifdef __cplusplus
}
#endif

#endif

@

