1 ###############################################################################
2 # Copyright (c) 2000-2014 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 ###############################################################################
9 include ..
/Makefile.regression
11 # WARNING! This Makefile can be used with GNU make only.
12 # Other versions of make may report syntax errors in it.
15 # Do NOT touch this line...
17 .PHONY
: all archive
check clean dep objects
22 # Set these variables...
26 # Flags for the C++ preprocessor (and makedepend as well):
29 # Flags for dependency generation
32 # Flags for the C++ compiler:
35 # Flags for the linker:
39 # Flags for the TTCN-3 and ASN.1 compiler:
42 # Execution mode: (either ttcn3 or ttcn3-parallel)
43 TTCN3_LIB
= ttcn3
$(RT2_SUFFIX
)-parallel
$(DYNAMIC_SUFFIX
)
46 # You may change these variables. Add your files if necessary...
49 # TTCN-3 modules of this project:
50 TTCN3_MODULES
= concat.ttcn
52 # ASN.1 modules of this project:
55 # C++ source & header files generated from the TTCN-3 & ASN.1 modules of
57 GENERATED_SOURCES
= $(TTCN3_MODULES
:.ttcn
=.
cc) $(ASN1_MODULES
:.asn
=.
cc)
58 GENERATED_HEADERS
= $(GENERATED_SOURCES
:.
cc=.hh
)
60 # C/C++ Source & header files of Test Ports, external functions and
63 USER_HEADERS
= $(USER_SOURCES
:.
cc=.hh
)
65 # Object files of this project that are needed for the executable test suite:
66 OBJECTS
= $(GENERATED_OBJECTS
) $(USER_OBJECTS
)
68 GENERATED_OBJECTS
= $(GENERATED_SOURCES
:.
cc=.o
)
70 USER_OBJECTS
= $(USER_SOURCES
:.
cc=.o
)
72 DEPFILES
= $(USER_OBJECTS
:.o
=.d
) $(GENERATED_OBJECTS
:.o
=.d
)
74 # Other files of the project (Makefile, configuration files, etc.)
75 # that will be added to the archived source files:
76 OTHER_FILES
= config.cfg Makefile
78 # The name of the executable test suite:
82 # Rules for building the executable...
87 objects
: $(OBJECTS
) compile
;
90 if
$(CXX
) $(LDFLAGS
) -o
$@
$^ \
91 -L
$(TTCN3_DIR
)/lib
-l
$(TTCN3_LIB
) \
92 -L
$(OPENSSL_DIR
)/lib
-lcrypto \
93 -L
$(XMLDIR
)/lib
$($(PLATFORM
)_LIBS
); \
94 then
: ; else $(TTCN3_DIR
)/bin
/titanver
$(OBJECTS
); exit
1; fi
97 $(CXX
) -c
$(CPPFLAGS
) $(CXXFLAGS
) -o
$@
$<
100 @echo Creating dependency file for
'$<'; set
-e
; \
101 $(CXX
) $(CXXDEPFLAGS
) $(CPPFLAGS
) $(CXXFLAGS
) $< \
102 | sed
's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@
; \
103 [ -s
$@
] ||
rm -f
$@
105 $(GENERATED_SOURCES
) $(GENERATED_HEADERS
): compile
106 @if
[ ! -f
$@
]; then
$(RM
) compile
; $(MAKE
) compile
; fi
108 compile
: $(TTCN3_MODULES
) $(ASN1_MODULES
)
109 $(TTCN3_DIR
)/bin
/compiler
$(COMPILER_FLAGS
) $^
- $?
113 -$(RM
) $(TARGET
) $(OBJECTS
) $(GENERATED_HEADERS
) \
114 $(GENERATED_SOURCES
) compile \
120 dep
: $(GENERATED_SOURCES
) $(USER_SOURCES
) ;
122 ifeq ($(findstring n
,$(MAKEFLAGS
)),)
123 ifeq ($(filter clean distclean check compile archive diag
,$(MAKECMDGOALS
)),)
130 $(TTCN3_DIR
)/bin
/compiler
-v
2>&1
131 $(TTCN3_DIR
)/bin
/mctr_cli
-v
2>&1
133 @echo TTCN3_DIR
=$(TTCN3_DIR
)
134 @echo OPENSSL_DIR
=$(OPENSSL_DIR
)
135 @echo XMLDIR
=$(XMLDIR
)
136 @echo PLATFORM
=$(PLATFORM
)
139 # Add your rules here if necessary...
142 RUN
:= $(shell which colortitan
2>/dev
/null
)
143 ifeq ($(firstword $(RUN
)),no
)
144 # stupid /bin/which on Solaris writes errors to stdout instead of stderr
148 run
: $(TARGET
) everything.cfg
149 ifeq ($(findstring parallel
,$(TTCN3_LIB
)),)
152 $(TTCN3_DIR
)/bin
/ttcn3_start
$^
156 $(MAKE
) run RUN
='gdb --args'