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