Commit | Line | Data |
---|---|---|
970ed795 EL |
1 | ############################################################################### |
2 | # Copyright (c) 2000-2014 Ericsson Telecom AB | |
3 | # All rights reserved. This program and the accompanying materials | |
4 | # are made available under the terms of the Eclipse Public License v1.0 | |
5 | # which accompanies this distribution, and is available at | |
6 | # http://www.eclipse.org/legal/epl-v10.html | |
7 | ############################################################################### | |
8 | TOPDIR := ../../../ | |
9 | include $(TOPDIR)/Makefile.regression | |
10 | ||
11 | ifdef LCOV | |
12 | COVERAGE_FLAG := -C | |
13 | endif | |
14 | ||
15 | # ${MAKEPROG} has the same content as the built-in ${MAKE}, | |
16 | # except the special handling of ${MAKE} does not apply. | |
17 | # If we used ${MAKE} in the rules below, 'make -n' would succeed once, | |
18 | # then fail on every subsequent invocation until a 'make clean' is done. | |
19 | MAKEPROG := ${MAKE} | |
20 | MFGEN := $(TTCN3_DIR)/bin/ttcn3_makefilegen | |
21 | ||
22 | ifeq ($(PLATFORM), WIN32) | |
23 | all: static | |
24 | else | |
25 | all: static dynamic | |
26 | endif | |
27 | ||
28 | static: CheckLibraryL CheckLibrary2L CheckLibrary3L CheckLibrary4L \ | |
29 | CheckLibrary CheckLibrary2 CheckLibrary3 CheckLibrary4 CheckHelloTpd CheckHelloTpd2 | |
30 | ||
31 | dynamic: Check_dynamic_central Check_dynamic_central_exe \ | |
32 | Check_dynamic Check_dynamic2 Check_dynamic3 Check_dynamic4 | |
33 | ||
34 | ||
35 | # ttcn3_makefilegen -L; make | |
36 | BuildLibraryL: a.ttcn | |
37 | rm -rf ./bin | |
38 | mkdir -p bin && cd bin && ln -fs ../a.ttcn \ | |
39 | && $(MFGEN) -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
40 | -L a.ttcn && ${MAKEPROG} | |
41 | ||
42 | CheckLibraryL: BuildLibraryL | |
af710487 | 43 | if [ ! -f ./bin/liba.a ]; then exit 1; fi |
970ed795 EL |
44 | if [ -f ./bin/a ]; then exit 1; fi |
45 | ||
46 | # ttcn3_makefilegen -L; make executable | |
47 | BuildLibrary3L: a.ttcn | |
48 | rm -rf ./bin3 | |
49 | mkdir -p bin3 && cd bin3 && ln -fs ../a.ttcn \ | |
50 | && $(MFGEN) -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
51 | -L a.ttcn && ${MAKEPROG} executable | |
52 | ||
53 | CheckLibrary3L: BuildLibrary3L | |
af710487 | 54 | if [ -f ./bin3/liba.a ]; then exit 1; fi |
970ed795 EL |
55 | if [ ! -f ./bin3/a ]; then exit 1; fi |
56 | ||
57 | # ttcn3_makefilegen -L; make library | |
58 | BuildLibrary2L: a.ttcn | |
59 | rm -rf ./bin2 | |
60 | mkdir -p bin2 && cd bin2 && ln -fs ../a.ttcn \ | |
61 | && $(MFGEN) -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
62 | -L a.ttcn && ${MAKEPROG} library | |
63 | ||
64 | CheckLibrary2L: BuildLibrary2L | |
af710487 | 65 | if [ ! -f ./bin2/liba.a ]; then exit 1; fi |
970ed795 EL |
66 | if [ -f ./bin2/a ]; then exit 1; fi |
67 | ||
68 | # ttcn3_makefilegen -L; make run | |
69 | BuildLibrary4L: a.ttcn | |
70 | rm -rf ./bin4 | |
71 | mkdir -p bin4 && cd bin4 && ln -fs ../a.ttcn \ | |
72 | && $(MFGEN) -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
73 | -L a.ttcn && ${MAKEPROG} all | |
74 | ||
75 | CheckLibrary4L: BuildLibrary4L | |
af710487 | 76 | if [ ! -f ./bin4/liba.a ]; then exit 1; fi |
970ed795 EL |
77 | if [ -f ./bin4/a ]; then exit 1; fi |
78 | ||
79 | #### Without -L #### | |
80 | ||
81 | # ttcn3_makefilegen; make | |
82 | BuildLibrary: a.ttcn | |
83 | rm -rf ./bin | |
84 | mkdir -p bin && cd bin && ln -fs ../a.ttcn \ | |
85 | && $(MFGEN) -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
86 | a.ttcn && ${MAKEPROG} | |
87 | ||
88 | CheckLibrary: BuildLibrary | |
af710487 | 89 | if [ -f ./bin/liba.a ]; then exit 1; fi |
970ed795 EL |
90 | if [ ! -f ./bin/a ]; then exit 1; fi |
91 | ||
92 | # ttcn3_makefilegen; make executable | |
93 | BuildLibrary3: a.ttcn | |
94 | rm -rf ./bin3 | |
95 | mkdir -p bin3 && cd bin3 && ln -fs ../a.ttcn \ | |
96 | && $(MFGEN) -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
97 | a.ttcn && ${MAKEPROG} executable | |
98 | ||
99 | CheckLibrary3: BuildLibrary3 | |
af710487 | 100 | if [ -f ./bin3/liba.a ]; then exit 1; fi |
970ed795 EL |
101 | if [ ! -f ./bin3/a ]; then exit 1; fi |
102 | ||
103 | # ttcn3_makefilegen; make library | |
104 | BuildLibrary2: a.ttcn | |
105 | rm -rf ./bin2 | |
106 | mkdir -p bin2 && cd bin2 && ln -fs ../a.ttcn \ | |
107 | && $(MFGEN) -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
108 | a.ttcn && ${MAKEPROG} library | |
109 | ||
110 | CheckLibrary2: BuildLibrary2 | |
af710487 | 111 | if [ ! -f ./bin2/liba.a ]; then exit 1; fi |
970ed795 EL |
112 | if [ -f ./bin2/a ]; then exit 1; fi |
113 | ||
114 | # ttcn3_makefilegen; make all | |
115 | BuildLibrary4: a.ttcn | |
116 | rm -rf ./bin4 | |
117 | mkdir -p bin4 && cd bin4 && ln -fs ../a.ttcn \ | |
118 | && $(MFGEN) -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
119 | a.ttcn && ${MAKEPROG} all | |
120 | ||
121 | CheckLibrary4: BuildLibrary4 | |
af710487 | 122 | if [ -f ./bin4/liba.a ]; then exit 1; fi |
970ed795 EL |
123 | if [ ! -f ./bin4/a ]; then exit 1; fi |
124 | ||
125 | ############################### | |
126 | # Dynamic linking | |
127 | ############################## | |
128 | ||
129 | ####### with -L ############## | |
130 | ||
131 | # ttcn3_makefilegen -L -l; make all | |
132 | Build_dynamic: a.ttcn | |
133 | rm -rf ./bin_dynamic | |
134 | mkdir -p bin_dynamic && cd bin_dynamic && ln -fs ../a.ttcn \ | |
135 | && $(MFGEN) -flL $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
136 | a.ttcn && ${MAKEPROG} | |
137 | ||
138 | Check_dynamic: Build_dynamic | |
af710487 | 139 | if [ ! -f ./bin_dynamic/liba.so ]; then exit 1; fi |
970ed795 EL |
140 | if [ -f ./bin_dynamic/a ]; then exit 1; fi |
141 | ||
142 | # ttcn3_makefilegen -L -l; make library | |
143 | Build_dynamic2: a.ttcn | |
144 | rm -rf ./bin_dynamic2 | |
145 | mkdir -p bin_dynamic2 && cd bin_dynamic2 && ln -fs ../a.ttcn \ | |
146 | && $(MFGEN) -flL $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
147 | a.ttcn && ${MAKEPROG} library | |
148 | ||
149 | Check_dynamic2: Build_dynamic2 | |
af710487 | 150 | if [ ! -f ./bin_dynamic2/liba.so ]; then exit 1; fi |
970ed795 EL |
151 | if [ -f ./bin_dynamic2/a ]; then exit 1; fi |
152 | ||
153 | # ttcn3_makefilegen -L -l; make executable | |
154 | Build_dynamic3: a.ttcn | |
155 | rm -rf ./bin_dynamic3 | |
156 | mkdir -p bin_dynamic3 && cd bin_dynamic3 && ln -fs ../a.ttcn \ | |
157 | && $(MFGEN) -flL $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
158 | a.ttcn && ${MAKEPROG} executable | |
159 | ||
160 | Check_dynamic3: Build_dynamic3 | |
af710487 | 161 | if [ ! -f ./bin_dynamic3/liba.so ]; then exit 1; fi |
970ed795 EL |
162 | if [ -f ./bin_dynamic3/a.so ]; then exit 1; fi |
163 | if [ ! -f ./bin_dynamic3/a ]; then exit 1; fi | |
164 | ||
165 | ####### without -L ############## | |
166 | ||
167 | # ttcn3_makefilegen -l; make | |
168 | Build_dynamic4: a.ttcn | |
169 | rm -rf ./bin_dynamic4 | |
170 | mkdir -p bin_dynamic4 && cd bin_dynamic4 && ln -fs ../a.ttcn \ | |
171 | && $(MFGEN) -fl $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
172 | a.ttcn && ${MAKEPROG} | |
173 | ||
174 | Check_dynamic4: Build_dynamic4 | |
af710487 | 175 | if [ -f ./bin_dynamic4/liba.so ]; then exit 1; fi |
970ed795 EL |
176 | if [ ! -f ./bin_dynamic4/a ]; then exit 1; fi |
177 | ||
178 | # ttcn3_makefilegen -l; make library | |
179 | Build_dynamic5: a.ttcn | |
180 | rm -rf ./bin_dynamic5 | |
181 | mkdir -p bin_dynamic5 && cd bin_dynamic5 && ln -fs ../a.ttcn \ | |
182 | && $(MFGEN) -fl $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
183 | a.ttcn && ${MAKEPROG} library | |
184 | ||
185 | Check_dynamic5: Build_dynamic5 | |
af710487 | 186 | if [ ! -f ./bin_dynamic5/liba.so ]; then exit 1; fi |
970ed795 EL |
187 | if [ -f ./bin_dynamic5/a ]; then exit 1; fi |
188 | ||
189 | # ttcn3_makefilegen -l; make executable | |
190 | Build_dynamic6: a.ttcn | |
191 | rm -rf ./bin_dynamic6 | |
192 | mkdir -p bin_dynamic6 && cd bin_dynamic6 && ln -fs ../a.ttcn \ | |
193 | && $(MFGEN) -fl $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
194 | a.ttcn && ${MAKEPROG} executable | |
195 | ||
196 | Check_dynamic6: Build_dynamic6 | |
af710487 | 197 | if [ -f ./bin_dynamic6/liba.so ]; then exit 1; fi |
970ed795 EL |
198 | if [ ! -f ./bin_dynamic6/a ]; then exit 1; fi |
199 | ||
200 | ||
201 | ############################## | |
202 | # Some central storage stuff | |
203 | ############################## | |
204 | # ttcn3_makefilegen -c -l -L; make | |
205 | Build_dynamic_central: b.ttcn Central | |
206 | mkdir -p bin_central && cd bin_central && ln -fs ../b.ttcn \ | |
207 | && $(MFGEN) -cflL $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
208 | b.ttcn ../central_storage/central.ttcn && ${MAKEPROG} | |
209 | ||
210 | Check_dynamic_central: Build_dynamic_central | |
af710487 | 211 | if [ ! -f ./bin_central/libb.so ]; then exit 1; fi |
970ed795 EL |
212 | if [ -f ./bin_central/b ]; then exit 1; fi |
213 | ||
214 | # ttcn3_makefilegen -c -l; make | |
215 | Build_dynamic_central_exe: b.ttcn Central | |
216 | mkdir -p bin_central_exe && cd bin_central_exe && ln -fs ../b.ttcn \ | |
217 | && $(MFGEN) -cfl $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
218 | b.ttcn ../central_storage/central.ttcn && ${MAKEPROG} | |
219 | ||
220 | Check_dynamic_central_exe: Build_dynamic_central_exe | |
221 | if [ ! -f ./bin_central_exe/b ]; then exit 1; fi | |
222 | if [ ! -f ./bin_central_exe/b.so ]; then exit 1; fi | |
223 | ||
224 | Central: | |
225 | cd central_storage && $(MFGEN) $(MFGEN_FLAGS) -lf central.ttcn && ${MAKEPROG} shared_objects | |
226 | ||
227 | ||
228 | ############################### | |
229 | # Generate makefile from tpd | |
230 | ############################## | |
231 | # The default target is library in the tpd file | |
232 | BuildHelloTpd: | |
233 | mkdir -p HelloTpd/bin && cd HelloTpd/bin \ | |
234 | && $(TTCN3_DIR)/bin/ttcn3_makefilegen -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
235 | -t ../HelloTpd.tpd && ${MAKEPROG} | |
236 | ||
237 | CheckHelloTpd: BuildHelloTpd | |
238 | if [ -f HelloTpd/bin/HelloTpd_test.exe ]; then exit 1; fi | |
af710487 | 239 | if [ ! -f HelloTpd/bin/libHelloTpd_test.a ]; then exit 1; fi |
970ed795 EL |
240 | |
241 | # the default target is executable in the tpd file | |
242 | # check if the command line option overrides the one defined in the tpd | |
243 | BuildHelloTpd2: | |
244 | cd HelloTpd2 && ln -sf ../HelloTpd/src && ln -sf ../HelloTpd/.project && \ | |
245 | ln -sf ../HelloTpd/.TITAN_properties | |
246 | mkdir -p HelloTpd2/bin && cd HelloTpd2/bin \ | |
247 | && $(TTCN3_DIR)/bin/ttcn3_makefilegen -fL $(MFGEN_FLAGS) $(COVERAGE_FLAG) \ | |
248 | -t ../HelloTpd.tpd && ${MAKEPROG} | |
249 | ||
250 | CheckHelloTpd2: BuildHelloTpd2 | |
251 | if [ -f HelloTpd2/bin/HelloTpd_test.exe ]; then exit 1; fi | |
af710487 | 252 | if [ ! -f HelloTpd2/bin/libHelloTpd_test.a ]; then exit 1; fi |
970ed795 EL |
253 | |
254 | clean: | |
255 | -rm -rf bin* | |
256 | cd central_storage && if [ -f Makefile ] ; then ${MAKEPROG} $@ && rm -f Makefile; fi | |
257 | -rm -rf HelloTpd/bin | |
258 | -rm -rf HelloTpd2/bin | |
259 | ||
260 | distclean: clean | |
261 | ||
262 | .PHONY: all clean distclean static dynamic \ | |
263 | BuildLibrary CheckLibrary BuildLibrary2 CheckLibrary2 BuildLibrary3 CheckLibrary3 BuildLibrary4 CheckLibrary4\ | |
264 | BuildLibraryL CheckLibraryL BuildLibrary2L CheckLibrary2L BuildLibrary3L CheckLibrary3L BuildLibrary4L CheckLibrary4L\ | |
265 | Check_dynamic_central Check_dynamic_central_exe Build_dynamic Check_dynamic Build_dynamic2 Check_dynamic2 \ | |
266 | Build_dynamic3 Check_dynamic3 Build_dynamic4 Check_dynamic4 Build_dynamic5 Check_dynamic5 Build_dynamic6 Check_dynamic6 \ | |
267 | Central BuildHelloTpd CheckHelloTpd | |
268 | ||
269 | ||
270 |