head	1.1;
access;
symbols;
locks
	johns:1.1; strict;
comment	@# @;


1.1
date	2010.06.23.20.11.57;	author johns;	state Exp;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@# CUDA makefile

default:
	@@echo "Choose a build target:"
	@@echo "------------------------------------------------"
	@@echo "linux-nvidia-32  NVIDIA GPUs                    "
	@@echo "linux-nvidia-64  NVIDIA GPUs                    "

#CUDAHOME     = /usr/local/cuda
#CUDAHOME    = /usr/local/encap/cuda-2.3
CUDAHOME    = /usr/local/encap/cuda-3.0
CUDACC      = $(CUDAHOME)/bin/nvcc
CUDAINCS    = -I. -I$(CUDAHOME)/common/inc -DUNIX

linux-nvidia-icc-32:
	$(MAKE) all \
	"OPENCLINC  = -I/usr/include/CL/inc" \
	"OPENCLLIBS = -lOpenCL" \
	"CUDACCFLAGS = --machine 32 -ftz=true -prec-sqrt=false -prec-div=false --ptxas-options=-v -O3 $(CUDAINCS)" \
	"CUDALIBS = -L$(CUDAHOME)/lib -lcudart" \
	"CC = /usr/local/bin/icc" \
	"CFLAGS = -axW -fno-exceptions -fomit-frame-pointer -fno-math-errno -no-prec-sqrt -pc32 -vec-report=3 -O3 -msse3" \
	"CXX = /usr/local/bin/icpc" \
	"CXXFLAGS = -axW -fno-exceptions -fomit-frame-pointer -fno-math-errno -no-prec-sqrt -pc32 -vec-report=3 -O3 -msse3" \
	"CXXLFLAGS = -static-libcxa -i-static -lm -Wl,-rpath,$(CUDAHOME)/lib"

linux-nvidia-32:
	$(MAKE) all \
	"OPENCLINC  = -I/usr/include/CL/inc" \
	"OPENCLLIBS = -lOpenCL" \
	"CUDACCFLAGS = --machine 32 -ftz=true -prec-sqrt=false -prec-div=false --ptxas-options=-v -O3 $(CUDAINCS)" \
	"CUDALIBS = -L$(CUDAHOME)/lib -lcudart" \
	"CC = gcc" \
	"CFLAGS = -m32 -O -g" \
	"CXX = g++" \
	"CXXFLAGS = -m32 -O -g" \
	"CXXLFLAGS = -lm -Wl,-rpath,$(CUDAHOME)/lib"

linux-nvidia-64:
	$(MAKE) all \
	"OPENCLINC  = -I/usr/include/CL/inc" \
	"OPENCLLIBS = -lOpenCL" \
	"CUDACCFLAGS = --machine 64 -ftz=true -prec-sqrt=false -prec-div=false --ptxas-options=-v -O3 $(CUDAINCS)" \
	"CUDALIBS = -L$(CUDAHOME)/lib -lcudart" \
	"CC = gcc" \
	"CFLAGS = -m64 -O -g" \
	"CXX = g++" \
	"CXXFLAGS = -m64 -O -g" \
	"CXXLFLAGS = -lm -Wl,-rpath,$(CUDAHOME)/lib64"

CUDAOBJS = main.o
OBJS     = WKFThreads.o WKFUtils.o temp.o cpukerns.o
BINS     = mdh

all: $(BINS)

.SUFFIXES: .C .c .cu ..c .i .o

.cu.o:
	$(CUDACC) $(CUDACCFLAGS) -c $<
.c.o:
	$(CC) $(CFLAGS) $(OPENCLINC) -c $<
.C.o:
	$(CXX) $(CXXFLAGS) $(OPENCLINC) -c $<

mdh: $(CUDAOBJS) $(OBJS)
	$(CXX) $(CXXFLAGS) $(OPENCLINC) $(CUDAOBJS) $(OBJS) -o $@@ $(CXXLFLAGS) $(OPENCLLIBS) $(CUDALIBS)

clean:	
	rm -f $(CUDAOBJS) $(OBJS) $(BINS) *.cubin *.ptx *.linkinfo

@
