Commit | Line | Data |
---|---|---|
d44e3c4f | 1 | ############################################################################## |
2 | # Copyright (c) 2000-2016 Ericsson Telecom AB | |
970ed795 EL |
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 | |
d44e3c4f | 7 | # |
8 | # Contributors: | |
9 | # | |
10 | # Baji, Laszlo | |
11 | # Balasko, Jeno | |
12 | # Baranyi, Botond | |
13 | # Beres, Szabolcs | |
14 | # Delic, Adam | |
15 | # Feher, Csaba | |
16 | # Forstner, Matyas | |
17 | # Horvath, Gabriella | |
18 | # Koppany, Csaba | |
19 | # Kovacs, Ferenc | |
20 | # Raduly, Csaba | |
21 | # Szabados, Kristof | |
22 | # Szabo, Janos Zoltan – initial implementation | |
23 | # Szalai, Gabor | |
24 | # Zalanyi, Balazs Andor | |
25 | # | |
26 | ############################################################################## | |
970ed795 EL |
27 | # Makefile for the Base Library of TTCN-3 Test Executor |
28 | TOP := .. | |
29 | include $(TOP)/Makefile.cfg | |
30 | ||
31 | SCHEMAS := TitanLoggerApi.xsd | |
32 | # Generated from `TitanLoggerApi.xsd'. | |
33 | GENERATED_MODULES := TitanLoggerApi.ttcn | |
a38c6d4c | 34 | |
35 | PREGENERATOR_MODULES := PreGenRecordOf.ttcn | |
970ed795 EL |
36 | |
37 | GENERATED_LOGGERAPI_SOURCES := $(GENERATED_MODULES:.ttcn=.cc) | |
38 | GENERATED_LOGGERCONTROL_SOURCES := TitanLoggerControl.cc | |
a38c6d4c | 39 | |
40 | PREGENERATED_SOURCES := $(PREGENERATOR_MODULES:.ttcn=.cc) | |
970ed795 EL |
41 | |
42 | ORIGINATORS := TitanLoggerApi.xsd TitanLoggerApi.ttcn TitanLoggerControl.ttcn gccversion.c \ | |
43 | config_process.l config_process.y | |
44 | ||
45 | ifneq ($(FUNCTION_TEST_RUNTIME), yes) | |
46 | APIDIR := RT1 | |
47 | else | |
48 | APIDIR := RT2 | |
49 | endif | |
50 | ||
51 | # RT1 (load test) generates cc/hh files into the RT1/ directory, | |
52 | # RT2 (function test) into the RT2/ directory. This has two purposes: | |
53 | # * To prevent the vpath directive in core2/Makefile from finding files in RT1. | |
54 | # This way, RT2 has to generate these files for itself (with RT2 settings). | |
55 | # * To allow TTCN3.hh to include the right kind of TitanLoggerApi.hh | |
56 | # These directories (RT1/RT2) are replicated inside $(INCDIR) | |
57 | GENERATED_LOGGERAPI_SOURCES := $(addprefix $(APIDIR)/,$(GENERATED_LOGGERAPI_SOURCES)) | |
58 | GENERATED_LOGGERCONTROL_SOURCES := $(addprefix $(APIDIR)/,$(GENERATED_LOGGERCONTROL_SOURCES)) | |
a38c6d4c | 59 | PREGENERATED_SOURCES := $(addprefix $(APIDIR)/,$(PREGENERATED_SOURCES)) |
970ed795 EL |
60 | |
61 | GENERATED_SOURCES := $(GENERATED_LOGGERAPI_SOURCES) $(GENERATED_LOGGERCONTROL_SOURCES) config_process.lex.cc config_process.tab.cc | |
a38c6d4c | 62 | GENERATED_SOURCES += $(PREGENERATED_SOURCES) |
970ed795 | 63 | GENERATED_HEADERS := $(GENERATED_LOGGERAPI_SOURCES:.cc=.hh) $(GENERATED_LOGGERCONTROL_SOURCES:.cc=.hh) config_process.tab.hh config_process.lex.hh |
a38c6d4c | 64 | GENERATED_HEADERS += $(GENERATED_LOGGERAPI_SOURCES:.cc=Simple.hh) $(PREGENERATED_SOURCES:.cc=.hh) |
970ed795 | 65 | GENERATED_OTHERS := $(GENERATED_LOGGERAPI_SOURCES).compiled $(GENERATED_LOGGERCONTROL_SOURCES).compiled |
a38c6d4c | 66 | GENERATED_OTHERS += $(PREGENERATED_SOURCES).compiled config_process.output lex.backup |
970ed795 EL |
67 | |
68 | TTCN_COMPILER_FLAGS := | |
69 | ifeq ($(FUNCTION_TEST_RUNTIME), yes) | |
70 | TTCN_COMPILER_FLAGS += -R | |
71 | endif | |
72 | ||
73 | TTCN_COMPILER_FLAGS += -o $(APIDIR) | |
74 | ||
75 | # -I. is needed because TitanLoggerApi.hh (generated) does #include <TTCN3.hh> | |
76 | CPPFLAGS += -I. -I$(APIDIR) | |
77 | ||
78 | SOLARIS_LIBS := -lsocket -lnsl -lxml2 | |
79 | SOLARIS8_LIBS := -lsocket -lnsl -lxml2 | |
80 | LINUX_LIBS := -lxml2 | |
81 | FREEBSD_LIBS := -lxml2 | |
82 | WIN32_LIBS := -lxml2 | |
83 | INTERIX_LIBS := -lxml2 | |
84 | ||
85 | ifeq ($(USAGE_STATS), yes) | |
86 | SOLARIS_LIBS += -lresolv | |
87 | SOLARIS8_LIBS += -lresolv | |
88 | LINUX_LIBS += -lpthread -lrt | |
89 | endif | |
90 | ||
91 | # No need for `-Wl,-export-dynamic' until we're using shared objects. All | |
92 | # `dl*()' related stuff is disabled for now. | |
93 | ifeq ($(DYNAMIC_LOGGER_PLUGINS), yes) | |
94 | $(PLATFORM)_LIBS += -ldl | |
95 | endif | |
96 | ||
97 | # Note: RT2_SOURCES is set in core2/Makefile | |
98 | STATIC_SOURCES := Addfunc.cc Array.cc ASN_Any.cc ASN_CharacterString.cc \ | |
99 | ASN_EmbeddedPDV.cc ASN_External.cc ASN_Null.cc Basetype.cc BER.cc Bitstring.cc \ | |
100 | Boolean.cc Charstring.cc Communication.cc Component.cc Default.cc Encdec.cc \ | |
101 | Error.cc Float.cc Hexstring.cc RInt.cc Integer.cc Logger.cc LoggerPlugin.cc \ | |
102 | LoggerPluginManager.cc LegacyLogger.cc LoggingBits.cc \ | |
103 | Module_list.cc Objid.cc Octetstring.cc Parallel_main.cc Port.cc RAW.cc \ | |
104 | Runtime.cc Single_main.cc Snapshot.cc Struct_of.cc Template.cc TEXT.cc \ | |
105 | Textbuf.cc Timer.cc Param_Types.cc Universal_charstring.cc \ | |
af710487 | 106 | Verdicttype.cc XER.cc XmlReader.cc TitanLoggerControlImpl.cc TCov.cc JSON.cc \ |
7329404e | 107 | Profiler.cc ProfilerTools.cc ProfMerge_main.cc Debugger.cc $(RT2_SOURCES) |
970ed795 EL |
108 | |
109 | # Keep GENERATED_SOURCES at the beginning. This may speed up parallel builds | |
110 | # by starting early the compilation of the largest files. | |
111 | SOURCES := $(GENERATED_SOURCES) $(STATIC_SOURCES) | |
3abe9331 | 112 | |
970ed795 EL |
113 | |
114 | ifeq ($(FUNCTION_TEST_RUNTIME), yes) | |
115 | RT2_SUFFIX := -rt2 | |
116 | CPPFLAGS += -DTITAN_RUNTIME_2 | |
117 | endif | |
118 | ||
119 | ifdef XMLDIR | |
120 | ifeq ($(XMLDIR), default) | |
121 | # Do not change XMLDIR ! | |
122 | ACTUAL_XMLDIR := /usr | |
123 | # do not add -L/usr/lib to LDFLAGS, it's redundant | |
124 | else | |
125 | ACTUAL_XMLDIR := $(XMLDIR) | |
126 | LDFLAGS += -L$(ACTUAL_XMLDIR)/lib | |
127 | endif | |
128 | # This addition to CPPFLAGS is always needed | |
129 | CPPFLAGS += -I$(ACTUAL_XMLDIR)/include/libxml2 | |
130 | endif | |
131 | ||
132 | ifdef OPENSSL_DIR | |
133 | ifneq ($(OPENSSL_DIR), default) | |
134 | CPPFLAGS += -I$(OPENSSL_DIR)/include | |
135 | LDFLAGS += -L$(OPENSSL_DIR)/lib | |
136 | endif | |
137 | endif | |
138 | ||
139 | ifeq ($(PLATFORM),INTERIX) | |
140 | # to get the "right" iconv, used by libxml2 | |
141 | CPPFLAGS += -I/usr/local/include | |
142 | endif | |
143 | ||
144 | ||
145 | OBJECTS := $(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(SOURCES))) | |
3abe9331 | 146 | |
147 | PROFMERGE_OBJECTS := ProfMerge_main.o ProfilerTools.profmerge.o \ | |
148 | ../common/JSON_Tokenizer.o ../common/memory.o | |
970ed795 EL |
149 | |
150 | COMMON_OBJECTS := $(addprefix ../common/, memory.o pattern_la.o pattern_p.o \ | |
151 | config_preproc.o config_preproc_la.o config_preproc_p.tab.o \ | |
152 | path.o pattern_uni.o Quadruple.o NetworkHandler.o Path2.o \ | |
153 | ModuleVersion.o JSON_Tokenizer.o) | |
154 | ||
155 | ifeq ($(DEBUG), yes) | |
156 | COMMON_OBJECTS += ../common/new.o | |
157 | endif | |
158 | ||
159 | ifeq ($(LICENSING), yes) | |
160 | COMMON_OBJECTS += ../common/license.o | |
3abe9331 | 161 | PROFMERGE_OBJECTS += ../common/license.o |
970ed795 EL |
162 | endif |
163 | ||
164 | ifdef REGEX_DIR | |
165 | COMMON_OBJECTS += $(REGEX_DIR)/lib/regex.o | |
166 | endif | |
167 | ||
168 | ifeq ($(USAGE_STATS), yes) | |
169 | COMMON_OBJECTS += ../common/usage_stats.o | |
170 | endif | |
171 | ||
3abe9331 | 172 | LIBRARY_OBJECTS_NOMAIN := $(filter-out Single_main.o Parallel_main.o ProfMerge_main.o, \ |
970ed795 EL |
173 | $(OBJECTS)) $(COMMON_OBJECTS) |
174 | ||
3abe9331 | 175 | TOBECLEANED := LoggerPlugin_static.o LoggerPlugin_dynamic.o ProfilerTools.profmerge.o |
970ed795 EL |
176 | |
177 | DEPFILES := $(patsubst %.cc,%.d,$(patsubst %.c,%.d,$(SOURCES))) | |
178 | ||
179 | SUBDIRS := | |
180 | ||
181 | HEADERS := TTCN3.hh Types.h Param_Types.hh Basetype.hh Template.hh RInt.hh \ | |
182 | Integer.hh Float.hh Boolean.hh Objid.hh Verdicttype.hh Bitstring.hh \ | |
183 | Hexstring.hh Octetstring.hh Charstring.hh Universal_charstring.hh Component.hh \ | |
184 | Logger.hh ILoggerPlugin.hh Error.hh Timer.hh Runtime.hh Snapshot.hh Default.hh \ | |
185 | Port.hh Event_Handler.hh Struct_of.hh Array.hh Optional.hh Textbuf.hh Encdec.hh \ | |
186 | Module_list.hh Parameters.h Addfunc.hh RAW.hh BER.hh TEXT.hh ASN_Null.hh \ | |
187 | ASN_Any.hh ASN_External.hh ASN_EmbeddedPDV.hh ASN_CharacterString.hh XER.hh \ | |
188 | XmlReader.hh cversion.h TitanLoggerControl.ttcn TitanLoggerApi.xsd Vector.hh \ | |
016a1a93 | 189 | JSON.hh Profiler.hh RefdIndex.hh ProfilerTools.hh Debugger.hh DebugCommands.hh |
970ed795 EL |
190 | # Copied during "make install" |
191 | ||
192 | ifdef REGEX_DIR | |
193 | HEADERS += $(REGEX_DIR)/include/regex.h | |
194 | endif | |
195 | ||
196 | # # # # Library and shared lib names | |
197 | LIBRARY := libttcn3$(RT2_SUFFIX).a | |
198 | PARALLEL_LIBRARY := libttcn3$(RT2_SUFFIX)-parallel.a | |
199 | SHAREDLIB := libttcn3$(RT2_SUFFIX)-dynamic.so | |
200 | PARALLEL_SHAREDLIB := libttcn3$(RT2_SUFFIX)-parallel-dynamic.so | |
3abe9331 | 201 | |
202 | # Executables | |
51fa56b9 | 203 | ifneq ($(FUNCTION_TEST_RUNTIME), yes) |
3abe9331 | 204 | PROGRAMS := ttcn3_profmerge$(EXESUFFIX) |
51fa56b9 | 205 | endif |
970ed795 EL |
206 | |
207 | TARGETS := $(LIBRARY) $(PARALLEL_LIBRARY) | |
208 | ||
209 | # Determine whether to build shared libraries: | |
210 | DYNAMIC_LINKING := yes | |
211 | ifeq ($(PLATFORM), WIN32) | |
212 | LDFLAGS += -Xlinker --out-implib -Xlinker $(basename $@).a | |
213 | endif | |
214 | ifeq ($(PLATFORM), INTERIX) | |
215 | DYNAMIC_LINKING := no | |
216 | endif | |
217 | ||
218 | ifeq ($(DYNAMIC_LINKING), yes) | |
219 | TARGETS += $(SHAREDLIB) $(PARALLEL_SHAREDLIB) | |
220 | ifeq ($(PLATFORM), WIN32) | |
221 | # import libraries are generated as a side-effect; need to be cleaned | |
222 | TOBECLEANED += $(SHAREDLIB:.so=.a) $(PARALLEL_SHAREDLIB:.so=.a) | |
223 | endif | |
224 | endif | |
225 | ||
226 | ifneq ($(FUNCTION_TEST_RUNTIME), yes) | |
227 | TARGETS += cversion.h | |
228 | endif | |
229 | ||
230 | # Only for testing the consistency of libraries: | |
3abe9331 | 231 | TEST_PROGRAMS := single$(RT2_SUFFIX)$(EXESUFFIX) parallel$(RT2_SUFFIX)$(EXESUFFIX) |
970ed795 | 232 | ifeq ($(DYNAMIC_LINKING), yes) |
3abe9331 | 233 | TEST_PROGRAMS += single$(RT2_SUFFIX)-dynamic$(EXESUFFIX) parallel$(RT2_SUFFIX)-dynamic$(EXESUFFIX) |
970ed795 EL |
234 | endif |
235 | ifneq ($(FUNCTION_TEST_RUNTIME), yes) | |
3abe9331 | 236 | TEST_PROGRAMS += gccversion$(EXESUFFIX) |
970ed795 EL |
237 | endif |
238 | ||
239 | ||
3abe9331 | 240 | TOBECLEANED += $(TEST_PROGRAMS) cversion.h $(GENERATED_MODULES) |
970ed795 EL |
241 | |
242 | ifdef REGEX_DIR | |
243 | CPPFLAGS += -I$(REGEX_DIR)/include | |
244 | endif | |
245 | ||
246 | ||
247 | ifdef SRCDIR | |
248 | COMMON_DIR := $(SRCDIR)/common | |
249 | else | |
250 | COMMON_DIR := ../common | |
251 | endif | |
252 | ||
253 | CPPFLAGS += -I$(COMMON_DIR) | |
254 | ||
3abe9331 | 255 | MANPAGES := ttcn3_profmerge.1 |
256 | ||
970ed795 | 257 | # # # # # # # # # targets |
3abe9331 | 258 | all: $(TARGETS) $(PROGRAMS) $(TEST_PROGRAMS) |
970ed795 EL |
259 | |
260 | run: all | |
261 | # Verify that the executables are runnable. | |
3abe9331 | 262 | for p in $(filter-out gccversion%,$(TEST_PROGRAMS)); do echo $$p; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./$$p -l; if [ $$? -ne 0 ] ; then exit $$?; fi done |
970ed795 EL |
263 | |
264 | # xsd -> ttcn | |
265 | $(GENERATED_MODULES): $(SCHEMAS) ../xsdconvert/xsd2ttcn$(EXESUFFIX) | |
266 | ../xsdconvert/xsd2ttcn$(EXESUFFIX) -p $< | |
267 | sed -e 's/XSD.String/charstring/g;s/XSD.AnySimpleType/charstring/g;s/XSD.Integer/integer/g;s/XSD.Float/float/g;s/XSD.Double/float/g;s/XSD.Boolean/boolean/g;s/import from XSD all;//g' TitanLoggerApi.ttcn >TitanLoggerApi.ttcn_ | |
268 | mv TitanLoggerApi.ttcn_ TitanLoggerApi.ttcn | |
269 | ||
3abe9331 | 270 | install: $(TARGETS) $(PROGRAMS) |
970ed795 EL |
271 | ifeq ($(DYNAMIC_LINKING), yes) |
272 | ifeq ($(DEBUG), no) | |
273 | $(STRIP) $(SHAREDLIB) $(PARALLEL_SHAREDLIB) | |
274 | endif | |
275 | endif | |
276 | mkdir -p $(LIBDIR) | |
277 | cp $(TARGETS) $(LIBDIR) | |
278 | ifneq ($(FUNCTION_TEST_RUNTIME), yes) | |
279 | mkdir -p $(INCDIR) | |
280 | cp $(HEADERS) $(INCDIR) | |
3abe9331 | 281 | mkdir -p $(BINDIR) |
282 | cp $(PROGRAMS) $(BINDIR) | |
283 | mkdir -p $(MANDIR)/man1 | |
284 | cp $(MANPAGES) $(MANDIR)/man1 | |
970ed795 EL |
285 | ifeq ($(DYNAMIC_LINKING), yes) |
286 | ifneq ($(OPENSSL_DIR), default) | |
287 | (cd $(OPENSSL_DIR)/lib && tar -cf - libcrypto.so*) |\ | |
288 | (cd $(LIBDIR) && tar -xf -) | |
289 | endif | |
290 | ifneq ($(XMLDIR), default) | |
291 | (cd $(XMLDIR)/lib && tar -cf - libxml2.so*) |\ | |
292 | (cd $(LIBDIR) && tar -xf -) | |
293 | endif | |
294 | endif | |
295 | endif | |
296 | mkdir -p $(INCDIR)/$(APIDIR) | |
297 | cp $(APIDIR)/TitanLoggerApi*.hh $(INCDIR)/$(APIDIR) | |
a38c6d4c | 298 | cp $(APIDIR)/PreGenRecordOf.hh $(INCDIR)/$(APIDIR) |
970ed795 EL |
299 | |
300 | # # # # executables | |
301 | single$(RT2_SUFFIX)$(EXESUFFIX): $(LIBRARY) | |
302 | $(CXX) $(LDFLAGS) -o $@ $^ -lcrypto $($(PLATFORM)_LIBS) | |
303 | ||
304 | single$(RT2_SUFFIX)-dynamic$(EXESUFFIX): Single_main.o $(SHAREDLIB) | |
305 | $(CXX) $(LDFLAGS) -o $@ $^ -lcrypto $($(PLATFORM)_LIBS) | |
306 | ||
307 | parallel$(RT2_SUFFIX)$(EXESUFFIX): $(PARALLEL_LIBRARY) | |
308 | $(CXX) $(LDFLAGS) -o $@ $^ -lcrypto $($(PLATFORM)_LIBS) | |
309 | ||
310 | parallel$(RT2_SUFFIX)-dynamic$(EXESUFFIX): Parallel_main.o $(PARALLEL_SHAREDLIB) | |
311 | $(CXX) $(LDFLAGS) -o $@ $^ -lcrypto $($(PLATFORM)_LIBS) | |
3abe9331 | 312 | |
313 | ttcn3_profmerge$(EXESUFFIX): $(PROFMERGE_OBJECTS) | |
314 | $(CXX) $(LDFLAGS) -o $@ $^ $(LICENSE_LIBS) $($(PLATFORM)_LIBS) | |
970ed795 EL |
315 | |
316 | # # # # static link libraries | |
317 | $(LIBRARY): $(LIBRARY_OBJECTS_NOMAIN) LoggerPlugin_static.o Single_main.o | |
318 | $(AR) -r $@ $? | |
319 | ||
320 | $(PARALLEL_LIBRARY): $(LIBRARY_OBJECTS_NOMAIN) LoggerPlugin_static.o Parallel_main.o | |
321 | $(AR) -r $@ $? | |
322 | ||
323 | # # # # dynamic link libraries | |
324 | ||
325 | $(SHAREDLIB): $(LIBRARY_OBJECTS_NOMAIN) LoggerPlugin_dynamic.o Single_main.o | |
326 | $(LD) $(LDFLAGS) -o $@ $^ -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS) | |
327 | ||
328 | $(PARALLEL_SHAREDLIB): $(LIBRARY_OBJECTS_NOMAIN) LoggerPlugin_dynamic.o Parallel_main.o | |
329 | $(LD) $(LDFLAGS) -o $@ $^ -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS) | |
330 | ||
331 | ifneq ($(FUNCTION_TEST_RUNTIME), yes) | |
332 | # core2 -> core dependency, core2 does not run flex and bison | |
333 | # core must be made before core2 | |
334 | ||
335 | %.lex.cc %.lex.hh: %.l | |
336 | $(FLEX) $(FLEXFLAGS) -P$(subst .l,_,$<) --header-file=$(subst .l,.lex.hh,$<) \ | |
337 | -o$(subst .l,.lex.cc,$<) $< | |
338 | ||
339 | %.tab.cc %.tab.hh: %.y %.lex.hh | |
340 | $(BISON) $(BISONFLAGS) -o $(subst .y,.tab.cc,$<) -p $(subst .y,_,$<) $< | |
341 | ||
342 | cversion.h: gccversion$(EXESUFFIX) | |
343 | ./$< > $@.tmp | |
344 | if [ -f $@ ] ; then \ | |
345 | if diff $@.tmp $@ >/dev/null ; then \ | |
346 | rm $@.tmp ; \ | |
347 | else \ | |
348 | mv $@.tmp $@ ; \ | |
349 | fi \ | |
350 | else \ | |
351 | mv $@.tmp $@ ; \ | |
352 | fi | |
353 | ||
354 | gccversion$(EXESUFFIX): gccversion.c ../Makefile.cfg | |
355 | # The line before the backslash is $(LINK.c), except it uses CCFLAGS | |
356 | # instead of CFLAGS. TARGET_ARCH is not used by Titan. | |
357 | $(CC) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH) \ | |
358 | $< $(LOADLIBES) $(LDLIBS) -o $@ | |
359 | endif | |
360 | ||
361 | #LegacyLogger.d: cversion.h | |
362 | $(DEPFILES): cversion.h | |
363 | ||
364 | #TitanLoggerControlImpl.d Single_main.d Runtime.d Port.d LegacyLogger.d \ | |
365 | #LoggerPlugin.d LoggerPluginManager.d Error.d Default.d Communication.d \ | |
366 | #Addfunc.d: $(GENERATED_LOGGERAPI_SOURCES:.cc=.cc) | |
367 | ||
368 | TitanLoggerControlImpl.d: $(GENERATED_LOGGERCONTROL_SOURCES) | |
369 | ||
370 | ||
371 | $(GENERATED_LOGGERAPI_SOURCES): $(GENERATED_LOGGERAPI_SOURCES).compiled | |
372 | @if [ ! -f $@ ]; then $(RM) $<; $(MAKE) $<; fi | |
373 | ||
374 | $(GENERATED_LOGGERAPI_SOURCES).compiled:: ../compiler2/compiler$(EXESUFFIX) | |
375 | @if [ -f $@ ]; then $(RM) $@; $(MAKE) $@; fi | |
376 | ||
377 | $(GENERATED_LOGGERAPI_SOURCES).compiled:: $(GENERATED_MODULES) | |
378 | mkdir -p $(APIDIR) | |
379 | # The input (TitanLoggerApi.ttcn) is a generated file and might get corrupted | |
380 | # by parallel execution of xsd2ttcn. Get it out of the way but save it for later. | |
381 | if ../compiler2/compiler$(EXESUFFIX) $(TTCN_COMPILER_FLAGS) $^ - $?; then :; else mv $? $?.$$$$.bad; exit 1; fi | |
382 | perl $(ABS_SRC)/../core/simplify.pl $(GENERATED_LOGGERAPI_SOURCES:.cc=.hh) > $(GENERATED_LOGGERAPI_SOURCES:.cc=Simple.hh) | |
383 | touch $@ | |
384 | ||
385 | $(GENERATED_LOGGERCONTROL_SOURCES): $(GENERATED_LOGGERCONTROL_SOURCES).compiled | |
386 | @if [ ! -f $@ ]; then $(RM) $<; $(MAKE) $<; fi | |
387 | ||
388 | $(GENERATED_LOGGERCONTROL_SOURCES).compiled:: ../compiler2/compiler$(EXESUFFIX) | |
389 | @if [ -f $@ ]; then $(RM) $@; $(MAKE) $@; fi | |
390 | ||
391 | $(GENERATED_LOGGERCONTROL_SOURCES).compiled:: TitanLoggerControl.ttcn | |
392 | mkdir -p $(APIDIR) | |
393 | ../compiler2/compiler$(EXESUFFIX) $(TTCN_COMPILER_FLAGS) $^ - $? | |
394 | touch $@ | |
a38c6d4c | 395 | |
396 | $(PREGENERATED_SOURCES): $(PREGENERATED_SOURCES).compiled | |
397 | @if [ ! -f $@ ]; then $(RM) $<; $(MAKE) $<; fi | |
398 | ||
399 | $(PREGENERATED_SOURCES).compiled:: ../compiler2/compiler$(EXESUFFIX) | |
400 | @if [ -f $@ ]; then $(RM) $@; $(MAKE) $@; fi | |
401 | ||
402 | $(PREGENERATED_SOURCES).compiled:: $(PREGENERATOR_MODULES) | |
403 | mkdir -p $(APIDIR) | |
404 | ../compiler2/compiler$(EXESUFFIX) -F $(TTCN_COMPILER_FLAGS) $^ - $? | |
405 | touch $@ | |
3abe9331 | 406 | |
970ed795 EL |
407 | include ../Makefile.genrules |
408 | ||
409 | # These are not in STATIC_SOURCES, so vpath is not created for them | |
410 | vpath LoggerPlugin_dynamic.cc $(ABS_SRC) | |
411 | vpath LoggerPlugin_static.cc $(ABS_SRC) |