-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
80 lines (63 loc) · 2.24 KB
/
Copy pathMakefile
File metadata and controls
80 lines (63 loc) · 2.24 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
include $(HOSTARGS)
#########################################################################################
# Options are SERIAL, OMP, OMPGPU or GPU
#some compiler definitions to sort out
CPUCOMP='"GNU C++ Compiler $(shell g++ --version | head -n 1 | cut -b 5-)"'
GPUCOMP='"NVIDIA C++ Compiler $(shell nvcc --version | tail -n 2 | head -n 1)"'
GITINFO='"$(shell git rev-parse HEAD)"'
GITDIRTY='"$(shell git status -s | grep -v ? | grep -e 'src\/' -e 'inc\/' | wc -l)"'
HOSTNAME='"$(shell hostname)"'
#########################################################################################
OBJECTS = \
obj/spins.o \
obj/neighbourlist.o \
obj/mathfuncs.o \
obj/config.o \
obj/fields.o \
obj/geom.o \
obj/defects.o \
obj/error.o \
obj/thermal.o \
obj/spinwaves.o \
obj/util.o \
obj/heun.o \
obj/main.o
NVCCOBJ = \
obj/cumalloc.o \
obj/cuthermal.o \
obj/cufields.o \
obj/cuheun.o \
obj/cufuncs.o
OBJMP = \
obj/spins.o \
obj/neighbourlist.o \
obj/mathfuncs.o \
obj/config.o \
obj/fields.o \
obj/geom.o \
obj/defects.o \
obj/error.o \
obj/thermal.o \
obj/spinwaves.o \
obj/util.o \
obj/mpheun.o \
obj/main.o
CUDAOBJ=$(OBJECTS:.o=_cuda.o)
MPOBJ=$(OBJMP:.o=_mp.o)
all: ASDcu ASD ASDmp
$(CUDAOBJ): obj/%_cuda.o: src/%.cpp
$(GCC) $(OPT) -DCUDA -c -o $@ $< $(CONFIGINC) $(FFTW3INC) -DCPUCOMP=$(CPUCOMP) -DGPUCOMP=$(GPUCOMP) -DHOSTNAME=$(HOSTNAME) -DGIT_SHA1=$(GITINFO) -DGITDIRTY=$(GITDIRTY)
$(NVCCOBJ): obj/%.o: src/%.cu
$(NVCC) $(OPT) -DCUDA -c -o $@ $< $(CONFIGINC) $(FFTW3INC) -DGPUCOMP=$(GPUCOMP) -DHOSTNAME=$(HOSTNAME) -DGIT_SHA1=$(GITINFO) -DGITDIRTY=$(GITDIRTY)
$(MPOBJ): obj/%_mp.o: src/%.cpp
$(GCC) $(OPT) -fopenmp -gdwarf-3 -DMP -c -o $@ $< $(CONFIGINC) $(FFTW3INC) -DCPUCOMP=$(CPUCOMP) -DGPUCOMP=$(GPUCOMP) -DHOSTNAME=$(HOSTNAME) -DGIT_SHA1=$(GITINFO) -DGITDIRTY=$(GITDIRTY)
$(OBJECTS): obj/%.o: src/%.cpp
$(GCC) $(OPT) -gdwarf-3 -c -o $@ $< $(CONFIGINC) $(FFTW3INC) -DCPUCOMP=$(CPUCOMP) -DGPUCOMP=$(GPUCOMP) -DHOSTNAME=$(HOSTNAME) -DGIT_SHA1=$(GITINFO) -DGITDIRTY=$(GITDIRTY)
ASDmp: $(MPOBJ)
$(GCC) -fopenmp -gdwarf-3 -DMP $(OPT) -o $@ $^ $(CONFIGLIB) $(FFTW3LIB) $(CULIBS)
ASDcu: $(CUDAOBJ) $(NVCCOBJ)
$(NVCC) -DCUDA $(OPT) -o $@ $^ $(CONFIGLIB) $(FFTW3LIB) $(CULIBS)
ASD: $(OBJECTS)
$(GCC) $(OPT) -gdwarf-3 -o $@ $^ $(CONFIGLIB) $(FFTW3LIB)
clean:
@rm -f obj/*.o