-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
65 lines (49 loc) · 1.87 KB
/
Makefile
File metadata and controls
65 lines (49 loc) · 1.87 KB
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
ifndef CCI
$(error Export path to CCI in variable named CCI)
endif
ifndef MPICC
ifndef MPI
$(error Export path to MPI in variable named MPI)
endif
MPICC = $(MPI)/bin/mpicc
endif
ifndef CUDA_HOME
$(warning CUDA_HOME not defined. Removing gpu_caching_iod target from 'ALL'.)
$(warning Export path to CUDA installation in variable named CUDA_HOME to enable.)
else
GPU_CACHING_IOD=gpu_caching_iod
endif
CC = gcc
NVCC = $(CUDA_HOME)/bin/nvcc
CFLAGS = -g -O0 -std=c99 -D_XOPEN_SOURCE=600 -Wall -pedantic -I$(CCI)/include -fPIC
NVCFLAGS = -g -O0 -Xcompiler -std=c99 -D_XOPEN_SOURCE=600 -Xcompiler -Wall -Xcompiler -pedantic -I$(CCI)/include -Xcompiler -fPIC
LDFLAGS = -dynamic -L$(CCI)/lib -lcci -lpthread -Wl,-rpath,$(CCI)/lib
NVLDFLAGS = -L$(CCI)/lib -lcci -lpthread -Xlinker -rpath=$(CCI)/lib
OBJS = io.o
C_OBJS = iod.o
C_TARGETS = iod
MPI_OBJS = test.o
MPI_TARGETS = test
CACHING_IOD_OBJS = caching_iod.o
GPU_CACHING_IOD_OBJS = gpu_caching_iod.o
ALL:$(OBJS) $(C_OBJS) $(MPI_OBJS) $(C_TARGETS) $(MPI_TARGETS) caching_iod $(GPU_CACHING_IOD)
$(OBJS):%.o:%.c io.h
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
$(C_OBJS):%.o:%.c io.h
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
$(MPI_OBJS):%.o:%.c io.h
$(MPICC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
$(CACHING_IOD_OBJS):%.o:%.c io.h
$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
$(GPU_CACHING_IOD_OBJS):gpu_%.o:%.c io.h
$(NVCC) $(NVCFLAGS) $(CPPFLAGS) -c $< -o $@
$(C_TARGETS):$(C_OBJS) $(OBJS)
$(CC) $(OBJS) $(C_OBJS) $(LDFLAGS) -o $@
$(MPI_TARGETS):$(MPI_OBJS) $(OBJS)
$(MPICC) $(OBJS) $(MPI_OBJS) $(LDFLAGS) -o $@
caching_iod: $(CACHING_IOD_OBJS) $(OBJS)
$(CC) $(OBJS) $(CACHING_IOD_OBJS) $(LDFLAGS) -o $@
gpu_caching_iod: $(GPU_CACHING_IOD_OBJS) $(OBJS)
$(NVCC) $(OBJS) $(GPU_CACHING_IOD_OBJS) $(NVLDFLAGS) -o $@
clean:
rm -rf $(C_TARGETS) $(MPI_TARGETS) caching_iod gpu_caching_iod $(C_OBJS) $(MPI_OBJS) $(CACHING_IOD_OBJS) $(GPU_CACHING_IOD_OBJS) $(OBJS) *.dSYM