summaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/CP/common/mk
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2010-07-15 18:09:46 -0800
committerTor Aamodt <[email protected]>2010-07-15 18:09:46 -0800
commit69f2911e04ffb1b19eef1fafb8c040af271f656e (patch)
tree231d3b6bdc3a202f7c255bfcf7bf2c36e32cee9e /benchmarks/CUDA/CP/common/mk
creating branch for adding support for CUDA 3.x and Fermi
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 6829]
Diffstat (limited to 'benchmarks/CUDA/CP/common/mk')
-rw-r--r--benchmarks/CUDA/CP/common/mk/common.mk51
-rw-r--r--benchmarks/CUDA/CP/common/mk/cuda.mk17
-rw-r--r--benchmarks/CUDA/CP/common/mk/cuda_rules.mk30
-rw-r--r--benchmarks/CUDA/CP/common/mk/rules.mk48
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 $@