-
Notifications
You must be signed in to change notification settings - Fork 2
/
Make_template_qop
67 lines (53 loc) · 1.84 KB
/
Make_template_qop
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
# This is not a standalone Makefile
# It is intended to be included in other Makefiles
# It defines macros for QOP (SciDAC Level 3)
# HAVEQOP What we are compiling with
# LIBQOP INCQOP The -L and -I compiler and linker lists
# INCDEPQOP LIBDEPQOP Lists for make dependencies
# ASQFORCEQOP
# Requires input macros
# WANTQOP User requests (true or otherwise)
# PRECISION
ifneq ($(strip ${WANTQOP}),)
HAVEQOP = true
# Fermion links
FLINKS_FNQOP = load_qop_asqtad_coeffs_D.o load_qop_asqtad_coeffs_F.o
ifeq ($(strip ${WANTQOP}),QDP)
# Requires QDP whether or not the user requested it
WANTQDP = true
# QOPQDP package
# We always need the qop.h header
QOPINCDIR = $(strip ${QOPQDP})/include
# Path to the qopqdp library
QOPLIBDIR = $(strip ${QOPQDP})/lib
IQOP = -I${QOPINCDIR}
INCDEPQOP = ${QOPINCDIR}
LQOP = -L${QOPLIBDIR} -lqopqdp
else
# Default: MILC nonoptimized routines. They are non-packaged.
# We always need the qop.h header
QOPINCDIR = $(strip ${QOP})/include
IQOP = -I${QOPINCDIR}
INCDEPQOP = ${QOPINCDIR}
# General requirement
GENERICQOP = qop_milc.o qop_milc_D.o qop_milc_F.o qop_milc_utilities.o
# Gauge force
SYMZK1FORCEQOP = gauge_force_symzk1_qop_milc.o
# Fermion links
FLINKS_FNQOP += fermion_links_fn_qop_milc_D.o \
fermion_links_fn_qop_milc_F.o
# Conjugate gradient
ASQINVERTQOP = d_congrad5_fn_qop_milc_D.o d_congrad5_fn_qop_milc_F.o \
dslash_fn_qop_milc_D.o dslash_fn_qop_milc_F.o
ASQINVERTQOP += ks_multicg_qop_milc_D.o ks_multicg_qop_milc_F.o
# Fermion force
ASQFORCEQOP = fermion_force_asqtad_qop_milc.o ff_opt.o
endif
ifneq ($(strip ${WANTQOP}),)
LIBQOP = ${LQOP}
INCQOP = ${IQOP}
endif
else
# Nothing needs to be defined here if we don't want QOP
HAVEQOP =
endif # if HAVEQOP