# File: Makefile
# 
# Makefile for simsaxsGPU
#
# Description: makefile for simsaxsGPU.
#
# Author: Marc Sosnick
# Date: January 5, 2010

# compiler (use Nvidia CUDA compiler)
CXX = /usr/local/cuda/bin/nvcc

# object filenames of any .cpp files
CC_OBJS = ../util/timing.o ../util/dataio.o do_saxs.o saxslibGPU.o

# name of executable file
PROGNAME = saxsGPU

# flags for compile phase
# CXXFLAGS = -I/usr/local/cuda/include -I/Developer/GPU\ Computing/C/common/inc -I/Developer/GPU\ Computing/shared/inc
CXXFLAGS = -I/usr/local/cuda/include -Iinc -I.

# flags for link phase
# LFLAGS = -L/usr/local/cuda/lib64 -L/usr/lib64 -L/usr/lib -L/usr/lib64 -lcuda -lcudart
LFLAGS = -L/usr/local/cuda/lib64 -L/usr/lib64 -lcuda -lcudart

${PROGNAME}: ${CC_OBJS} ${CU_OBJS}
	${CXX} -o $(PROGNAME) ${LFLAGS} ${CC_OBJS} ${CU_OBJS}

do_saxs.o: do_saxs.cpp
	${CXX} $(CXXFLAGS) -c -o do_saxs.o do_saxs.cpp

saxslibGPU.o: saxslibGPU.cu
	${CXX} $(CXXFLAGS) -c -o saxslibGPU.o saxslibGPU.cu -arch sm_13

%.o: %.cu %.h
	${CXX} $(CXXFLAGS) -c -o $@ $<

.PHONY: clean
clean:
	rm *.o
	rm $(PROGNAME)