1
2
3
4
5 CXXFLAGS=-Wall
6
7
8
9
10
11
12 CXXFLAGS+=-O2
13
14
15
16
17
18
19
20
21
22 LD=g++
23
24
25 SRC=$(shell ls *.cpp)
26
27
28
29 SHARED_SRC=ode.cpp check.cpp
30 SHARED_HEADERS=typedefs.h ode.h functions.h check.h
31 SRC_A=mainA.cpp $(SHARED_SRC)
32 HEAD_A=$(SHARED_HEADERS)
33 SRC_B=mainB.cpp $(SHARED_SRC)
34 HEAD_B=$(SHARED_HEADERS)
35 SRC_C=mainC.cpp $(SHARED_SRC)
36 HEAD_C=$(SHARED_HEADERS)
37 SRC_D=mainD.cpp $(SHARED_SRC)
38 HEAD_D=$(SHARED_HEADERS)
39
40
41 OBJ_A=$(SRC_A:.cpp=.o)
42 OBJ_B=$(SRC_B:.cpp=.o)
43 OBJ_C=$(SRC_C:.cpp=.o)
44 OBJ_D=$(SRC_D:.cpp=.o)
45
46
47 BIN_A=odeA
48 BIN_B=odeB
49 BIN_C=odeC
50 BIN_D=odeD
51
52
53 EDITOR=vim -p
54
55
56
57 all: A B C D
58
59 A: plotA.png
60
61 B: plotB.png
62
63 C: plotC.png
64
65 D: plotD.png
66
67 plotA.png: funcA.dat plotA.gp
68
69 @gnuplot plotA.gp
70
71 plotB.png: funcB.dat plotB.gp
72
73 @gnuplot plotB.gp
74
75 plotC.png: funcC.dat plotC.gp
76
77 @gnuplot plotC.gp
78
79 plotD.png: funcD.dat plotD.gp
80
81 @gnuplot plotD.gp
82
83 funcA.dat: $(BIN_A)
84 @./$(BIN_A)
85
86 funcB.dat: $(BIN_B)
87 @./$(BIN_B)
88
89 funcC.dat: $(BIN_C)
90 @./$(BIN_C)
91
92 funcD.dat: $(BIN_D)
93 @./$(BIN_D)
94
95 $(BIN_A): $(OBJ_A) $(HEAD_A)
96 @
97 $(LD) $(LDFLAGS) $(OBJ_A) -o $@ $(LDLIBS)
98
99 $(BIN_B): $(OBJ_B) $(HEAD_B)
100 @
101 $(LD) $(LDFLAGS) $(OBJ_B) -o $@ $(LDLIBS)
102
103 $(BIN_C): $(OBJ_C) $(HEAD_C)
104 @
105 $(LD) $(LDFLAGS) $(OBJ_C) -o $@ $(LDLIBS)
106
107 $(BIN_D): $(OBJ_D) $(HEAD_D)
108 @
109 $(LD) $(LDFLAGS) $(OBJ_D) -o $@ $(LDLIBS)
110
111 clean: cleanA cleanB cleanC cleanD
112
113 cleanA:
114 @
115 rm -f $(OBJ_A)
116 @
117 rm -f $(BIN_A)
118 @
119 rm -f funcA.dat plotA.png
120
121 cleanB:
122 @
123 rm -f $(OBJ_B)
124 @
125 rm -f $(BIN_B)
126 @
127 rm -f funcB.dat plotB.png
128
129 cleanC:
130 @
131 rm -f $(OBJ_C)
132 @
133 rm -f $(BIN_C)
134 @
135 rm -f funcC.dat plotC.png
136
137 cleanD:
138 @
139 rm -f $(OBJ_D)
140 @
141 rm -f $(BIN_D)
142
143 @rm -f funcD.dat plotD.png
144
145 htmlfiles: html/mainA.cpp.html html/mainB.cpp.html html/mainC.cpp.html html/mainD.cpp.html html/ode.cpp.html html/check.cpp.html html/check.h.html html/functions.h.html html/ode.h.html html/typedefs.h.html html/vector_arithmetic.h.html html/plotA.gp.html html/plotB.gp.html html/plotC.gp.html html/plotD.gp.html html/Makefile.html
146
147 rst2html2 README.rst > html/README.html
148
149 html/%.html: %
150 vim $< +TOhtml +"w $@" +"qall!"
151
152
153 edit:
154 @$(EDITOR) Makefile README.rst *.cpp *.h *.gp
155