-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
84 lines (66 loc) · 3.34 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# makefile for geograd
ARCH_SPECIFIC = config/config.mk
include ${ARCH_SPECIFIC}
default:
# Check if the config.mk file is in the config dir.
@if [ ! -f "config/config.mk" ]; then \
echo "Before compiling, copy an existing config file from the "; \
echo "config/defaults/ directory to the config/ directory and "; \
echo "rename to config.mk. For example:"; \
echo " ";\
echo " cp config/defaults/config.LINUX_INTEL.mk config/config.mk"; \
echo " ";\
echo "The modify this config file as required. With the config file specified, rerun "; \
echo "'make' and the build will start"; \
else make default_build;\
fi;
clean:
find . -name '*.mod' -delete
find . -name '*.so' -delete
find . -name '*.msg' -delete
find . -name '*.msg~' -delete
find . -name '*.f90~' -delete
find . -name 'newFile' -delete
find . -name '*_complex.F90' -delete
find . -name '*_complex.F90' -delete
test:
testflo -n 4
default_build: python3 python3_complex
pyf: tapenade/triangles_d.f90 tapenade/triangles_b.f90 src/triangles.F90 src/geograd_parallel.F90 src/geograd.F90
$(F2PY) tapenade/triangles_d.f90 tapenade/triangles_b.f90 src/triangles.F90 src/geograd.F90 src/geograd_parallel.F90 -m geograd -h f2py/geograd.pyf
pyf_complex: complex/triangles_complex.F90 complex/geograd_complex.F90
$(F2PY) complex/triangles_complex.F90 complex/geograd_complex.F90 -m geograd_complex -h f2py/geograd_complex.pyf
pyf_test: src/mpitest.F90
$(F2PY) src/mpitest.F90 -m mpitest -h f2py/mpitest.pyf
mpitest: src/mpitest.F90 f2py/mpitest.pyf
$(F2PY) $(F2PY_ALL_FLAGS) -c f2py/mpitest.pyf src/mpitest.F90
mpirun -np 4 python3 test_mpi.py
python3_complex: complex/triangles_complex.F90 complex/geograd_complex.F90 f2py/geograd_complex.pyf complexify.mod complex/geograd_parallel_complex.F90
$(F2PY) $(F2PY_ALL_FLAGS) -DUSE_COMPLEX -c f2py/geograd_complex.pyf complex/triangles_complex.F90 complex/geograd_complex.F90 complex/complexify.F90 complex/geograd_parallel_complex.F90
mv *.so geograd/libgeograd_complex.so
python3: f2py/geograd.pyf src/triangles.F90 src/geograd.F90 triangles_d.mod triangles_b.mod src/geograd_parallel.F90
$(F2PY) $(F2PY_ALL_FLAGS) -DINSTRUMENTATION -c f2py/geograd.pyf tapenade/triangles_d.f90 tapenade/triangles_b.f90 src/triangles.F90 src/geograd.F90 src/geograd_parallel.F90 tapenade/adBuffer.f tapenade/adStack.c
mv *.so geograd/libgeograd.so
complex/triangles_complex.F90: src/triangles.F90
python complex/complexify.py src/triangles.F90
mv newFile complex/triangles_complex.F90
complex/geograd_complex.F90: src/geograd.F90
python complex/complexify.py src/geograd.F90
mv newFile complex/geograd_complex.F90
complex/geograd_parallel_complex.F90: src/geograd_parallel.F90
python complex/complexify.py src/geograd_parallel.F90
mv newFile complex/geograd_parallel_complex.F90
complexify.mod: complex/complexify.F90
$(FCOMPILER_ALL_FLAGS) -c complex/complexify.F90
rm complexify.o
triangles_d.mod: tapenade/triangles_d.f90
$(FCOMPILER_ALL_FLAGS) -c tapenade/triangles_d.f90
rm triangles_d.o
triangles_b.mod: tapenade/triangles_b.f90
$(FCOMPILER_ALL_FLAGS) -c tapenade/triangles_b.f90
rm triangles_b.o
tapenade: src/triangles.F90
tapenade src/triangles.F90 -d -root point_tri -root line_line -root intersect
tapenade src/triangles.F90 -b -root point_tri -root line_line -root intersect
mv triangles_d.f90 tapenade/triangles_d.f90
mv triangles_b.f90 tapenade/triangles_b.f90