# Whenever this version string changes, the application is configured
# and rebuilt from scratch
#VERSION = paramganga-15-04-2023
# Edited and tested by Shamim Haque <shamims@iiserb.ac.in> Spandan Sarma <spandan@iiserb.ac.in>

CPP = cpp
FPP = cpp
CC  = icc
CXX = icpc
F90 = ifort

# manually define __AVX512ER__ to enable KNL code branch in thorn Vectors but
# avoid having the compiler check the CPUID and fail during autoconf. This is
# not optimal since compiler auto-vectorized code will only use the common
# subset of AVX512.
# To avoid that one would have to avoid cross-compiling by login into a KNL
# node and compiling with -xMIC-AVX512
CPPFLAGS = -g -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -D__AVX512ER__
FPPFLAGS = -g -traditional
CFLAGS   = -g -traceback -debug all -xCOMMON-AVX512 -axMIC-AVX512 -align -std=gnu99
CXXFLAGS = -g -traceback -debug all -xCOMMON-AVX512 -axMIC-AVX512 -align -std=gnu++11
F90FLAGS = -g -traceback -debug all -xCOMMON-AVX512 -axMIC-AVX512 -align -pad -safe-cray-ptr

LDFLAGS = -rdynamic -xCOMMON-AVX512 -axMIC-AVX512

C_LINE_DIRECTIVES = yes
F_LINE_DIRECTIVES = yes

VECTORISE                = yes
VECTORISE_ALIGNED_ARRAYS = no
VECTORISE_INLINE         = no

DEBUG           = no
CPP_DEBUG_FLAGS = -DCARPET_DEBUG
FPP_DEBUG_FLAGS = -DCARPET_DEBUG
C_DEBUG_FLAGS   = -O0
CXX_DEBUG_FLAGS = -O0
F90_DEBUG_FLAGS = -O0 -check bounds -check format

OPTIMISE           = yes
CPP_OPTIMISE_FLAGS = # -DCARPET_OPTIMISE -DNDEBUG
FPP_OPTIMISE_FLAGS = # -DCARPET_OPTIMISE -DNDEBUG
C_OPTIMISE_FLAGS   = -Ofast
CXX_OPTIMISE_FLAGS = -Ofast
F90_OPTIMISE_FLAGS = -Ofast

CPP_NO_OPTIMISE_FLAGS  =
FPP_NO_OPTIMISE_FLAGS  =
C_NO_OPTIMISE_FLAGS    = -O0
CXX_NO_OPTIMISE_FLAGS  = -O0
CUCC_NO_OPTIMISE_FLAGS =
F90_NO_OPTIMISE_FLAGS  = -O0

PROFILE           = no
CPP_PROFILE_FLAGS =
FPP_PROFILE_FLAGS =
C_PROFILE_FLAGS   = -pg
CXX_PROFILE_FLAGS = -pg
F90_PROFILE_FLAGS = -pg

OPENMP           = yes
CPP_OPENMP_FLAGS = -fopenmp
FPP_OPENMP_FLAGS = -fopenmp
C_OPENMP_FLAGS   = -fopenmp
CXX_OPENMP_FLAGS = -fopenmp
F90_OPENMP_FLAGS = -fopenmp

WARN           = yes
CPP_WARN_FLAGS =
FPP_WARN_FLAGS =
C_WARN_FLAGS   =
CXX_WARN_FLAGS =
F90_WARN_FLAGS =


BLAS_DIR  = NO_BUILD
BLAS_LIBS = -mkl

#HWLOC_DIR        = /opt/ohpc/pub/libs/hwloc/2.1.0
#HWLOC_DIR        = NO_BUILD #/opt/ohpc/pub/libs/hwloc/2.1.0
#HWLOC_EXTRA_LIBS = numa

LAPACK_DIR  = NO_BUILD
LAPACK_LIBS = -mkl

OPENBLAS_DIR  = NO_BUILD
OPENBLAS_LIBS = -mkl

HDF5_DIR = /opt/ohpc/pub/libs/gnu8/hdf5/1.10.5

#BOOST_DIR = /opt/ohpc/pub/libs/gnu8/mpich/boost/1.71.0

GSL_DIR =  /opt/ohpc/pub/libs/gnu8/gsl/2.6

FFTW3_DIR = NO_BUILD
FFTW3_INC_DIRS = /opt/ohpc/pub/compiler/intel/2020_4/mkl/include/fftw
FFTW3_LIBS = -mkl

PAPI_DIR = /opt/ohpc/pub/libs/papi/5.7.0

#PETSC_DIR = /opt/ohpc/pub/libs/gnu8/mpich/petsc/3.12.0
#PETSC_LAPACK_EXTRA_LIBS = -mkl

PTHREADS_DIR = NO_BUILD

#/opt/ohpc/pub/libs/gnu8/hdf5/1.10.5
