Commit | Line | Data |
---|---|---|
c8f29323 PP |
1 | ############################################################################## |
2 | # Copyright (c) 2000-2016 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 | # Contributors: | |
9 | # Balasko, Jeno | |
10 | # Raduly, Csaba | |
11 | # Busque, Antoine | |
12 | # Proulx, Philippe | |
13 | # | |
14 | ############################################################################## | |
15 | ||
16 | TOP := ../.. | |
17 | include ../../Makefile.cfg | |
18 | ||
19 | LIB_DIR := $(TTCN3_DIR)/lib | |
20 | ||
21 | MAJOR := 1 | |
22 | MINOR := 0 | |
23 | ||
24 | TPP := lttngust-logger-tp.so | |
25 | TPP_SRC := tp.cc | |
26 | TPP_OBJ := $(TPP_SRC:.cc=.o) | |
27 | TPP_HEADER := $(TPP_SRC:.cc=.hh) | |
28 | ||
29 | SOURCES := LTTngUSTLogger.cc | |
30 | STATIC_SOURCES := ${SOURCES} $(LTTNG_UST_SOURCES) | |
31 | HEADERS := $(SOURCES:.cc=.hh) $(TPP_HEADER) | |
32 | OBJECTS := $(SOURCES:.cc=.o) | |
33 | OBJECTS_RT2 := $(addprefix FT/,$(OBJECTS)) | |
34 | ||
35 | SHARED_LIB := liblttng-ust-logger.so | |
36 | SHARED_LIB_RT2 := liblttng-ust-logger-rt2.so | |
37 | SHARED_LIB_PARALLEL := liblttng-ust-logger-parallel.so | |
38 | SHARED_LIB_PARALLEL_RT2 := liblttng-ust-logger-parallel-rt2.so | |
39 | ||
40 | CPPFLAGS += -I../../core -I$(ABS_SRC)/../../common -I$(ABS_SRC)/../../core -I. | |
41 | # RT2 needs core2 (for RT2/TitanLoggerAPI.hh) in addition to core | |
42 | CPPFLAGS_RT2 := $(CPPFLAGS) -I$(ABS_SRC)/../../core2 -DTITAN_RUNTIME_2 | |
43 | ||
44 | CXXFLAGS += -Werror | |
45 | COMMON_LDFLAGS += -ldl | |
46 | LDFLAGS_STD += $(COMMON_LDFLAGS) -g -L$(ABS_SRC)/../../core -Wl,-soname,$(SHARED_LIB).$(MAJOR) -o $(SHARED_LIB).$(MAJOR).$(MINOR) | |
47 | LDFLAGS_RT2 += $(COMMON_LDFLAGS) -g -L$(ABS_SRC)/../../core2 -Wl,-soname,$(SHARED_LIB_RT2).$(MAJOR) -o $(SHARED_LIB_RT2).$(MAJOR).$(MINOR) | |
48 | LDFLAGS_PARALLEL += $(COMMON_LDFLAGS) -g -L$(ABS_SRC)/../../core -Wl,-soname,$(SHARED_LIB_PARALLEL).$(MAJOR) -o $(SHARED_LIB_PARALLEL).$(MAJOR).$(MINOR) | |
49 | LDFLAGS_PARALLEL_RT2 += $(COMMON_LDFLAGS) -g -L$(ABS_SRC)/../../core2 -Wl,-soname,$(SHARED_LIB_PARALLEL_RT2).$(MAJOR) -o $(SHARED_LIB_PARALLEL_RT2).$(MAJOR).$(MINOR) | |
50 | ||
51 | LIBS := -lttcn3-dynamic | |
52 | LIBS_RT2 := -lttcn3-rt2-dynamic | |
53 | LIBS_PARALLEL := -lttcn3-parallel-dynamic | |
54 | LIBS_PARALLEL_RT2 := -lttcn3-rt2-parallel-dynamic | |
55 | ||
56 | TARGETS := $(TPP) $(SHARED_LIB) $(SHARED_LIB_PARALLEL) $(SHARED_LIB_RT2) $(SHARED_LIB_PARALLEL_RT2) | |
57 | # .so with .major appended: | |
58 | TARGETS_MAJOR := $(addsuffix .$(MAJOR), $(TARGETS)) | |
59 | # .so with .major.minor appended: | |
60 | TARGETS_MAJOR_MINOR := $(addsuffix .$(MINOR), $(TARGETS_MAJOR)) | |
61 | ||
62 | # OBJECTS_RT2, TARGETS_MAJOR and TARGETS_MAJOR_MINOR are non-standard make variables, | |
63 | # not taken into account by "clean" in Makefile.genrules | |
64 | # Delete them as "miscellaneous" files. | |
65 | TOBECLEANED := $(OBJECTS_RT2) $(TARGETS_MAJOR) $(TARGETS_MAJOR_MINOR) $(TPP_OBJ) $(TPP) | |
66 | ||
67 | all run: $(TARGETS) | |
68 | ||
69 | $(SHARED_LIB): $(OBJECTS) | |
70 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS_STD) $^ $(LIBS) -shared | |
71 | ln -sf $@.$(MAJOR).$(MINOR) $@.$(MAJOR) | |
72 | ln -sf $@.$(MAJOR) $@ | |
73 | ||
74 | $(SHARED_LIB_RT2): $(OBJECTS_RT2) | |
75 | $(CXX) $(CPPFLAGS_RT2) $(CXXFLAGS) $(LDFLAGS_RT2) $^ $(LIBS_RT2) -shared | |
76 | ln -sf $@.$(MAJOR).$(MINOR) $@.$(MAJOR) | |
77 | ln -sf $@.$(MAJOR) $@ | |
78 | ||
79 | $(SHARED_LIB_PARALLEL): $(OBJECTS) | |
80 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS_PARALLEL) $^ $(LIBS_PARALLEL) -shared | |
81 | ln -sf $@.$(MAJOR).$(MINOR) $@.$(MAJOR) | |
82 | ln -sf $@.$(MAJOR) $@ | |
83 | ||
84 | $(SHARED_LIB_PARALLEL_RT2): $(OBJECTS_RT2) | |
85 | $(CXX) $(CPPFLAGS_RT2) $(CXXFLAGS) $(LDFLAGS_PARALLEL_RT2) $^ $(LIBS_PARALLEL_RT2) -shared | |
86 | ln -sf $@.$(MAJOR).$(MINOR) $@.$(MAJOR) | |
87 | ln -sf $@.$(MAJOR) $@ | |
88 | ||
89 | $(OBJECTS): $(SOURCES) | |
90 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $? | |
91 | ||
92 | # The `-o $@' stuff is necessary, otherwise the result will be put into the | |
93 | # current directory. | |
94 | $(OBJECTS_RT2): $(SOURCES) | |
95 | mkdir -p FT | |
96 | $(CXX) $(CPPFLAGS_RT2) $(CXXFLAGS) -c $? -o $@ | |
97 | ||
98 | $(TPP_OBJ): $(TPP_SRC) $(TPP_HEADER) | |
99 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -I. -c -fpic $(TPP_SRC) | |
100 | ||
101 | $(TPP): $(TPP_OBJ) | |
102 | $(CXX) -o $@ $(LDFLAGS) -shared $^ -llttng-ust | |
103 | ||
104 | dep: | |
105 | @echo Doing nothing... | |
106 | ||
107 | install: $(SHARED_LIB) $(SHARED_LIB_RT2) $(SHARED_LIB_PARALLEL) $(SHARED_LIB_PARALLEL_RT2) | |
108 | mkdir -p $(LIB_DIR) | |
109 | cp $(SHARED_LIB)* $(SHARED_LIB_RT2)* $(SHARED_LIB_PARALLEL)* $(SHARED_LIB_PARALLEL_RT2)* $(LIB_DIR) | |
110 | cp $(TPP) $(LIB_DIR) | |
111 | ||
112 | include ../../Makefile.genrules |