aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'makefile')
-rw-r--r--makefile24
1 files changed, 17 insertions, 7 deletions
diff --git a/makefile b/makefile
index 01a2b8a..26aa1f6 100644
--- a/makefile
+++ b/makefile
@@ -1,13 +1,17 @@
CC := gcc
-CPPFLAGS := -DEXTENDED_PRECISION
-CFLAGS := -Wall
+CPPFLAGS := #-DEXTENDED_PRECISION
+CFLAGS := -Wall -O3 -march=native
LDFLAGS := -lm
+NVCC := nvcc
+NVCFLAGS := -arch=sm_86 -O3 --compiler-options -march=native
+NVLDFLAGS := $(LDFLAGS)
+
SRC_DIR := src
BUILD_DIR := build
OBJ_DIR := $(BUILD_DIR)/objects
-TARGET := fractal-render serial-fractals shared-fractals
+TARGET := fractal-render serial-fractals shared-fractals cuda-fractals
SRCS := $(wildcard $(SRC_DIR)/*.c)
OBJS := $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRCS))
@@ -20,18 +24,24 @@ all: $(addprefix $(BUILD_DIR)/, $(TARGET))
# Programs #
##############
-$(BUILD_DIR)/fractal-render: $(OBJ_DIR)/fractal_render.o $(OBJ_DIR)/grids.o
+$(BUILD_DIR)/fractal-render: $(OBJ_DIR)/grids.o $(OBJ_DIR)/fractal_render.o
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
-$(BUILD_DIR)/serial-fractals: $(OBJ_DIR)/fractals.o $(OBJ_DIR)/serial-fractals.o $(OBJ_DIR)/grids.o
+$(BUILD_DIR)/serial-fractals: $(OBJ_DIR)/serial-fractals.o $(OBJ_DIR)/grids.o $(OBJ_DIR)/fractals.o
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
-$(BUILD_DIR)/shared-fractals: $(OBJ_DIR)/fractals.o $(OBJ_DIR)/shared-fractals.o $(OBJ_DIR)/grids.o
+$(BUILD_DIR)/shared-fractals: $(OBJ_DIR)/shared-fractals.o $(OBJ_DIR)/grids.o $(OBJ_DIR)/fractals.o
$(CC) $(CFLAGS) -fopenmp $^ -o $@ $(LDFLAGS)
-$(OBJ_DIR)/shared-fractals.o: $(SRC_DIR)/shared-fractals.c
+$(BUILD_DIR)/cuda-fractals: $(OBJ_DIR)/cuda-fractals.o $(OBJ_DIR)/grids.o $(OBJ_DIR)/fractals.o
+ $(NVCC) $(NVCFLAGS) $^ -o $@ $(NVLDFLAGS)
+
+$(OBJ_DIR)/shared-fractals.o: $(SRC_DIR)/shared-fractals.c | $(OBJ_DIR)
$(CC) $(CPPFLAGS) $(CFLAGS) -fopenmp -c -o $@ $<
+$(OBJ_DIR)/cuda-fractals.o: $(SRC_DIR)/cuda-fractals.cu | $(OBJ_DIR)
+ $(NVCC) $(CPPFLAGS) $(NVCFLAGS) -c -o $@ $<
+
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR)
$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<