forked from wannier-developers/wannier90
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.2
213 lines (150 loc) · 8.07 KB
/
Makefile.2
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
# -*- MakeFile -*-
# Should be no need to change below this line
#
include ../../make.inc
# Do this before Makefile.header so we can annotate dynlib with COMMS
ifdef COMMS
COMMS := $(strip $(COMMS))
else
COMMS = serial
endif
POSTDIR = ../postw90/
ifeq ($(COMMS),mpi08)
USEMPI=y
TEMP1 = -DMPI -DMPI08
TEMP2 = $(MPIF90)
else ifeq ($(COMMS),mpih)
USEMPI=y
TEMP1 = -DMPI -DMPIH
TEMP2 = $(MPIF90)
else ifeq ($(COMMS),mpi90)
USEMPI=y
TEMP1 = -DMPI -DMPI90
TEMP2 = $(MPIF90)
else ifeq ($(COMMS),mpi)
USEMPI=y
# default to f90 style "use mpi"
TEMP1 = -DMPI -DMPI90
TEMP2 = $(MPIF90)
else
TEMP1 =
TEMP2 = $(F90)
endif
# Contains definition of OBJS, OBJS_POST, LIBRARY, DYNLIBRARY
include ../Makefile.header
wannier libs dynlibs w90chk2chk w90spn2spn: POSTOPTS = $(TEMP1)
wannier libs dynlibs w90chk2chk w90spn2spn: COMPILER = $(TEMP2)
wannier: ../../wannier90.x
w90chk2chk: ../../w90chk2chk.x
w90spn2spn: ../../w90spn2spn.x
../../w90chk2chk.x: $(OBJS) ../w90chk2chk.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) ../w90chk2chk.F90 $(LDOPTS) $(OBJS) $(LIBS) -o ../../w90chk2chk.x
../../w90spn2spn.x: $(OBJS) ../w90spn2spn.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) ../w90spn2spn.F90 $(LDOPTS) $(OBJS) $(LIBS) -o ../../w90spn2spn.x
../../wannier90.x: $(LIBRARYV2) $(LIBRARYV2EXTRA) ../wannier_prog.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) ../wannier_prog.F90 $(LDOPTS) $(LIBRARYV2) $(LIBRARYV2EXTRA) $(LIBS) -o ../../wannier90.x
$(LIBRARYV2): $(OBJS)
$(AR) $(ARFLAGS) $(LIBRARYV2) $(OBJS)
post: POSTOPTS = $(TEMP1)
post: COMPILER = $(TEMP2)
post: mpi_test ../../postw90.x
../../postw90.x: $(OBJS_POST) $(POSTDIR)postw90.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) $(POSTDIR)postw90.F90 $(LDOPTS) $(OBJS_POST) $(LIBS) -o ../../postw90.x
mpi_test :
ifeq ($(COMMS),mpi)
ifndef MPIF90
$(info ) \
$(info ********************* STOP **********************) \
$(info * COMMS=mpi but MPIF90 is not set in make.inc *) \
$(info * Set MPIF90 to your parallel fortran compiler *) \
$(info * On many systems MPIF90=mpif90 will work *) \
$(info ********************* STOP **********************) \
$(info ) \
$(error MPIF90 is not set)
endif
endif
libs: $(LIBRARY) $(LIBRARYV2)
dynlibs: ../../$(DYNLIBRARY) ../../$(DYNLIBRARYEXTRA)
$(LIBRARY): $(OBJS) $(OBJS_LIBV1)
$(AR) $(ARFLAGS) $(LIBRARY) $(OBJS) $(OBJS_LIBV1)
../../$(DYNLIBRARY): $(OBJS)
$(COMPILER) $(SHAREDLIBFLAGS) $(POSTOPTS) $(LDOPTS) $(OBJS) -o $@ $(LIBS)
../../$(DYNLIBRARYEXTRA): $(OBJSEXTRA)
$(COMPILER) $(SHAREDLIBFLAGS) $(POSTOPTS) $(LDOPTS) $(OBJSEXTRA) -o $@ -L../.. -l$(DYNLIBBASE)
clean:
rm -f *.o *.mod *.MOD *.obj ../wrap/f90wrap_*
library_interface.o : ../library_interface.F90 \
comms.o constants.o error_base.o io.o kmesh.o overlap.o plot.o transport.o \
types.o wannier90_readwrite.o wannier90_types.o wannierise.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../library_interface.F90
library_extra.o : ../library_extra.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../library_extra.F90
c_interface.o : ../c_interface.F90 \
library_interface.o comms.o constants.o error_base.o io.o kmesh.o overlap.o plot.o transport.o \
types.o wannier90_readwrite.o wannier90_types.o wannierise.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../c_interface.F90 --std=f2018
constants.o: ../constants.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../constants.F90
io.o: ../io.F90 types.o constants.o error.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../io.F90
utility.o: ../utility.F90 constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../utility.F90
wannier90_types.o: ../wannier90_types.F90 constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../wannier90_types.F90
wannier90_readwrite.o: ../wannier90_readwrite.F90 constants.o io.o types.o wannier90_types.o readwrite.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../wannier90_readwrite.F90
readwrite.o: ../readwrite.F90 types.o constants.o io.o utility.o comms.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../readwrite.F90
types.o: ../types.F90 constants.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../types.F90
hamiltonian.o: ../hamiltonian.F90 ws_distance.o constants.o io.o utility.o types.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../hamiltonian.F90
overlap.o: ../overlap.F90 constants.o io.o utility.o types.o sitesym.o wannier90_types.o comms.o error.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../overlap.F90
kmesh.o: ../kmesh.F90 constants.o io.o utility.o types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../kmesh.F90
error_base.o: ../error_base.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../error_base.F90
error.o: ../error.F90 error_base.o comms.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../error.F90
disentangle.o: ../disentangle.F90 constants.o io.o types.o sitesym.o comms.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../disentangle.F90
wannierise.o: ../wannierise.F90 hamiltonian.o constants.o io.o utility.o types.o sitesym.o comms.o wannier90_types.o wannier90_readwrite.o error.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../wannierise.F90
plot.o: ../plot.F90 constants.o io.o utility.o types.o hamiltonian.o ws_distance.o wannier90_types.o comms.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../plot.F90
ws_distance.o: ../ws_distance.F90 constants.o io.o types.o utility.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../ws_distance.F90
transport.o: ../transport.F90 constants.o io.o types.o hamiltonian.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../transport.F90
sitesym.o : ../sitesym.F90 utility.o types.o constants.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../sitesym.F90
comms.o: ../comms.F90 constants.o error_base.o ../../make.inc
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../comms.F90
boltzwann.o: $(POSTDIR)boltzwann.F90 constants.o types.o io.o utility.o postw90_common.o get_oper.o wan_ham.o comms.o spin.o dos.o postw90_types.o ws_distance.o postw90_readwrite.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)boltzwann.F90
geninterp.o: $(POSTDIR)geninterp.F90 constants.o types.o io.o get_oper.o postw90_common.o comms.o utility.o wan_ham.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)geninterp.F90
get_oper.o: $(POSTDIR)get_oper.F90 types.o constants.o comms.o postw90_common.o io.o utility.o postw90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)get_oper.F90
spin.o: $(POSTDIR)spin.F90 comms.o types.o constants.o utility.o postw90_common.o get_oper.o io.o wan_ham.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)spin.F90
dos.o: $(POSTDIR)dos.F90 comms.o types.o postw90_types.o constants.o utility.o io.o wan_ham.o postw90_common.o get_oper.o spin.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)dos.F90
kpath.o: $(POSTDIR)kpath.F90 comms.o types.o constants.o io.o spin.o berry.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)kpath.F90
kslice.o: $(POSTDIR)kslice.F90 comms.o types.o constants.o io.o spin.o berry.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)kslice.F90
berry.o: $(POSTDIR)berry.F90 comms.o types.o constants.o utility.o postw90_common.o get_oper.o io.o spin.o wan_ham.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)berry.F90
gyrotropic.o: $(POSTDIR)gyrotropic.F90 comms.o types.o constants.o utility.o postw90_common.o get_oper.o io.o spin.o wan_ham.o berry.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)gyrotropic.F90
wan_ham.o: $(POSTDIR)wan_ham.F90 types.o postw90_types.o constants.o utility.o postw90_common.o get_oper.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)wan_ham.F90
postw90_common.o: $(POSTDIR)postw90_common.F90 postw90_types.o ws_distance.o comms.o types.o utility.o constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)postw90_common.F90
postw90_types.o: $(POSTDIR)postw90_types.F90 comms.o types.o utility.o constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)postw90_types.F90
postw90_readwrite.o: $(POSTDIR)postw90_readwrite.F90 comms.o postw90_types.o types.o utility.o constants.o io.o error.o wannier90_readwrite.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)postw90_readwrite.F90
.PHONY: wannier libs post clean mpi_test w90spn2spn