File: common.mk

package info (click to toggle)
eclipse-titan 6.1.0-1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 79,084 kB
  • ctags: 29,092
  • sloc: cpp: 210,764; ansic: 44,862; yacc: 21,034; sh: 12,594; makefile: 12,225; lex: 8,972; xml: 5,348; java: 4,849; perl: 3,780; python: 2,834; php: 175
file content (123 lines) | stat: -rw-r--r-- 2,929 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Common makefile for all the TTCN_* and ASN_* subdirectories

# WARNING! This Makefile can be used with GNU make only.
# Other versions of make may report syntax errors in it.

#
# Do NOT touch this line...
#
.PHONY: all archive check clean dep objects run

.SUFFIXES: .d

#
# Set these variables...
#


# Flags for the TTCN-3 and ASN.1 compiler:
COMPILER_FLAGS := -s -g
ifeq ($(RT2), yes)
COMPILER_FLAGS += -R
endif

# TTCN-3 modules of this project:
TTCN3_MODULES := $(sort $(wildcard *A.ttcn *S[WE].ttcn *OK.ttcn))

# ASN.1 modules of this project:
ASN1_MODULES := $(wildcard *A.asn)

# Remember, this makefile runs in one of the subdirectories.

# C++ source & header files generated from the TTCN-3 & ASN.1 modules of
# this project:
GENERATED_SOURCES := $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc)
GENERATED_HEADERS := $(GENERATED_SOURCES:.cc=.hh)

# C/C++ Source & header files of Test Ports, external functions and
# other modules:
USER_SOURCES :=
USER_HEADERS := $(USER_SOURCES:.cc=.hh)

# Object files (will not be built)
OBJECTS := $(GENERATED_OBJECTS) $(USER_OBJECTS)

GENERATED_OBJECTS := $(GENERATED_SOURCES:.cc=.o)

USER_OBJECTS := $(USER_SOURCES:.cc=.o)

DEPFILES := $(USER_OBJECTS:.o=.d)  $(GENERATED_OBJECTS:.o=.d)

# Other files of the project (Makefile, configuration files, etc.)
# that will be added to the archived source files:
OTHER_FILES := Makefile

# lastword only in GNU make 3.81 and above :(
COMMON_MK := $(word $(words $(MAKEFILE_LIST)), $(MAKEFILE_LIST))
CW := $(COMMON_MK:common.mk=cw.pl) 

#
# Rules for building the executable...
#

all: $(GENERATED_SOURCES) ;

.cc.o .c.o:
	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<

.cc.d .c.d:
	@echo Creating dependency file for '$<'; set -e; \
	$(CXX) $(CXXDEPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $< \
	| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
	[ -s $@ ] || rm -f $@


#
# This is the "Run the compiler on every source you can find" target.
#
run check: $(TTCN3_MODULES) $(ASN1_MODULES)
	@$(CW) $(COMPILER_FLAGS) $(subst A.,?.,$^)


clean:
	-$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
	$(GENERATED_SOURCES) compile $(DEPFILES) \
	tags *.log

dep: $(GENERATED_SOURCES) $(USER_SOURCES) ;

ifeq ($(findstring n,$(MAKEFLAGS)),)
ifeq ($(filter clean distclean check compile archive diag,$(MAKECMDGOALS)),)
# -include $(DEPFILES)
endif
endif


diag:
	$(TTCN3_DIR)/bin/compiler -v 2>&1
	$(TTCN3_DIR)/bin/mctr_cli -v 2>&1
	$(CXX) -v 2>&1
	@echo TTCN3_DIR=$(TTCN3_DIR)
	@echo OPENSSL_DIR=$(OPENSSL_DIR)
	@echo XMLDIR=$(XMLDIR)
	@echo PLATFORM=$(PLATFORM)

#
# Add your rules here if necessary...
#

%.hh: %.ttcn
	mycompiler $(COMPILER_FLAGS) $<

%.cc: %.ttcn
	$(CW) $(COMPILER_FLAGS) $(subst A.,?.,$<)
# || ( mycompiler $(COMPILER_FLAGS) $(subst A.,?.,$<) && fail )

s: $(GENERATED_SOURCES)
h: $(GENERATED_HEADERS)

%.cc: %.asn
	$(CW) $(COMPILER_FLAGS) $(subst A.,?.,$<)
# || mycompiler $(COMPILER_FLAGS) $(subst A.,?.,$<)

export HARNESS_ACTIVE=1