d44e3c4f |
1 | ############################################################################## |
2 | # Copyright (c) 2000-2016 Ericsson Telecom AB |
a38c6d4c |
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 | # Balasko, Jeno |
10 | # Baranyi, Botond |
14e21cff |
11 | # Szabo, Bence Janos |
d44e3c4f |
12 | # |
13 | ############################################################################## |
a38c6d4c |
14 | TOPDIR := .. |
15 | include $(TOPDIR)/Makefile.regression |
16 | |
17 | .SUFFIXES: .ttcn .asn .hh .json |
18 | .PHONY: all clean dep run |
19 | |
20 | TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX) |
21 | |
22 | # Tester modules |
23 | TTCN3_MODULES = PIPEasp_PortType.ttcn PIPEasp_Types.ttcn PIPEasp_Templates.ttcn Shell.ttcn Testcases.ttcn |
24 | |
25 | GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc) |
26 | GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh) |
27 | ifdef CODE_SPLIT |
28 | GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc _seqof.cc _setof.cc _union.cc)) |
14e21cff |
29 | else ifdef SPLIT_TO_SLICES |
30 | POSTFIXES := $(foreach file, $(SPLIT_TO_SLICES), $(addsuffix $(file), _part_)) |
31 | POSTFIXES := $(foreach file, $(POSTFIXES), $(addprefix $(file), .cc)) |
32 | GENERATED_SOURCES2 := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), $(POSTFIXES))) |
33 | GENERATED_SOURCES += $(GENERATED_SOURCES2) |
a38c6d4c |
34 | endif |
35 | |
36 | USER_SOURCES = PIPEasp_PT.cc |
37 | USER_HEADERS = $(USER_SOURCES:.cc=.hh) |
38 | |
39 | OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o) |
40 | |
41 | TARGET = profiler_test$(EXESUFFIX) |
42 | |
43 | # Tested modules (these are compiled with profiling enabled, and are executed by the tester modules) |
44 | PROF_MODULES = prof1.ttcn prof2.ttcn prof3.ttcn |
45 | |
46 | PROF_COMPILER_FLAGS = $(COMPILER_FLAGS) -z prof_files.txt |
47 | |
48 | PROF_TTCN3_LIB = ttcn3$(RT2_SUFFIX)-parallel$(DYNAMIC_SUFFIX) |
49 | |
50 | PROF_GENERATED_SOURCES = $(PROF_MODULES:.ttcn=.cc) |
51 | PROF_GENERATED_HEADERS = $(PROF_GENERATED_SOURCES:.cc=.hh) |
14e21cff |
52 | ifdef SPLIT_TO_SLICES |
53 | POSTFIXES := $(foreach file, $(SPLIT_TO_SLICES), $(addsuffix $(file), _part_)) |
54 | POSTFIXES := $(foreach file, $(POSTFIXES), $(addprefix $(file), .cc)) |
55 | PROF_GENERATED_SOURCES2 := $(foreach file, $(PROF_GENERATED_SOURCES:.cc=), $(addprefix $(file), $(POSTFIXES))) |
56 | PROF_GENERATED_SOURCES += $(PROF_GENERATED_SOURCES2) |
57 | endif |
a38c6d4c |
58 | |
59 | PROF_OBJECTS = $(PROF_GENERATED_SOURCES:.cc=.o) |
60 | |
61 | PROF_TARGET = prof.exe |
62 | |
3abe9331 |
63 | TEMP_FILES = $(PROF_GENERATED_SOURCES) $(PROF_GENERATED_HEADERS) $(PROF_OBJECTS) $(PROF_TARGET) \ |
64 | data.json data2.json data3.json prof1.stats empty.stats double.json double.stats merged.json merged.stats |
a38c6d4c |
65 | |
66 | # Rules for tester modules |
67 | all: $(TARGET) |
68 | |
69 | $(TARGET): $(GENERATED_SOURCES) $(USER_SOURCES) |
70 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS) |
71 | |
72 | $(GENERATED_SOURCES) $(GENERATED_HEADERS): compile |
73 | @if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi |
74 | |
75 | compile: $(TTCN3_MODULES) |
76 | $(filter-out -Nold -E, $(TTCN3_COMPILER)) $(COMPILER_FLAGS) $^ |
77 | touch compile |
78 | |
79 | clean distclean: |
80 | -rm -f $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \ |
81 | $(GENERATED_SOURCES) *.log Makefile.bak $(TEMP_FILES) |
82 | |
83 | dep: $(GENERATED_SOURCES) $(PROF_GENERATED_SOURCES) |
84 | makedepend $(CPPFLAGS) $^ |
85 | |
86 | run: $(TARGET) |
87 | ./$^ |
88 | |
89 | .NOTPARALLEL: |
90 | |
91 | # Rules for tested modules |
92 | $(PROF_TARGET): $(PROF_GENERATED_SOURCES) |
93 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ -L$(TTCN3_DIR)/lib -l$(PROF_TTCN3_LIB) -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS) |
94 | |
95 | $(PROF_GENERATED_SOURCES) $(PROF_GENERATED_HEADERS): prof_compile |
96 | @if [ ! -f $@ ]; then $(RM) prof_compile; $(MAKE) prof_compile; fi |
97 | |
98 | prof_compile: $(PROF_MODULES) |
99 | $(filter-out -Nold -E, $(TTCN3_COMPILER)) $(PROF_COMPILER_FLAGS) $^ |
100 | touch compile |