-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile_ref
executable file
·116 lines (97 loc) · 3.33 KB
/
Makefile_ref
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
#
# Makefile for the MsSpec Fortran 90 program
#
# by S. Tricot and D. Sébilleau
#
# Last version: 19 May 2021
#
# Compiler
#
FC=gfortran
#
# Compile flags
#
#FFLAGS=
FFLAGS=-g -fbounds-check -fbacktrace -ffpe-trap=zero,overflow,underflow,invalid,denormal
#FFLAGS=-ffast-math -O3
#
# Link flags
#
LDFLAGS=
LDLIBS=
#
# Executable name
#
EXE=spec
#
# Building directory
#
BUILDDIR:=build
.PHONY: clean
cmn_DEPS:=REXS_library/ACCURACY_LIBRARY/accuracy.f90 \
REXS_library/DIMENSIONS_LIBRARY/dimensions.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/input_values.f90 \
REXS_library/T_MATRIX_LIBRARY/T_matrix.f90 \
REXS_library/RADIAL_MATRIX_LIBRARY/Auger_rad_elts.f90 \
REXS_library/RADIAL_MATRIX_LIBRARY/eels_rad_elts.f90 \
REXS_library/RADIAL_MATRIX_LIBRARY/ped_rad_elts.f90 \
REXS_library/WAVE_FUNCTION_LIBRARY/wave_function.f90 \
REXS_library/UTILITIES_LIBRARY/simple_numbers.f90 \
REXS_library/UTILITIES_LIBRARY/mathematical_constants.f90 \
REXS_library/UTILITIES_LIBRARY/physical_constants.f90 \
REXS_library/UTILITIES_LIBRARY/locate.f90 \
REXS_library/UTILITIES_LIBRARY/sort1.f90 \
REXS_library/UTILITIES_LIBRARY/atomic_properties.f90
cmn_OBJS:=$(patsubst %.f90,%.o, $(cmn_DEPS))
io_SRCS:=REXS_library/INPUT_OUTPUT_LIBRARY/beam_param.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/beams.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/in_beam.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/ex_beam.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/o1_beam.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/o2_beam.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/o3_beam.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/fix_scan.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/current_beam.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/initialize_calc.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/store_coef.f90 \
REXS_library/INPUT_OUTPUT_LIBRARY/read_ext_files.f90 \
REXS_library/VARIOUS_FUNCTIONS_LIBRARY/arc_sin.f90 \
REXS_library/VARIOUS_FUNCTIONS_LIBRARY/Euler.f90 \
REXS_library/VARIOUS_FUNCTIONS_LIBRARY/Gaunt.f90 \
REXS_library/VARIOUS_FUNCTIONS_LIBRARY/Hankel_polynomials.f90 \
REXS_library/VARIOUS_FUNCTIONS_LIBRARY/Legendre_functions.f90 \
REXS_library/VARIOUS_FUNCTIONS_LIBRARY/spherical_Bessel.f90 \
REXS_library/VARIOUS_FUNCTIONS_LIBRARY/spherical_harmonics.f90 \
REXS_library/VARIOUS_FUNCTIONS_LIBRARY/Wigner_rotations.f90 \
REXS_library/SCATTERING_AMPLITUDE_LIBRARY/scattering_amplitude.f90 \
REXS_library/VECTOR_LIBRARY/vector.f90 \
REXS_library/CHECK_LIBRARY/check.f90 \
REXS_library/SPECTROSCOPY_LIBRARY/xas.f90
io_OBJS:=$(patsubst %.f90,%.o, $(io_SRCS))
#
# Read input data file:
#
read_SRCS:=$(cmn_DEPS) \
REXS_library/INPUT_OUTPUT_LIBRARY/read_data.f90
read_OBJS:=$(patsubst %.f90,%.o, $(read_SRCS))
#
# Cross-section calculation:
#
SRCS:= $(patsubst %.o,%.f90, $(io_OBJS) $(read_OBJS))
OBJS:= $(addprefix $(BUILDDIR)/,$(notdir $(cmn_OBJS) $(io_OBJS) $(read_OBJS)))
all: obj $(EXE)
obj: src $(OBJS)
$(EXE): $(OBJS) $(BUILDDIR)/spec.f90
@echo "building main $@..."
@$(FC) $(FFLAGS) $(LDFLAGS) $(LDLIBS) -J $(BUILDDIR) -o $@ $^
%.o: %.f90
@echo "Compiling $@..."
@$(FC) $(FFLAGS) -J $(BUILDDIR) -I. -o $@ -c $^
src: $(SRCS) spec.f90
@echo "updating source tree..."
@mkdir -p $(BUILDDIR)
@rsync -av $^ $(BUILDDIR)
clean:
@echo "Cleaning..."
@rm -rf $(BUILDDIR)
@rm -rf $(EXE)