-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathMakefile
103 lines (64 loc) · 1.8 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
96
97
98
99
100
101
102
103
ROOTCFLAGS = `root-config --cflags`
ROOTLIBS = `root-config --libs`
CXXFLAGS += -I. -Wall -fPIC
CFLAGS += -Wall -fPIC
SHAREDFLAGS = -shared -Wl
%.o : %.c
$(RM) $@
$(CC) -c $(CFLAGS) -o $@ $<
%.o : %.cc
$(RM) $@
$(CXX) -c $(CXXFLAGS) $(ROOTCFLAGS) -o $@ $*.cc
WRAPPERS = py_wrapper.o
OBJS = EarthDensity.o BargerPropagator.o mosc.o mosc3.o FullSMEPropagator.o \
$(WRAPPERS)
LIBBASE = ThreeProb
VER = 3.20
TAG =
LIBALIAS = $(LIBBASE)$(TAG)
LIBNAME = $(LIBALIAS)_$(VER)
lib3p = lib$(LIBNAME).a
lib3ps = lib$(LIBNAME).so
LINK = lib$(LIBBASE).so
targets = $(lib3p) probRoot probLinear probAnalytic Prob3plusplusConfig.cmake Prob3plusplusConfigVersion.cmake
$(lib3p) : $(OBJS)
$(RM) $@
ar clq $@ $(OBJS)
ranlib $@
$(lib3ps) : $(OBJS)
$(CXX) -shared -o $@ $(OBJS)
-$(RM) $(LINK)
ln -s $(lib3ps) $(LINK)
shared : $(lib3ps)
%.cmake: %.cmake.in
cat $< | sed "s|__Prob3plusplus_VERSION__|$(VER)|g" > $@
probRoot: probRoot.o $(lib3p)
$(RM) $@
$(CXX) -o $@ $(CXXFLAGS) -L. $^ $(ROOTLIBS)
.PHONY: probRoot.o
probRoot.o:
$(CXX) -o probRoot.o $(ROOTCFLAGS) $(CXXFLAGS) -c probRoot.cc
probLinear: probLinear.o $(lib3p)
$(RM) $@
$(CXX) -o $@ $(CXXFLAGS) -L. $^ $(ROOTLIBS)
.PHONY: probLinear.o
probLinear.o:
$(CXX) -o probLinear.o $(ROOTCFLAGS) $(CXXFLAGS) -c probLinear.cc
probAnalytic: probAnalytic.o $(lib3p)
$(RM) $@
$(CXX) -o $@ $(CXXFLAGS) -L. $^ $(ROOTLIBS)
.PHONY: probAnalytic.o
probAnalytic.o:
$(CXX) -o probAnalytic.o $(ROOTCFLAGS) $(CXXFLAGS) -c probAnalytic.cc
probLV: probLV.o $(lib3p)
$(RM) $@
$(CXX) -o $@ $(CXXFLAGS) -L. $^ $(ROOTLIBS)
.PHONY: probLV.o
probLV.o:
$(CXX) -o probLV.o $(ROOTCFLAGS) $(CXXFLAGS) -c probLV.cc
.PHONY: all
all: $(targets)
.PHONY: clean
clean:
$(RM) $(targets) *.o *.so
emptyrule:: $(lib3p)