DEBUG=-g
#MIC=-mmic
OMP=-qopenmp

# ITAC with static libraries
#EXE_POST=ITC
#EXE_POST=ITCUser
#EXE_POST=AXE

#ITAC_INC=-DITC -I$(VT_ROOT)/include
#ITAC_LIB=-trace
#TCOLLECT=-tcollect
#AXE_CFLAGS=-DVTUNE -I$(VTUNE_AMPLIFIER_XE_2013_DIR)/include
#AXE_LDFLAGS= -L$(VTUNE_AMPLIFIER_XE_2013_DIR)/lib64/ -littnotify

######### IMPI with icc and openmp
CC=mpiicx
#CC=icx
#CFLAGS= -DTIMING_SYS -O3
CFLAGS= -DTIMING_SYS -DUSE_MPI -O3 -xHOST
#CFLAGS=  -DUSE_MPI -O3 $(ITAC_INC) $(TCOLLECT) $(AXE_CFLAGS) 
LDFLAGS= $(MIC) $(OMP) $(ITAC_LIB) -O3             

######### IMPI (or other) with gcc and openmp
#CC=mpicc
#CFLAGS= -DVTAPI -I$(VT_ROOT)/include -DTIMING_SYS -DVTAPI -I$(VT_ROOT)/include -DTIMING_SYS -DUSE_MPI -fopenmp -O3
#LDFLAGS= -trace -trace -fopenmp

######### icc with just OpenMP
#CC=icc
#CFLAGS= -DVTAPI -I$(VT_ROOT)/include -DTIMING_SYS -DVTAPI -I$(VT_ROOT)/include -DTIMING_SYS -openmp -O3
#CFLAGS= -DVTAPI -I$(VT_ROOT)/include -DTIMING_SYS -DVTAPI -I$(VT_ROOT)/include -DTIMING_SYS -openmp -O2
#LDFLAGS= -trace -trace -openmp

CFLAGS += $(DEBUG) $(MIC) $(OMP)
LDFLAGS+= $(DEBUG) $(MIC) $(OMP)

LIB=$(AXE_LDFLAGS)

##############################################################

OBJ=poisson.o parameter.o timer.o grid.o compute.o _aux.o comm.o

EXE=poisson$(EXE_POST).x

$(EXE): $(OBJ)
	$(CC) -o $(EXE) $(LDFLAGS) $(OBJ) $(LIB)

.SUFFIXES:.c.o

.c.o:
	$(CC) -c $(CFLAGS) $<
clean:
	rm -f $(OBJ) $(EXE)
