tMakefile - numeric - C++ library with numerical algorithms | |
git clone git://src.adamsgaard.dk/numeric | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
tMakefile (3031B) | |
--- | |
1 # Define compiler | |
2 #CXX=g++ | |
3 | |
4 # Define compiler flags (show all warnings) | |
5 CXXFLAGS=-Wall | |
6 #CXXFLAGS=-std=c++0x | |
7 | |
8 # Define linker flags | |
9 #LDFLAGS=-fopenmp | |
10 | |
11 # Compile optimized code | |
12 CXXFLAGS+=-O2 | |
13 | |
14 # Compile debuggable code | |
15 #CXXFLAGS+=-g | |
16 | |
17 # Compile profilable code | |
18 #CXXFLAGS+=-pg | |
19 #LDFLAGS+=-pg | |
20 | |
21 # Define linker | |
22 LD=g++ | |
23 | |
24 # All source code files | |
25 SRC=$(shell ls *.cpp) | |
26 | |
27 | |
28 # Filenames of source code | |
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 # Filenames of object files | |
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 # Remove file type extension for binary filename | |
47 BIN_A=odeA | |
48 BIN_B=odeB | |
49 BIN_C=odeC | |
50 BIN_D=odeD | |
51 | |
52 # Define editor and options for `make edit` | |
53 EDITOR=vim -p | |
54 | |
55 | |
56 # The default "all" depends on A and B | |
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 # Gnuplot: plotA.png | |
69 @gnuplot plotA.gp | |
70 | |
71 plotB.png: funcB.dat plotB.gp | |
72 # Gnuplot: plotB.png | |
73 @gnuplot plotB.gp | |
74 | |
75 plotC.png: funcC.dat plotC.gp | |
76 # Gnuplot: plotC.png | |
77 @gnuplot plotC.gp | |
78 | |
79 plotD.png: funcD.dat plotD.gp | |
80 # Gnuplot: plotD.png | |
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 @# Link object files together | |
97 $(LD) $(LDFLAGS) $(OBJ_A) -o $@ $(LDLIBS) | |
98 | |
99 $(BIN_B): $(OBJ_B) $(HEAD_B) | |
100 @# Link object files together | |
101 $(LD) $(LDFLAGS) $(OBJ_B) -o $@ $(LDLIBS) | |
102 | |
103 $(BIN_C): $(OBJ_C) $(HEAD_C) | |
104 @# Link object files together | |
105 $(LD) $(LDFLAGS) $(OBJ_C) -o $@ $(LDLIBS) | |
106 | |
107 $(BIN_D): $(OBJ_D) $(HEAD_D) | |
108 @# Link object files together | |
109 $(LD) $(LDFLAGS) $(OBJ_D) -o $@ $(LDLIBS) | |
110 | |
111 clean: cleanA cleanB cleanC cleanD | |
112 | |
113 cleanA: | |
114 @# Remove object files | |
115 rm -f $(OBJ_A) | |
116 @# Remove binaries | |
117 rm -f $(BIN_A) | |
118 @# Remove datafiles and plot | |
119 rm -f funcA.dat plotA.png | |
120 | |
121 cleanB: | |
122 @# Remove object files | |
123 rm -f $(OBJ_B) | |
124 @# Remove binaries | |
125 rm -f $(BIN_B) | |
126 @# Remove datafiles and plot | |
127 rm -f funcB.dat plotB.png | |
128 | |
129 cleanC: | |
130 @# Remove object files | |
131 rm -f $(OBJ_C) | |
132 @# Remove binaries | |
133 rm -f $(BIN_C) | |
134 @# Remove datafiles and plot | |
135 rm -f funcC.dat plotC.png | |
136 | |
137 cleanD: | |
138 @# Remove object files | |
139 rm -f $(OBJ_D) | |
140 @# Remove binaries | |
141 rm -f $(BIN_D) | |
142 # Removing datafile and plot | |
143 @rm -f funcD.dat plotD.png | |
144 | |
145 htmlfiles: html/mainA.cpp.html html/mainB.cpp.html html/mainC.cpp.html h… | |
146 # Generating HTML files | |
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 |