-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
68 lines (53 loc) · 1.27 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
SRC_DIR=src
HEADER_DIR=include
OBJ_DIR=obj
# Compilers
CC=gcc
NVCC=nvcc
MPICC=mpicc
# Compilation Flags
CFLAGS=-O3 -I$(HEADER_DIR)
OMPFLAGS=-fopenmp
# Linking Flags
CUDA_LINK_FLAGS=-L/usr/local/cuda/lib64/ -lcuda -lcudart
OMP_LINK_FLAGS=-lgomp
LDFLAGS=-lm $(OMP_LINK_FLAGS) $(CUDA_LINK_FLAGS)
# Not needed, we link with mpicc and compile main with mpicc as well
MPIFLAGS=$(shell mpicc --showme:compile)
MPI_LINK_FLAGS=$(shell mpicc --showme:link)
SRC= dgif_lib.c \
egif_lib.c \
gif_err.c \
gif_font.c \
gif_hash.c \
gifalloc.c \
openbsd-reallocarray.c \
quantize.c \
gif_io.c \
main.c \
cuda_filters.cu
OBJ= $(OBJ_DIR)/dgif_lib.o \
$(OBJ_DIR)/egif_lib.o \
$(OBJ_DIR)/gif_err.o \
$(OBJ_DIR)/gif_font.o \
$(OBJ_DIR)/gif_hash.o \
$(OBJ_DIR)/gifalloc.o \
$(OBJ_DIR)/openbsd-reallocarray.o \
$(OBJ_DIR)/quantize.o \
$(OBJ_DIR)/gif_io.o \
$(OBJ_DIR)/cuda_filters.o \
$(OBJ_DIR)/main.o
all: $(OBJ_DIR) sobelf
$(OBJ_DIR):
mkdir $(OBJ_DIR)
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c -o $@ $^
$(OBJ_DIR)/cuda_filters.o:$(SRC_DIR)/cuda_filters.cu
$(NVCC) $(CFLAGS) -c -o $@ $^
$(OBJ_DIR)/main.o:$(SRC_DIR)/main.c
$(MPICC) $(CFLAGS) -c -o $@ $^ $(OMPFLAGS)
sobelf:$(OBJ)
$(MPICC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
clean:
rm -f sobelf $(OBJ)
rm -f images/processed/*