PROGRAM = ../oth_cuda

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

CC      = nvcc
CFLAGS  = -O2 -I../include
LDFLAGS = -O2
LIBS    =

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

.SUFFIXES: .cu

planewaveEx.o: ../sol/planewaveEx.c
	$(CC) -c $(CFLAGS) $?
planewaveEy.o: ../sol/planewaveEy.c
	$(CC) -c $(CFLAGS) $?
planewaveEz.o: ../sol/planewaveEz.c
	$(CC) -c $(CFLAGS) $?
outputPloss.o: ../sol/outputPloss.c
	$(CC) -c $(CFLAGS) $?
calcFar1d.o: ../sol/calcFar1d.c
	$(CC) -c $(CFLAGS) $?
calcFar2d.o: ../sol/calcFar2d.c
	$(CC) -c $(CFLAGS) $?
setup.o: ../sol/setup.c
	$(CC) -c $(CFLAGS) $?
setupMaterial.o: ../sol/setupMaterial.c
	$(CC) -c $(CFLAGS) $?

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

clean:
	rm -f *.o
