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 ###############################################################################
9 include $(TOPDIR
)/Makefile.regression
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.
20 MFGEN
:= $(TTCN3_DIR
)/bin
/ttcn3_makefilegen
22 ifeq ($(PLATFORM
), WIN32
)
28 static
: CheckLibraryL CheckLibrary2L CheckLibrary3L CheckLibrary4L \
29 CheckLibrary CheckLibrary2 CheckLibrary3 CheckLibrary4 CheckHelloTpd CheckHelloTpd2
31 dynamic
: Check_dynamic_central Check_dynamic_central_exe \
32 Check_dynamic Check_dynamic2 Check_dynamic3 Check_dynamic4
35 # ttcn3_makefilegen -L; make
38 mkdir
-p bin
&& cd bin
&& ln
-fs ..
/a.ttcn \
39 && $(MFGEN
) -f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
40 -L a.ttcn
&& ${MAKEPROG}
42 CheckLibraryL
: BuildLibraryL
43 if
[ ! -f .
/bin
/a.a
]; then exit
1; fi
44 if
[ -f .
/bin
/a
]; then exit
1; fi
46 # ttcn3_makefilegen -L; make executable
47 BuildLibrary3L
: a.ttcn
49 mkdir
-p bin3
&& cd bin3
&& ln
-fs ..
/a.ttcn \
50 && $(MFGEN
) -f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
51 -L a.ttcn
&& ${MAKEPROG} executable
53 CheckLibrary3L
: BuildLibrary3L
54 if
[ -f .
/bin3
/a.a
]; then exit
1; fi
55 if
[ ! -f .
/bin3
/a
]; then exit
1; fi
57 # ttcn3_makefilegen -L; make library
58 BuildLibrary2L
: a.ttcn
60 mkdir
-p bin2
&& cd bin2
&& ln
-fs ..
/a.ttcn \
61 && $(MFGEN
) -f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
62 -L a.ttcn
&& ${MAKEPROG} library
64 CheckLibrary2L
: BuildLibrary2L
65 if
[ ! -f .
/bin2
/a.a
]; then exit
1; fi
66 if
[ -f .
/bin2
/a
]; then exit
1; fi
68 # ttcn3_makefilegen -L; make run
69 BuildLibrary4L
: a.ttcn
71 mkdir
-p bin4
&& cd bin4
&& ln
-fs ..
/a.ttcn \
72 && $(MFGEN
) -f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
73 -L a.ttcn
&& ${MAKEPROG} all
75 CheckLibrary4L
: BuildLibrary4L
76 if
[ ! -f .
/bin4
/a.a
]; then exit
1; fi
77 if
[ -f .
/bin4
/a
]; then exit
1; fi
81 # ttcn3_makefilegen; make
84 mkdir
-p bin
&& cd bin
&& ln
-fs ..
/a.ttcn \
85 && $(MFGEN
) -f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
88 CheckLibrary
: BuildLibrary
89 if
[ -f .
/bin
/a.a
]; then exit
1; fi
90 if
[ ! -f .
/bin
/a
]; then exit
1; fi
92 # ttcn3_makefilegen; make executable
95 mkdir
-p bin3
&& cd bin3
&& ln
-fs ..
/a.ttcn \
96 && $(MFGEN
) -f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
97 a.ttcn
&& ${MAKEPROG} executable
99 CheckLibrary3
: BuildLibrary3
100 if
[ -f .
/bin3
/a.a
]; then exit
1; fi
101 if
[ ! -f .
/bin3
/a
]; then exit
1; fi
103 # ttcn3_makefilegen; make library
104 BuildLibrary2
: a.ttcn
106 mkdir
-p bin2
&& cd bin2
&& ln
-fs ..
/a.ttcn \
107 && $(MFGEN
) -f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
108 a.ttcn
&& ${MAKEPROG} library
110 CheckLibrary2
: BuildLibrary2
111 if
[ ! -f .
/bin2
/a.a
]; then exit
1; fi
112 if
[ -f .
/bin2
/a
]; then exit
1; fi
114 # ttcn3_makefilegen; make all
115 BuildLibrary4
: a.ttcn
117 mkdir
-p bin4
&& cd bin4
&& ln
-fs ..
/a.ttcn \
118 && $(MFGEN
) -f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
119 a.ttcn
&& ${MAKEPROG} all
121 CheckLibrary4
: BuildLibrary4
122 if
[ -f .
/bin4
/a.a
]; then exit
1; fi
123 if
[ ! -f .
/bin4
/a
]; then exit
1; fi
125 ###############################
127 ##############################
129 ####### with -L ##############
131 # ttcn3_makefilegen -L -l; make all
132 Build_dynamic
: a.ttcn
134 mkdir
-p bin_dynamic
&& cd bin_dynamic
&& ln
-fs ..
/a.ttcn \
135 && $(MFGEN
) -flL
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
136 a.ttcn
&& ${MAKEPROG}
138 Check_dynamic
: Build_dynamic
139 if
[ ! -f .
/bin_dynamic
/a_lib.so
]; then exit
1; fi
140 if
[ -f .
/bin_dynamic
/a
]; then exit
1; fi
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
149 Check_dynamic2
: Build_dynamic2
150 if
[ ! -f .
/bin_dynamic2
/a_lib.so
]; then exit
1; fi
151 if
[ -f .
/bin_dynamic2
/a
]; then exit
1; fi
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
160 Check_dynamic3
: Build_dynamic3
161 if
[ ! -f .
/bin_dynamic3
/a_lib.so
]; then exit
1; fi
162 if
[ -f .
/bin_dynamic3
/a.so
]; then exit
1; fi
163 if
[ ! -f .
/bin_dynamic3
/a
]; then exit
1; fi
165 ####### without -L ##############
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}
174 Check_dynamic4
: Build_dynamic4
175 if
[ -f .
/bin_dynamic4
/a_lib.so
]; then exit
1; fi
176 if
[ ! -f .
/bin_dynamic4
/a
]; then exit
1; fi
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
185 Check_dynamic5
: Build_dynamic5
186 if
[ ! -f .
/bin_dynamic5
/a_lib.so
]; then exit
1; fi
187 if
[ -f .
/bin_dynamic5
/a
]; then exit
1; fi
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
196 Check_dynamic6
: Build_dynamic6
197 if
[ -f .
/bin_dynamic6
/a_lib.so
]; then exit
1; fi
198 if
[ ! -f .
/bin_dynamic6
/a
]; then exit
1; fi
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}
210 Check_dynamic_central
: Build_dynamic_central
211 if
[ ! -f .
/bin_central
/b_lib.so
]; then exit
1; fi
212 if
[ -f .
/bin_central
/b
]; then exit
1; fi
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}
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
225 cd central_storage
&& $(MFGEN
) $(MFGEN_FLAGS
) -lf central.ttcn
&& ${MAKEPROG} shared_objects
228 ###############################
229 # Generate makefile from tpd
230 ##############################
231 # The default target is library in the tpd file
233 mkdir
-p HelloTpd
/bin
&& cd HelloTpd
/bin \
234 && $(TTCN3_DIR
)/bin
/ttcn3_makefilegen
-f
$(MFGEN_FLAGS
) $(COVERAGE_FLAG
) \
235 -t ..
/HelloTpd.tpd
&& ${MAKEPROG}
237 CheckHelloTpd
: BuildHelloTpd
238 if
[ -f HelloTpd
/bin
/HelloTpd_test.exe
]; then exit
1; fi
239 if
[ ! -f HelloTpd
/bin
/HelloTpd_test.a
]; then exit
1; fi
241 # the default target is executable in the tpd file
242 # check if the command line option overrides the one defined in the tpd
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}
250 CheckHelloTpd2
: BuildHelloTpd2
251 if
[ -f HelloTpd2
/bin
/HelloTpd_test.exe
]; then exit
1; fi
252 if
[ ! -f HelloTpd2
/bin
/HelloTpd_test.a
]; then exit
1; fi
256 cd central_storage
&& if
[ -f Makefile
] ; then
${MAKEPROG} $@
&& rm -f Makefile
; fi
258 -rm -rf HelloTpd2
/bin
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