1 ###############################################################################
2 # Copyright (c) 2000-2015 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
13 # WARNING! This Makefile can be used with GNU make only.
14 # Other versions of make may report syntax errors in it.
17 # Do NOT touch this line...
19 .PHONY
: all check clean dep objects preprocess
22 # Set these variables...
26 # C preprocessor used for TTCN-3 files:
29 # Flags for the C++ preprocessor (and makedepend as well):
30 CPPFLAGS
+= -D
$(PLATFORM
)
31 # -I$(TTCN3_DIR)/include
33 # Flags for preprocessing TTCN-3 files:
36 # Flags for the C++ compiler: (-Wall already in)
37 CXXFLAGS
+= -g
-W
-Wformat
=2
39 # Flags for the linker:
42 # Local flags for Titan (can be overridden from the environment or commandline)
45 # Flags for the TTCN-3 and ASN.1 compiler
46 # (common flags already set in Makefile.regression)
47 COMPILER_FLAGS
+= $(TTCNFLAGS
)
49 # $(sort ) also eliminates duplicates
50 COMPILER_FLAGS
:= $(sort $(COMPILER_FLAGS
))
52 # Execution mode: (either ttcn3 or ttcn3-parallel)
53 TTCN3_LIB
= ttcn3
$(RT2_SUFFIX
)$(DYNAMIC_SUFFIX
)
57 # You may change these variables. Add your files if necessary...
60 # TTCN-3 modules to preprocess:
61 TTCN3_PP_MODULES
= $(wildcard $(ABS_SRC
)/*.ttcnpp
)
63 # Files to include in TTCN-3 preprocessed modules:
64 TTCN3_INCLUDES
= $(TOP_SRC
)/XML
/macros.ttcnin
66 # ASN.1 modules of this project:
69 # TTCN-3 source files generated by the C preprocessor:
70 PREPROCESSED_TTCN3_MODULES
:= $(notdir $(TTCN3_PP_MODULES
:.ttcnpp
=.ttcn
))
72 # TTCN-3 modules of this project:
73 TTCN3_MODULES
= smallany.ttcn noany.ttcn
75 # C++ source & header files generated from the TTCN-3 & ASN.1 modules of
77 GENERATED_SOURCES
= $(TTCN3_MODULES
:.ttcn
=.
cc) $(PREPROCESSED_TTCN3_MODULES
:.ttcn
=.
cc) $(ASN1_MODULES
:.asn
=.
cc)
78 GENERATED_HEADERS
= $(GENERATED_SOURCES
:.
cc=.hh
)
80 GENERATED_SOURCES
:= $(foreach file
, $(GENERATED_SOURCES
:.
cc=), $(addprefix $(file
), .
cc _seq.
cc _set.
cc _seqof.
cc _setof.
cc _union.
cc))
83 # C/C++ Source & header files of Test Ports, external functions and
86 USER_HEADERS
= $(USER_SOURCES
:.
cc=.hh
)
88 # Object files of this project that are needed for the executable test suite:
89 OBJECTS
= $(GENERATED_SOURCES
:.
cc=.o
) $(USER_SOURCES
:.
cc=.o
)
91 # The name of the executable test suite:
96 # Rules for building the executable...
101 objects
: $(OBJECTS
) ;
103 $(TARGET
): $(GENERATED_SOURCES
) $(USER_SOURCES
)
104 $(CXX
) $(CPPFLAGS
) $(CXXFLAGS
) $(LDFLAGS
) -o
$@
$^ \
105 -L
$(TTCN3_DIR
)/lib
-l
$(TTCN3_LIB
) \
106 -L
$(OPENSSL_DIR
)/lib
-lcrypto \
107 -L
$(XMLDIR
)/lib
$($(PLATFORM
)_LIBS
)
109 %.ttcn
: %.ttcnpp
$(TTCN3_INCLUDES
)
110 $(CPP
) -x c
-nostdinc
$(CPPFLAGS_TTCN3
) $< $@
112 preprocess
: $(PREPROCESSED_TTCN3_MODULES
) ;
114 $(GENERATED_SOURCES
) $(GENERATED_HEADERS
): compile
115 @if
[ ! -f
$@
]; then
$(RM
) compile
; $(MAKE
) compile
; fi
117 ifeq ($(findstring dynamic
,$(TTCN3_LIB
)),)
119 CORELIB_BINARY
:= $(TTCN3_DIR
)/lib
/lib
$(TTCN3_LIB
).a
121 CORELIB_BINARY
:= $(TTCN3_DIR
)/lib
/lib
$(TTCN3_LIB
).so
125 compile
:: $(firstword $(TTCN3_COMPILER
)) $(CORELIB_BINARY
)
126 @if
[ -f
$@
]; then
$(RM
) compile
; $(MAKE
) compile
; fi
128 compile
:: $(TTCN3_MODULES
) $(PREPROCESSED_TTCN3_MODULES
) $(ASN1_MODULES
)
129 # no old names due to modulepar verbose
130 $(filter-out -Nold
-E
, $(TTCN3_COMPILER
) $(COMPILER_FLAGS
)) $^
- $?
134 -$(RM
) $(TARGET
) $(OBJECTS
) $(GENERATED_HEADERS
) \
135 $(GENERATED_SOURCES
) $(PREPROCESSED_TTCN3_MODULES
) compile \
138 dep
: $(GENERATED_SOURCES
) $(USER_SOURCES
)
139 makedepend
$(CPPFLAGS
) $^
142 # Add your rules here if necessary...
146 @echo You cannot be serious
!
151 RUN
:= $(shell which colortitan
)
152 ifeq ($(firstword $(RUN
)),no
)
153 # stupid /bin/which on Solaris writes errors to stdout instead of stderr
158 run
: $(TARGET
) config.cfg