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


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


desc
@@


1.1
log
@Initial revision
@
text
@# CUDA makefile

default:
	@@echo "Choose a build target:"
	@@echo "-------------------------------------------"
	@@echo "linux-ati"
	@@echo "linux-cell"
	@@echo "linux-nvidia"

linux-ati:
	$(MAKE) all \
	"BINS = clenergy" \
	"OPENCLINC  = -I/lusers/tcbg/opencl/ati-stream-sdk-v2.0-beta4-lnx32/include" \
	"OPENCLLIBS = -L/lusers/tcbg/opencl/ati-stream-sdk-v2.0-beta4-lnx32/lib/x86 -lOpenCL" \
	"CC = gcc" \
	"CFLAGS = -m32 -O -g -DBUILD_STANDALONE" \
	"CXX = g++" \
	"CXXFLAGS = -m32 -O -g -DBUILD_STANDALONE" \
	"CXXLFLAGS = -lm"

linux-cell:
	$(MAKE) all \
	"BINS = clenergy" \
	"OPENCLINC  = -I/usr/include/CL/inc" \
	"OPENCLLIBS = -lCL" \
	"CC = gcc" \
	"CFLAGS = -m32 -O -g -DBUILD_STANDALONE" \
	"CXX = g++" \
	"CXXFLAGS = -m32 -O -g -DBUILD_STANDALONE" \
	"CXXLFLAGS = -lm"

linux-nvidia:
	$(MAKE) all \
	"BINS = cuenergy clenergy" \
	"CUDAOBJS = cuenergy.o" \
	"OPENCLINC  = -I/usr/include/CL/inc" \
	"OPENCLLIBS = -lOpenCL" \
	"CC = gcc" \
	"CFLAGS = -m64 -O -g -DBUILD_STANDALONE" \
	"CXX = g++" \
	"CXXFLAGS = -m64 -O -g -DBUILD_STANDALONE" \
	"CXXLFLAGS = -lm"

#CUDAHOME     = /usr/local/cuda
CUDAHOME    = /usr/local/encap/cuda-2.3
CUDACC      = $(CUDAHOME)/bin/nvcc
CUDAINCS    = -I. -I$(CUDAHOME)/common/inc -DUNIX
CUDACCFLAGS = --machine 64 --ptxas-options=-v -O3 -Xcompiler $(CUDAINCS)
CUDALIBS    = -L$(CUDAHOME)/lib64 -lcudart

CUDAOBJS = cuenergy.o
OPENCLOBJS = clenergy.o
OBJS     = WKFUtils.o
BINS     = cuenergy clenergy

all: $(BINS)

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

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

cuenergy: $(CUDAOBJS) $(OBJS)
	$(CXX) $(CXXFLAGS) $(CUDAOBJS) $(OBJS) -o $@@ $(CXXLFLAGS) $(CUDALIBS)

clenergy: $(OPENCLOBJS) $(OBJS)
	$(CXX) $(CXXFLAGS) $(OPENCLOBJS) $(OBJS) -o $@@ $(CXXLFLAGS) $(OPENCLLIBS) 

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

@
