PROGRAM = ../oth_cuda_mpi.exe

#MPIOPT  = -D_MPI -I../../../../progra~2/micros~1/MPI/Include
MPIOPT  = -D_MPI -I"C:\Program Files (x86)\Microsoft SDKs\MPI\Include"
#MPIOPT  = -D_MPI -I@$(MSMPI_INC)

OBJS    =          \
Main.obj           \
info_gpu_mpi.obj   \
rank2device.obj    \
bicgstab.obj       \
copyV.obj          \
comm2.obj          \
../cuda/memory_gpu.obj     \
../cuda/solve.obj          \
../cuda/pbcX.obj           \
../cuda/pbcY.obj           \
../cuda/pbcZ.obj           \
../cuda/prodmv.obj         \
../cuda/matrixEx.obj       \
../cuda/matrixEy.obj       \
../cuda/matrixEz.obj       \
../cuda/prodmvEx.obj       \
../cuda/prodmvEy.obj       \
../cuda/prodmvEz.obj       \
../cuda/blas1c.obj         \
../cuda/check_gpu.obj      \
../cuda/cuda_memory.obj    \
../mpi/setupIndex_mpi.obj \
../mpi/setupBg_mpi.obj    \
../mpi/copyE.obj          \
../mpi/comm.obj           \
../sol/input_data.obj     \
../sol/input2.obj         \
../sol/monitor.obj        \
../sol/memory.obj         \
../sol/setup.obj          \
../sol/arrayIndex.obj     \
../sol/setupMaterial.obj  \
../sol/setup2.obj         \
../sol/rhs.obj            \
../sol/planewaveEx.obj    \
../sol/planewaveEy.obj    \
../sol/planewaveEz.obj    \
../sol/planewave.obj      \
../sol/eyee.obj           \
../sol/hyee.obj           \
../sol/cyee.obj           \
../sol/outputChars.obj    \
../sol/outputZin.obj      \
../sol/outputSpara.obj    \
../sol/outputCoupling.obj \
../sol/outputCross.obj    \
../sol/outputPloss.obj    \
../sol/ingeometry.obj     \
../sol/geomlines.obj      \
../sol/farfield.obj       \
../sol/writeout.obj       \
../sol/utils.obj          \
../sol/cputime.obj        \
../sol/plot3dGeom.obj     \
../sol/ev3d.obj

CC      = nvcc.exe
CFLAGS  = -O2 -I../include -allow-unsupported-compiler -Xcompiler "/wd4819 /wd4324 /W4"
LDFLAGS = -O2
LIBS    = msmpi.lib

$(PROGRAM): $(OBJS)
	@echo "Loading $(PROGRAM) ... "
	@$(CC) -o $(PROGRAM) $(LDFLAGS) $(OBJS) $(LIBS)

.SUFFIXES: .cu

comm2.obj:
	$(CC) -c $(CFLAGS) $(MPIOPT) $?

.cu.obj:
	$(CC) -c $(CFLAGS) $<

clean:
	del *.obj
