#### Override object directories to separate similar architectures.
OBJDIR = $(FYS_PLATFORM)$(POSTFIX)
BINDIR = $(OBJDIR)
$(info FYS_PLATFORM detected - building for CAMd/CINF/Niflheim with OBJDIR=$(OBJDIR).)

#### Compilers and compilation flags

# Uncomment to enable OpenMP support
#OPENMPFLAGS = -openmp

MKL_CFLAGS = -DASAP_MKL -I $(MKLROOT)/include
MKL_LDFLAGS = -lmkl_rt

# C and C++ compiler and compilation flags.  You enable OpenMP support here.
# OpenMP is currently only supported in the parallel version.
#CC=icc
#CXX=icpc
#CFLAGS = -O3 -g -xHost -fPIC $(MKL_CFLAGS)

CC=gcc
CXX=g++
CFLAGS = -O3 -g -march=native -fPIC -ffast-math -Wall -Wno-sign-compare -Wno-unused-function $(MKL_CFLAGS)

CXXFLAGS = $(CFLAGS)
LIBS = $(MKL_LDFLAGS) -lsvml -lm 

# Compilation flags for parallel simulations
MPICFLAGS =  $(CFLAGS) $(OPENMPFLAGS)
MPICXXFLAGS = $(MPICFLAGS)
EXTRA_LIBS =  $(OPENMPFLAGS)

# Enable PARPOSTFIX if the compilation flags for parallel and serial code is different.
PARPOSTFIX = -par

# Extra flags to silence compiler warnings in Interface and ParallelInterface
#IFACEFLAGS = -Wno-write-strings -Wno-strict-aliasing

# Extra flags to silence compiler warning for the Brenner potential
#BRENNERCFLAGS =  -Wno-strict-aliasing -Wno-unused


#### Compilation flags and command that may need to be changed on special architectures.
#### The values in the comments are a good starting point.

# Compilation command for linking shared object
#CXXSHARED = $(CXX) -shared

# Libraries for linkage.  LIBS is for both serial and parallel version, EXTRA_LIBS is for parallel only.
#LIBS = -lm

# Dependency generation
#DEPENDFLAG = -MM
#DEPENDCLEAN = sed -e 's@/usr/[^ ]*@@g' | sed -e '/^ *\\ *$$/d'

EXTRA_LIBS = $(MKL_LDFLAGS) -lreadline
