diff options
Diffstat (limited to 'benchmarks/CUDA/CP/common/mk')
| -rw-r--r-- | benchmarks/CUDA/CP/common/mk/common.mk | 51 | ||||
| -rw-r--r-- | benchmarks/CUDA/CP/common/mk/cuda.mk | 17 | ||||
| -rw-r--r-- | benchmarks/CUDA/CP/common/mk/cuda_rules.mk | 30 | ||||
| -rw-r--r-- | benchmarks/CUDA/CP/common/mk/rules.mk | 48 |
4 files changed, 146 insertions, 0 deletions
diff --git a/benchmarks/CUDA/CP/common/mk/common.mk b/benchmarks/CUDA/CP/common/mk/common.mk new file mode 100644 index 0000000..93c76c0 --- /dev/null +++ b/benchmarks/CUDA/CP/common/mk/common.mk @@ -0,0 +1,51 @@ +# (c) 2007 The Board of Trustees of the University of Illinois. + +# Definitions common to all makefiles + +######################################## +# Environment variable check +# +# The environment variables BUILDDIR, SRCDIR, and PARBOIL_ROOT +# should be set on the command line to `make'. +######################################## + +ifeq ("$(SRCDIR)", "") +$(error $$SRCDIR is not set) +endif + +ifeq ("$(PARBOIL_ROOT)", "") +$(error $$PARBOIL_ROOT is not set) +endif + +######################################## +# Variables +######################################## + +# Programs +CC=gcc +CXX=g++ +AR=ar +RANLIB=ranlib + +# Command line options +INCLUDEFLAGS=-I$(CUDAHOME)/include -I$(PARBOIL_ROOT)/common/include +CFLAGS=$(GCCSTD) $(INCLUDEFLAGS) -g $(EXTRA_CFLAGS) +CXXFLAGS=$(INCLUDEFLAGS) -g $(EXTRA_CXXFLAGS) +LDFLAGS=-L$(PARBOIL_ROOT)/common/lib $(EXTRA_LDFLAGS) +LIBS=-lparboil $(EXTRA_LIBS) + +# Pass an extra source language option to GCC +ifeq ("$(CC)","gcc") +GCCSTD=-std=gnu99 +endif + + +######################################## +# Functions +######################################## + +# Add BUILDDIR as a prefix to each element of $1 +INBUILDDIR=$(addprefix $(BUILDDIR)/,$(1)) + +# Add SRCDIR as a prefix to each element of $1 +INSRCDIR=$(addprefix $(SRCDIR)/,$(1)) diff --git a/benchmarks/CUDA/CP/common/mk/cuda.mk b/benchmarks/CUDA/CP/common/mk/cuda.mk new file mode 100644 index 0000000..38f0ba2 --- /dev/null +++ b/benchmarks/CUDA/CP/common/mk/cuda.mk @@ -0,0 +1,17 @@ +# (c) 2007 The Board of Trustees of the University of Illinois. + +# Cuda-related definitions common to all benchmarks + +######################################## +# Variables +######################################## + +# Programs +CUDACC=nvcc +# Paths +# Flags +CUDACFLAGS=$(INCLUDEFLAGS) -g -Xcompiler "-m32" $(EXTRA_CUDACFLAGS) +CUDALDFLAGS=$(LDFLAGS) -Xcompiler "-m32" \ + -L$(GPGPUSIM_ROOT)/lib/ \ + -L$(PARBOIL_ROOT)/common/src $(EXTRA_CUDALDFLAGS) +CUDALIBS=-lcudart $(LIBS) -lm -lz -lGL diff --git a/benchmarks/CUDA/CP/common/mk/cuda_rules.mk b/benchmarks/CUDA/CP/common/mk/cuda_rules.mk new file mode 100644 index 0000000..ce2f5da --- /dev/null +++ b/benchmarks/CUDA/CP/common/mk/cuda_rules.mk @@ -0,0 +1,30 @@ +# (c) 2007 The Board of Trustees of the University of Illinois. + +# Cuda-related rules common to all benchmarks + +######################################## +# Derived variables +######################################## + +CUDAOBJS = $(call INBUILDDIR,$(SRCDIR_CUDAOBJS)) + +######################################## +# Rules +######################################## + +ifeq ("$(LINK_MODE)", "CUDA") +$(BIN) : $(OBJS) $(CUDAOBJS) + $(CUDACC) $(CUDALDFLAGS) $^ -o $@ $(CUDALIBS) +endif + +$(BUILDDIR)/%.o : $(SRCDIR)/%.cu + mkdir -p $(BUILDDIR) + $(CUDACC) $(CUDACFLAGS) -c $< -o $@ + +$(BUILDDIR)/%.ptx : $(SRCDIR)/%.cu + mkdir -p $(BUILDDIR) + $(CUDACC) $(CUDACFLAGS) -ptx $< -o $@ + +$(BUILDDIR)/%.cubin : $(SRCDIR)/%.cu + mkdir -p $(BUILDDIR) + $(CUDACC) $(CUDACFLAGS) -cubin $< -o $@ diff --git a/benchmarks/CUDA/CP/common/mk/rules.mk b/benchmarks/CUDA/CP/common/mk/rules.mk new file mode 100644 index 0000000..0e6304d --- /dev/null +++ b/benchmarks/CUDA/CP/common/mk/rules.mk @@ -0,0 +1,48 @@ +# (c) 2007 The Board of Trustees of the University of Illinois. + +# Rules common to all makefiles + +######################################## +# Environment variable check +######################################## + +# The second-last directory in the $(BUILDDIR) path +# must have the name "build". This reduces the risk of terrible +# accidents if paths are not set up correctly. +ifeq ("$(notdir $(BUILDDIR))", "") +$(error $$BUILDDIR is not set correctly) +endif + +ifneq ("$(notdir $(patsubst %/,%,$(dir $(BUILDDIR))))", "build") +$(error $$BUILDDIR is not set correctly) +endif + +######################################## +# Derived variables +######################################## + +OBJS = $(call INBUILDDIR,$(SRCDIR_OBJS)) + +######################################## +# Rules +######################################## + +clean : + rm -f $(BUILDDIR)/* + if [ -d $(BUILDDIR) ]; then rmdir $(BUILDDIR); fi + +ifeq ("$(LINK_MODE)","C") +$(BIN) : $(OBJS) + $(CC) $(LDFLAGS) $^ -o $@ $(LIBS) +endif + +$(BUILDDIR) : + mkdir $(BUILDDIR) + +$(BUILDDIR)/%.o : $(SRCDIR)/%.c + mkdir -p $(BUILDDIR) + $(CC) $(CFLAGS) -c $< -o $@ + +$(BUILDDIR)/%.o : $(SRCDIR)/%.cc + mkdir -p $(BUILDDIR) + $(CXX) $(CXXFLAGS) -c $< -o $@ |
