| 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 | # Delic, Adam |
| 11 | # |
| 12 | ############################################################################## |
| 13 | # Makefile for the TSTLogger plugin. Unfortunately, we'll need four different |
| 14 | # libraries for each plugin... Plugin version information must be |
| 15 | # synchronized with the code. |
| 16 | |
| 17 | TOP := ../.. |
| 18 | include ../../Makefile.cfg |
| 19 | |
| 20 | LIB_DIR := $(TTCN3_DIR)/lib |
| 21 | |
| 22 | MAJOR := 1 |
| 23 | MINOR := 0 |
| 24 | |
| 25 | SOURCES := TSTLogger.cc |
| 26 | STATIC_SOURCES := ${SOURCES} |
| 27 | HEADERS := $(SOURCES:.cc=.hh) |
| 28 | OBJECTS := $(SOURCES:.cc=.o) |
| 29 | OBJECTS_RT2 := $(addprefix FT/,$(OBJECTS)) |
| 30 | |
| 31 | SHARED_LIB := libtstlogger.so |
| 32 | SHARED_LIB_RT2 := libtstlogger-rt2.so |
| 33 | SHARED_LIB_PARALLEL := libtstlogger-parallel.so |
| 34 | SHARED_LIB_PARALLEL_RT2 := libtstlogger-parallel-rt2.so |
| 35 | |
| 36 | CPPFLAGS += -I../../core -I$(ABS_SRC)/../../common -I$(ABS_SRC)/../../core |
| 37 | # RT2 needs core2 (for RT2/TitanLoggerAPI.hh) in addition to core |
| 38 | CPPFLAGS_RT2 := $(CPPFLAGS) -I$(ABS_SRC)/../../core2 -DTITAN_RUNTIME_2 |
| 39 | |
| 40 | CXXFLAGS += -Werror |
| 41 | |
| 42 | LDFLAGS += -g -L$(ABS_SRC)/../../core -Wl,-soname,$(SHARED_LIB).$(MAJOR) -o $(SHARED_LIB).$(MAJOR).$(MINOR) |
| 43 | LDFLAGS_RT2 += -g -L$(ABS_SRC)/../../core2 -Wl,-soname,$(SHARED_LIB_RT2).$(MAJOR) -o $(SHARED_LIB_RT2).$(MAJOR).$(MINOR) |
| 44 | LDFLAGS_PARALLEL += -g -L$(ABS_SRC)/../../core -Wl,-soname,$(SHARED_LIB_PARALLEL).$(MAJOR) -o $(SHARED_LIB_PARALLEL).$(MAJOR).$(MINOR) |
| 45 | LDFLAGS_PARALLEL_RT2 += -g -L$(ABS_SRC)/../../core2 -Wl,-soname,$(SHARED_LIB_PARALLEL_RT2).$(MAJOR) -o $(SHARED_LIB_PARALLEL_RT2).$(MAJOR).$(MINOR) |
| 46 | |
| 47 | LIBS := -lttcn3-dynamic |
| 48 | LIBS_RT2 := -lttcn3-rt2-dynamic |
| 49 | LIBS_PARALLEL := -lttcn3-parallel-dynamic |
| 50 | LIBS_PARALLEL_RT2 := -lttcn3-rt2-parallel-dynamic |
| 51 | |
| 52 | TARGETS := $(SHARED_LIB) $(SHARED_LIB_PARALLEL) $(SHARED_LIB_RT2) $(SHARED_LIB_PARALLEL_RT2) |
| 53 | # .so with .major appended: |
| 54 | TARGETS_MAJOR := $(addsuffix .$(MAJOR), $(TARGETS)) |
| 55 | # .so with .major.minor appended: |
| 56 | TARGETS_MAJOR_MINOR := $(addsuffix .$(MINOR), $(TARGETS_MAJOR)) |
| 57 | |
| 58 | # OBJECTS_RT2, TARGETS_MAJOR and TARGETS_MAJOR_MINOR are non-standard make variables, |
| 59 | # not taken into account by "clean" in Makefile.genrules |
| 60 | # Delete them as "miscellaneous" files. |
| 61 | TOBECLEANED := $(OBJECTS_RT2) $(TARGETS_MAJOR) $(TARGETS_MAJOR_MINOR) |
| 62 | |
| 63 | all run: $(TARGETS) |
| 64 | |
| 65 | $(SHARED_LIB): $(OBJECTS) |
| 66 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $? $(LIBS) -shared |
| 67 | ln -sf $@.$(MAJOR).$(MINOR) $@.$(MAJOR) |
| 68 | ln -sf $@.$(MAJOR) $@ |
| 69 | |
| 70 | $(SHARED_LIB_RT2): $(OBJECTS_RT2) |
| 71 | $(CXX) $(CPPFLAGS_RT2) $(CXXFLAGS) $(LDFLAGS_RT2) $? $(LIBS_RT2) -shared |
| 72 | ln -sf $@.$(MAJOR).$(MINOR) $@.$(MAJOR) |
| 73 | ln -sf $@.$(MAJOR) $@ |
| 74 | |
| 75 | $(SHARED_LIB_PARALLEL): $(OBJECTS) |
| 76 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS_PARALLEL) $? $(LIBS_PARALLEL) -shared |
| 77 | ln -sf $@.$(MAJOR).$(MINOR) $@.$(MAJOR) |
| 78 | ln -sf $@.$(MAJOR) $@ |
| 79 | |
| 80 | $(SHARED_LIB_PARALLEL_RT2): $(OBJECTS_RT2) |
| 81 | $(CXX) $(CPPFLAGS_RT2) $(CXXFLAGS) $(LDFLAGS_PARALLEL_RT2) $? $(LIBS_PARALLEL_RT2) -shared |
| 82 | ln -sf $@.$(MAJOR).$(MINOR) $@.$(MAJOR) |
| 83 | ln -sf $@.$(MAJOR) $@ |
| 84 | |
| 85 | $(OBJECTS): $(SOURCES) |
| 86 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $? |
| 87 | |
| 88 | # The `-o $@' stuff is necessary, otherwise the result will be put into the |
| 89 | # current directory. |
| 90 | $(OBJECTS_RT2): $(SOURCES) |
| 91 | mkdir -p FT |
| 92 | $(CXX) $(CPPFLAGS_RT2) $(CXXFLAGS) -c $? -o $@ |
| 93 | |
| 94 | dep: |
| 95 | @echo Doing nothing... |
| 96 | |
| 97 | install: $(SHARED_LIB) $(SHARED_LIB_RT2) $(SHARED_LIB_PARALLEL) $(SHARED_LIB_PARALLEL_RT2) |
| 98 | mkdir -p $(LIB_DIR) |
| 99 | cp $(SHARED_LIB)* $(SHARED_LIB_RT2)* $(SHARED_LIB_PARALLEL)* $(SHARED_LIB_PARALLEL_RT2)* $(LIB_DIR) |
| 100 | |
| 101 | include ../../Makefile.genrules |