CPUCC    = g++
GPUCC    = nvcc
SDIR     = .
ISCL     = ../../libscl_float/gpp
LSCL     = ../../libscl_float/gpp
ICUDA    = /usr/local/cuda/include
LCUDA    = /usr/local/cuda/lib
CFLAGS   = -O -c -I$(SDIR) -I$(ISCL) -I$(ICUDA)
LFLAGS   = -L$(LCUDA) -lcuda -lcudart -lcublas -L$(LSCL) -lscl -lm 

OBJECTS  = corrXdev.o

PROGRAMS = corrX

LIBRARIES = libscl.a

all : $(LIBRARIES) $(PROGRAMS) 

libscl.a :
	make -C $(LSCL)

corrX : corrX.o $(OBJECTS) $(LIBRARIES)
	$(CPUCC) -o corrX corrX.o $(OBJECTS) $(LFLAGS) 

corrX.o : $(SDIR)/corrX.cpp
	$(CPUCC) $(CFLAGS) $(SDIR)/corrX.cpp

corrXdev.o : $(SDIR)/corrXdev.cu 
	$(GPUCC) $(CFLAGS) $(SDIR)/corrXdev.cu

clean :
	make -C $(LSCL) clean
	rm -f *.o
	rm -f core core.*

veryclean :
	make -C $(LSCL) veryclean
	rm -f *.o
	rm -f core core.*
	rm -f $(PROGRAMS)

dirclean :
	rm -f *.o
	rm -f core core.*
	rm -f $(PROGRAMS)
