forked from jcosborn/qex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.template
123 lines (115 loc) · 2.59 KB
/
Makefile.template
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
BGQ = $(shell [ -e /bgsys ] && echo "bgq")
ifeq ($(BGQ),bgq)
QEXDIR = $(HOME)/nim/qex
QMPDIR = $(HOME)/lqcd/install/qmp
QIODIR = $(HOME)/lqcd/install/qio
#CC = mpicc
CC = $(QEXDIR)/mpixlc2
#CC = mpixlc_r
LD = $(CC)
#CC_TYPE = clang
CC_TYPE = gcc
#CFLAGS_ALWAYS = "-Wall -std=gnu99"
#CFLAGS_DEBUG = "-g3 -O0"
#CFLAGS_SPEED = "-O3 -march=native"
CFLAGS_ALWAYS = ""
CFLAGS_DEBUG = "-g3 -O0"
CFLAGS_SPEED = "-O3"
VERBOSITY = 3
SIMD = QPX
else
QEXDIR = $(HOME)/lqcd/src/qex-git
#QEXDIR = $(HOME)/lqcd/src/qex-201602290051
QMPDIR = $(HOME)/lqcd/install/qmp
QIODIR = $(HOME)/lqcd/install/qio
CC = mpicc
LD = $(CC)
CC_TYPE = gcc
CFLAGS_ALWAYS = "-Wall -std=gnu99 -march=native -ldl"
CFLAGS_DEBUG = "-g3 -O0"
CFLAGS_SPEED = "-g -O3"
VERBOSITY = 1
#SIMD = SSE
#VLEN = 4
SIMD = SSE,AVX
VLEN = 8
#SIMD = SSE,AVX,AVX512
#VLEN = 16
endif
NIM = nim
#NIM = nim-devel
#### edit above
ifneq ($(origin QEXDIR), undefined)
ENVS += QEXDIR=$(QEXDIR)
endif
ifneq ($(origin QMPDIR), undefined)
ENVS += QMPDIR=$(QMPDIR)
endif
ifneq ($(origin QIODIR), undefined)
ENVS += QIODIR=$(QIODIR)
endif
ifneq ($(origin CC_TYPE), undefined)
ENVS += CC_TYPE=$(CC_TYPE)
endif
ifneq ($(origin CC), undefined)
ENVS += CC=$(CC)
endif
ifneq ($(origin LD), undefined)
ENVS += LD=$(LD)
endif
ifneq ($(origin CFLAGS_ALWAYS), undefined)
ENVS += CFLAGS_ALWAYS=$(CFLAGS_ALWAYS)
endif
ifneq ($(origin CFLAGS_DEBUG), undefined)
ENVS += CFLAGS_DEBUG=$(CFLAGS_DEBUG)
endif
ifneq ($(origin CFLAGS_SPEED), undefined)
ENVS += CFLAGS_SPEED=$(CFLAGS_SPEED)
endif
ifneq ($(origin VERBOSITY), undefined)
ENVS += VERBOSITY=$(VERBOSITY)
endif
ifneq ($(origin SIMD), undefined)
ENVS += SIMD=$(SIMD)
endif
ifneq ($(origin VLEN), undefined)
ENVS += VLEN=$(VLEN)
endif
DBG = "-d:release"
ifeq ($(debug),1)
DBG = "-d:debug"
endif
ifeq ($(run),1)
DBG += "-r"
endif
ifeq ($(c),1)
DBG += "-c"
endif
DBG += "--warning[SmallLshouldNotBeUsed]:off"
DBG += "--hint[XDeclaredButNotUsed]:off"
#DBG += "--verbosity:2"
#DBG += "--listCmd"
DBG += "--implicitStatic:on"
#DBG += "--parallelBuild:4"
#DBG += "--embedsrc"
#DBG += "--genMapping"
#DBG += "--gc:refc"
DBG += "--gc:markAndSweep"
#refc|v2|markAndSweep|boehm|go|none
TARGETS = $(MAKECMDGOALS)
ifeq ($(TARGETS),clean)
TARGETS = dummy
endif
clean:
\rm -rf nimcache
ifeq ($(TARGETS),all)
T1 = $(wildcard $(QEXDIR)/src/*.nim)
T2 = $(notdir $(T1))
T3 = $(basename $(T2))
T4 = $(filter-out simdQpx,$(T3))
TARGETS = $(T4)
endif
all: $(TARGETS)
$(TARGETS): _force
$(ENVS) $(NIM) c $(DBG) --nimcache:`pwd`/nimcache -o:`pwd`/$(@F) $(QEXDIR)/src/$@
.PHONY: _force