############################################################################## # Copyright (c) 2000-2016 Ericsson Telecom AB # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Baji, Laszlo # Balasko, Jeno # Kovacs, Ferenc # Raduly, Csaba # ############################################################################## TOPDIR := .. include ../Makefile.regression ORIG ?= . # 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 check clean dep objects preprocess # # Set these variables... # # C preprocessor used for TTCN-3 files: CPP = cpp # Flags for the C++ preprocessor (and makedepend as well): CPPFLAGS += -D$(PLATFORM) # -I$(TTCN3_DIR)/include # Flags for preprocessing TTCN-3 files: #CPPFLAGS_TTCN3 += # Flags for the C++ compiler: (-Wall already in) CXXFLAGS += -g -W -Wformat=2 # Flags for the linker: LDFLAGS += -g # Local flags for Titan (can be overridden from the environment or commandline) TTCNFLAGS += -b -r -x # Flags for the TTCN-3 and ASN.1 compiler # (common flags already set in Makefile.regression) COMPILER_FLAGS += $(TTCNFLAGS) # $(sort ) also eliminates duplicates COMPILER_FLAGS := $(sort $(COMPILER_FLAGS)) # Execution mode: (either ttcn3 or ttcn3-parallel) TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX) # # You may change these variables. Add your files if necessary... # # TTCN-3 modules to preprocess: TTCN3_PP_MODULES = $(wildcard $(ABS_SRC)/*.ttcnpp) # Files to include in TTCN-3 preprocessed modules: TTCN3_INCLUDES = $(TOP_SRC)/XML/macros.ttcnin # ASN.1 modules of this project: ASN1_MODULES = # TTCN-3 source files generated by the C preprocessor: PREPROCESSED_TTCN3_MODULES := $(notdir $(TTCN3_PP_MODULES:.ttcnpp=.ttcn)) # TTCN-3 modules of this project: TTCN3_MODULES = smallany.ttcn noany.ttcn # C++ source & header files generated from the TTCN-3 & ASN.1 modules of # this project: GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(PREPROCESSED_TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc) GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh) ifdef CODE_SPLIT GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc _seqof.cc _setof.cc _union.cc)) endif # C/C++ Source & header files of Test Ports, external functions and # other modules: USER_SOURCES = USER_HEADERS = $(USER_SOURCES:.cc=.hh) # Object files of this project that are needed for the executable test suite: OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o) # The name of the executable test suite: TARGET = AnytypeTest # # Rules for building the executable... # all: $(TARGET) ; objects: $(OBJECTS) ; $(TARGET): $(GENERATED_SOURCES) $(USER_SOURCES) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ \ -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \ -L$(OPENSSL_DIR)/lib -lcrypto \ -L$(XMLDIR)/lib $($(PLATFORM)_LIBS) %.ttcn: %.ttcnpp $(TTCN3_INCLUDES) $(CPP) -x c -nostdinc $(CPPFLAGS_TTCN3) $< $@ preprocess: $(PREPROCESSED_TTCN3_MODULES) ; $(GENERATED_SOURCES) $(GENERATED_HEADERS): compile @if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi ifeq ($(findstring dynamic,$(TTCN3_LIB)),) # not dynamic CORELIB_BINARY := $(TTCN3_DIR)/lib/lib$(TTCN3_LIB).a else CORELIB_BINARY := $(TTCN3_DIR)/lib/lib$(TTCN3_LIB).so endif compile:: $(firstword $(TTCN3_COMPILER)) $(CORELIB_BINARY) @if [ -f $@ ]; then $(RM) compile; $(MAKE) compile; fi compile:: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) # no old names due to modulepar verbose $(filter-out -Nold -E, $(TTCN3_COMPILER) $(COMPILER_FLAGS)) $^ - $? touch $@ clean distclean: -$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \ $(GENERATED_SOURCES) $(PREPROCESSED_TTCN3_MODULES) compile \ tags *.log dep: $(GENERATED_SOURCES) $(USER_SOURCES) makedepend $(CPPFLAGS) $^ # # Add your rules here if necessary... # install: @echo You cannot be serious! re: rm -f compile RUN := $(shell which colortitan) ifeq ($(firstword $(RUN)),no) # stupid /bin/which on Solaris writes errors to stdout instead of stderr RUN := endif run: $(TARGET) config.cfg $(RUN) ./$^