-
Notifications
You must be signed in to change notification settings - Fork 0
/
Make_template_qop
142 lines (120 loc) · 4.2 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
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# 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)
# Nothing needs to be defined here if we don't want QOP
ifeq ($(strip ${WANTQOP}),true)
HAVEQOP = true
# Fermion links support for all QOP implementations
FLINKS_FNQOP = fn_links_qop.o fermion_links_asqtad_qop.o fermion_links_fn_twist_qop.o \
ks_action_coeffs_asqtad_qop.o
FLINKS_HISQ_QOP = fn_links_qop.o hisq_links_qop.o fermion_links_hisq_qop.o \
fermion_links_fn_twist_qop.o ks_action_coeffs_hisq_qop.o
# ifeq ($(strip ${WANTQOP}),QCDOC)
# #-------------------------------------
# # QCDOC package
# #-------------------------------------
#
# # Temporary paths for QCDOC.
# QCDOCQOP=/qcdoc/sfw/SciDAC/Asqtad_L3/v1.1
#
# # For qop.h
# QOPINCDIR = $(strip ${QCDOCQOP})/include
#
# # The QCDOC and MILC raw formats are thus far identical
#
# GENERICQOP = map_milc_to_qopmilc.o milc_to_qop_utilities.o
#
# # Gauge force (not in QCDOC: use standard MILC version)
# SYMZK1FORCEQOP = gauge_force_imp.o
#
# # Fermion links (not in QCDOC: use standard MILC version)
# FLINKS_FNQOP += fermion_links_helpers.o
#
# # For the QCDOC fermion force and inverter we need the lib path
# QOPLIBDIR = ${QCDOCQOP}/build
#
# # Compiler include path and linker lib path for QOP package
# IQOP = -I${QOPINCDIR}
# LQOP = -L${QOPLIBDIR} -lasqd
#
# # The QCDOC L3 package can't create L from G and doesn't support
# # the Dirac fermion types
# CQOP = -DHAVE_NO_CREATE_L_FROM_G -DHAVE_NO_QOP_D
#
# # For "make" dependencies
# LIBDEPQOP = ${QOPLIBDIR}
# INCDEPQOP = ${QOPINCDIR}
#
# else
#-------------------------------------
# QOPQDP package
#-------------------------------------
# ifeq ($(strip ${WANTQOP}),QDP)
# Requires QDP whether or not the user requested it
WANTQDP = true
# MILC raw format differs from QOPQDP raw format
GENERICQOP = map_milc_to_qopqdp.o milc_to_qop_utilities.o
## FLINKS_FNQOP += fermion_links_helpers.o
# 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}
#
# # MILC raw format differs from QOPQDP raw format
# GENERICQOP = map_milc_to_qopmilc.o milc_to_qop_utilities.o
#
# # 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
#
# # Asqtad fermion links
# FLINKS_FNQOP += fermion_links_fn_qop_milc_D.o \
# fermion_links_fn_qop_milc_F.o fermion_links_helpers.o
#
# # Wilson fermion links (clover)
# FLINKS_WILSONQOP = fermion_links_wilson_qop_milc_D.o \
# fermion_links_wilson_qop_milc_F.o
#
# # Asqtad 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
#
# # Asqtad fermion force
# ASQFORCEQOP = fermion_force_asqtad_qop_milc.o \
# fermion_force_asqtad_qop_milc_D.o \
# fermion_force_asqtad_qop_milc_F.o ff_opt.o
#
# # Wilson fermion force
# WILSONINVERTQOP = d_bicgilu_cl_qop_milc_D.o d_bicgilu_cl_qop_milc_F.o
# endif
# endif
# ifneq ($(strip ${WANTQOP}),)
LIBQOP = ${LQOP}
INCQOP = ${IQOP}
# endif
else
HAVEQOP =
endif # if WANTQOP