-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
69 lines (47 loc) · 2.39 KB
/
Makefile
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
default: main
F90 = mpiifort
F90FLAGS = -fPIE -qopenmp -lmkl_intel_lp64 -lmkl_core -lmkl_gnu_thread -lpthread -fpp -stand f18
F90FLAGS += -g -traceback -warn unused -warn all -check bounds -fp-stack-check -implicitnone -diag-disable 5462 -diag-disable 10440 #Debug flags.
F90FLAGS += -Ofast #Optimization flags.
PY = python3
SRC = ./src
OBJ = ./src/obj
BIN = ./bin
CALC = ./src/calculators
#Base deps of SsTC.o, these get updated if mods are detected.
DEPS = utility.o extrapolation_integration.o data_structures.o kpath.o kslice.o sampler.o integrator.o local_k_quantities.o comms.o
#Version
MAYOR = 0
MINOR = 4
REVISION = 0
F90FLAGS += -D_VERSION="'$(MAYOR).$(MINOR).$(REVISION)'"
include ./src/calculators/Makefile #Checks for mods.
utility.o: $(SRC)/utility.F90
$(F90) $(F90FLAGS) -c $(SRC)/utility.F90 -o "$(OBJ)/utility.o"
comms.o: $(SRC)/comms.F90
$(F90) $(F90FLAGS) -c $(SRC)/comms.F90 -o "$(OBJ)/comms.o"
extrapolation_integration.o: $(SRC)/F90-Extrapolation-Integration/integration.F90
$(F90) $(F90FLAGS) -c $(SRC)/F90-Extrapolation-Integration/integration.F90 -o "$(OBJ)/extrapolation_integration.o"
data_structures.o: $(SRC)/data_structures.F90 utility.o comms.o
$(F90) $(F90FLAGS) -c $(SRC)/data_structures.F90 -o "$(OBJ)/data_structures.o"
kpath.o: $(SRC)/kpath.F90 utility.o comms.o data_structures.o
$(F90) $(F90FLAGS) -c $(SRC)/kpath.F90 -o "$(OBJ)/kpath.o"
kslice.o: $(SRC)/kslice.F90 utility.o comms.o extrapolation_integration.o data_structures.o
$(F90) $(F90FLAGS) -c $(SRC)/kslice.F90 -o "$(OBJ)/kslice.o"
sampler.o: $(SRC)/sampler.F90 utility.o comms.o extrapolation_integration.o data_structures.o
$(F90) $(F90FLAGS) -c $(SRC)/sampler.F90 -o "$(OBJ)/sampler.o"
integrator.o : $(SRC)/integrator.F90 utility.o comms.o extrapolation_integration.o data_structures.o
$(F90) $(F90FLAGS) -c $(SRC)/integrator.F90 -o "$(OBJ)/integrator.o"
local_k_quantities.o: $(SRC)/local_k_quantities.F90 utility.o comms.o data_structures.o
$(F90) $(F90FLAGS) -c $(SRC)/local_k_quantities.F90 -o "$(OBJ)/local_k_quantities.o"
SsTC.o: $(SRC)/SsTC.F90 $(DEPS)
$(PY) $(SRC)/mod_setup.py
$(F90) $(F90FLAGS) -c $(SRC)/SsTC_mod.F90 -o "$(OBJ)/SsTC.o"
rm $(SRC)/SsTC_mod.F90
main: SsTC.o
ar cr "$(BIN)/libSsTC.a" $(OBJ)/*.o
mv *.mod $(BIN)
rm -f $(SRC)/*.mod $(CALC)/*.mod
.PHONY: uninstall
uninstall:
rm -rf $(OBJ)/*.o *.mod $(BIN)/*