/** @file 
 *
 * This is the template for the pio_config.h file, which is created at
 * build-time by cmake.
 */
#ifndef _PIO_CONFIG_
#define _PIO_CONFIG_

/** The major part of the version number. */
#define PIO_VERSION_MAJOR @VERSION_MAJOR@

/** The minor part of the version number. */
#define PIO_VERSION_MINOR @VERSION_MINOR@

/** The patch part of the version number. */
#define PIO_VERSION_PATCH @VERSION_PATCH@

/** Set to non-zero to use native malloc. By defauly the PIO library
 * will use the included bget() package for memory management. */
#define PIO_USE_MALLOC @USE_MALLOC@

/** Set to non-zero to turn on logging. Output may be large. */
#define PIO_ENABLE_LOGGING @ENABLE_LOGGING@

/** Size of MPI_Offset type. */
#define SIZEOF_MPI_OFFSET @SIZEOF_MPI_OFFSET@

/** Size of PIO_Offset type */
#define SIZEOF_PIO_OFFSET @PIO_OFFSET_SIZE@

/** PIO_Offset type */
#define PIO_OFFSET_C_TYPENAME @PIO_OFFSET_C_TYPENAME@

/** PIO_Offset MPI type */
#define PIO_OFFSET @PIO_OFFSET_C_MPITYPENAME@

/** Set to non-zero to dump the decomposition information from PIO programs. */
#define PIO_SAVE_DECOMPS @SAVE_DECOMPS@

/** Set the regex to use to save decomps */
#define PIO_SAVE_DECOMPS_REGEX "@PIO_SAVE_DECOMPS_REGEX@"

/** Set to non-zero to limit the number of non-contiguous regions cached in a single IO process. */
#define PIO_LIMIT_CACHED_IO_REGIONS @LIMIT_CACHED_IO_REGIONS@

/** Maximum number of non-contiguous regions cached in a single IO process. */
#define PIO_MAX_CACHED_IO_REGIONS @PIO_MAX_CACHED_IO_REGIONS@

/** Maximum number of OSTs to be used in a Lustre file syestem. */
#define PIO_MAX_LUSTRE_OSTS @PIO_MAX_LUSTRE_OSTS@

/** Striping unit hint in bytes for a Lustre or GPFS file system. */
#define PIO_STRIPING_UNIT @PIO_STRIPING_UNIT@

/** Extra bytes reserved in the header when creating NetCDF files. */
#define PIO_RESERVED_FILE_HEADER_SIZE @PIO_RESERVED_FILE_HEADER_SIZE@

/** Maximum number of I/O decompositions registered with ADIOS type */
#define PIO_MAX_ADIOS_DECOMPS @PIO_MAX_ADIOS_DECOMPS@

/** Maximum number of cached application steps for ADIOS type */
#define PIO_MAX_CACHED_STEPS_FOR_ADIOS @PIO_MAX_CACHED_STEPS_FOR_ADIOS@

/** Set to 1 if the library is configured to use the PnetCDF library,
 *  0 otherwise */
#define PIO_USE_PNETCDF @PIO_USE_PNETCDF@

/** Set to 1 if the library is configured to use the NetCDF library,
 *  0 otherwise */
#define PIO_USE_NETCDF @PIO_USE_NETCDF@

/** Set to 1 if the library is configured to use the NetCDF4 features,
 *  in the NetCDF library, 0 otherwise */
#define PIO_USE_NETCDF4 @PIO_USE_NETCDF4@

/** Set to 1 if the library is configured to use the ADIOS library,
 *  0 otherwise */
#define PIO_USE_ADIOS @PIO_USE_ADIOS@

/** Set to 1 if the library is configured to use the HDF5 library,
 *  0 otherwise */
#define PIO_USE_HDF5 @PIO_USE_HDF5@

/** Set to 1 if the library is configured to use Micro timing,
 *  0 otherwise */
#define PIO_USE_MICRO_TIMING @USE_MICRO_TIMING@

/** Set to 1 if the library is configured to print I/O statistics,
 *  0 otherwise */
#define PIO_ENABLE_IO_STATS @ENABLE_IO_STATS@

/** Set to 1 if the library is configured to use PnetCDF independent data mode,
 *  0 otherwise */
#define PIO_USE_INDEP_MODE @USE_INDEP_MODE@

#endif /* _PIO_CONFIG_ */
