-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathmakefile
95 lines (64 loc) · 3.09 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
85
86
87
88
89
90
91
92
93
94
95
# Makefile written by McMillan 2008-
all: testGalPot.exe findOrbit.exe findOrbitSetTimes.exe \
findOrbitProperties.exe \
findManyOrbitProperties.exe findManyOrbitPropertiesfromGalactic.exe \
findManyOrbitPropertiesfromEquatorial.exe \
findManyOrbitPropertiesfromEquatorialwErrors.exe \
findManyOrbitPropertiesfromRAVEMultiGaussian.exe \
findManyOrbitPropertiesfromGaiaSimple.exe Coord_converter.exe RotCurve.exe \
findOrbitMultiPot.exe \
GalPot Other obj/libPyGalPot.so
CPP = g++
LIBPOT = obj/libPot.a
LIBOTHER = obj/libOther.a
CFLAGS = -c -fpic -o [email protected] -O3 -ffast-math -Isrc/
CFLAGSKEEP = -c -o $@ -O3 -ffast-math -Isrc/
#CFLAGS = -stdlib=libc++ -std=c++14 -march=native -g -Weverything -ftemplate-backtrace-limit=0 -O3 -fPIC -funroll-loops -c -o [email protected] -ffast-math -Isrc/
#CMPFLAGS = -c -o [email protected] -O3 -ffast-math -fopenmp -Isrc/
MFLAGS = -O3 -ffast-math -Isrc/
LDFLAGS = -o $@ -Lobj/ -lPot -lOther -lm
LDFLAGS_so = -o $@ -Lobj/ -fpic -lm -shared
#-W1,-soname,obj/libtil_GalPot.so
# commands to put file into library
AR = ar r
RL = ranlib
ARPOT = $(AR) $(LIBPOT) [email protected]; $(RL) $(LIBPOT); touch $@
AROTHER = $(AR) $(LIBOTHER) [email protected]; $(RL) $(LIBOTHER); touch $@
AWAY = #rm [email protected]
AUXIL_H = src/Pi.h src/Inline.h src/FreeMemory.h src/Vector.h \
src/Matrix.h src/Numerics.templates src/Numerics.h \
src/Pspline.h
GalPot_h = src/GalPot.h src/Potential.h
obj/Numerics: src/Numerics.cc $(AUXIL_H)
$(CPP) $(CFLAGS) src/Numerics.cc;$(ARPOT);$(AWAY)
obj/WDMath: src/WDMath.cc $(AUXIL_H)
$(CPP) $(CFLAGS) src/WDMath.cc;$(ARPOT);$(AWAY)
obj/GalPot: src/GalPot.cc $(GalPot_h) $(AUXIL_H)
$(CPP) $(CFLAGS) src/GalPot.cc;$(ARPOT);$(AWAY)
obj/KeplerPot: src/KeplerPot.cc src/KeplerPot.h src/Potential.h $(AUXIL_H)
$(CPP) $(CFLAGS) src/KeplerPot.cc;$(ARPOT);$(AWAY)
obj/MiyamotoNagaiPot: src/MiyamotoNagaiPot.cc src/MiyamotoNagaiPot.h src/Potential.h $(AUXIL_H)
$(CPP) $(CFLAGS) src/MiyamotoNagaiPot.cc;$(ARPOT);$(AWAY)
obj/MultiPot: src/MultiPot.cc src/MultiPot.h src/Potential.h $(AUXIL_H)
$(CPP) $(CFLAGS) src/MultiPot.cc;$(ARPOT);$(AWAY)
GalPot: obj/Numerics obj/WDMath obj/GalPot obj/KeplerPot \
obj/MiyamotoNagaiPot obj/MultiPot
obj/OrbitIntegrator: src/OrbitIntegrator.cc src/OrbitIntegrator.h $(GalPot_h) $(AUXIL_H)
$(CPP) $(CFLAGS) $< ; $(AROTHER); $(AWAY)
obj/PJMCoords: src/PJMCoords.cc src/PJMCoords.h src/Pi.h
$(CPP) $(CFLAGS) $< ; $(AROTHER); $(AWAY)
obj/Random: src/Random.cc src/Random.h $(AUXIL_H)
$(CPP) $(CFLAGS) $< ; $(AROTHER); $(AWAY)
Other: obj/OrbitIntegrator obj/PJMCoords obj/Random
#SharedObject : Other GalPot
#g++ -shared -W1,-soname,libfoo.so -o libfoo.so foo.o
obj/PyGalPot: src/PyGalPot.cc GalPot Other
$(CPP) $(CFLAGS) src/PyGalPot.cc; touch $@
obj/libPyGalPot.so: obj/PyGalPot GalPot
$(CPP) obj/PyGalPot.o -Lobj -lPot -lOther $(LDFLAGS_so)
PyGalPot.exe: obj/PyGalPot GalPot obj/libPyGalPot.so
$(CPP) $(MFLAGS) -o $@ obj/libPyGalPot.so -Lobj -lPot -lOther -lm
%.exe: %.cc GalPot Other
$(CPP) $(MFLAGS) -o $@ $< -Lobj -lPot -lOther -lm
clean:
rm -f obj/* *.exe