# This Makefile was generated by the Makefile Generator # of the TTCN-3 Test Executor version 9.0.0 # for (build@3978f7fbee0c) on Mon Jun 24 02:37:32 2024 # Copyright (c) 2000-2023 Ericsson Telecom AB # The following make commands are available: # - make, make all Builds the executable test suite. # - make archive Archives all source files. # - make check Checks the semantics of TTCN-3 and ASN.1modules. # - make port Generates test port and external class skeletons. # - make clean Removes all generated files. # - make compile Translates TTCN-3 and ASN.1 modules to C++. # - make dep Creates/updates dependency list. # - make executable Builds the executable test suite. # - make library Builds the library archive. # - make objects Builds the object files without linking the executable. # - make shared_objects Builds the shared object files without linking the executable. # - make preprocess Preprocess TTCN-3 files. # 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 shared_objects executable library objects check port clean dep archive preprocess .SUFFIXES: .d # # Set these variables... # ifndef TTCN3_DIR ifneq (,$(wildcard /usr/include/titan/)) TTCN3_DIR = /usr TTCN3_SUBDIR = /titan else TTCN3_DIR = /usr TTCN3_SUBDIR = endif endif # Your platform: (SOLARIS, SOLARIS8, LINUX, FREEBSD or WIN32) PLATFORM = LINUX # Your C++ compiler: # (if you change the platform, you may need to change the compiler) CXX = g++ # C preprocessor used for TTCN-3 files: CPP = cpp # Flags for the C++ preprocessor (and makedepend as well): CPPFLAGS = -D$(PLATFORM) -DMAKEDEPEND_RUN -DUSE_SCTP -DLKSCTP_MULTIHOMING_ENABLED -DAS_USE_SSL -I$(TTCN3_DIR)/include$(TTCN3_SUBDIR) # Flags for dependency generation CXXDEPFLAGS = -MM # Flags for preprocessing TTCN-3 files: CPPFLAGS_TTCN3 = # Flags for the C++ compiler: CXXFLAGS = -fPIC # Flags for the linker: LDFLAGS = -L /usr/lib/titan-fPIC ifeq ($(PLATFORM), WIN32) # Silence linker warnings. LDFLAGS += -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc endif # Utility to create library files AR = ar ARFLAGS = # Flags for the TTCN-3 and ASN.1 compiler: COMPILER_FLAGS = -L -U 8 # Execution mode: (either ttcn3 or ttcn3-parallel) TTCN3_LIB = ttcn3-parallel-dynamic # The path of your libxml2 installation: # If you do not have your own one, leave it unchanged. XMLDIR = $(TTCN3_DIR) # Directory to store the archived source files: ARCHIVE_DIR = backup # # You may change these variables. Add your files if necessary... # # TTCN-3 modules of this project: TTCN3_MODULES = BSSGP_Types.ttcn DIAMETER_CodecPort.ttcn DIAMETER_CodecPort_CtrlFunct.ttcn DIAMETER_Emulation.ttcn DIAMETER_Templates.ttcn DIAMETER_Types.ttcn DIAMETER_ts29_212_Templates.ttcn DIAMETER_ts29_272_Templates.ttcn DIAMETER_ts32_299_Templates.ttcn GGSN_Tests.ttcn GSM_Types.ttcn GTPC_Types.ttcn GTPU_Types.ttcn GTPv1C_CodecPort.ttcn GTPv1C_CodecPort_CtrlFunct.ttcn GTPv1C_Templates.ttcn GTPv1U_CodecPort.ttcn GTPv1U_CodecPort_CtrlFunct.ttcn GTPv1U_Templates.ttcn General_Types.ttcn ICMP_Templates.ttcn ICMP_Types.ttcn ICMPv6_Templates.ttcn ICMPv6_Types.ttcn IPCP_Types.ttcn IPL4asp_Functions.ttcn IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IP_Types.ttcn Misc_Helpers.ttcn NS_Types.ttcn Native_Functions.ttcn Osmocom_Gb_Types.ttcn Osmocom_Types.ttcn Osmocom_VTY_Functions.ttcn PAP_Types.ttcn SCTP_Templates.ttcn Socket_API_Definitions.ttcn TCCConversion_Functions.ttcn TCCEncoding_Functions.ttcn TCCInterface_Functions.ttcn TELNETasp_PortType.ttcn UDP_Types.ttcn # TTCN-3 modules to preprocess: TTCN3_PP_MODULES = # Files to include in TTCN-3 preprocessed modules: TTCN3_INCLUDES = # ASN.1 modules of this project: ASN1_MODULES = # TTCN-3 source files generated by the C preprocessor: PREPROCESSED_TTCN3_MODULES = # C++ source & header files generated from the TTCN-3 & ASN.1 modules of # this project: GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) BSSGP_Types_part_1.cc BSSGP_Types_part_2.cc BSSGP_Types_part_3.cc BSSGP_Types_part_4.cc BSSGP_Types_part_5.cc BSSGP_Types_part_6.cc BSSGP_Types_part_7.cc DIAMETER_CodecPort_part_1.cc DIAMETER_CodecPort_part_2.cc DIAMETER_CodecPort_part_3.cc DIAMETER_CodecPort_part_4.cc DIAMETER_CodecPort_part_5.cc DIAMETER_CodecPort_part_6.cc DIAMETER_CodecPort_part_7.cc DIAMETER_CodecPort_CtrlFunct_part_1.cc DIAMETER_CodecPort_CtrlFunct_part_2.cc DIAMETER_CodecPort_CtrlFunct_part_3.cc DIAMETER_CodecPort_CtrlFunct_part_4.cc DIAMETER_CodecPort_CtrlFunct_part_5.cc DIAMETER_CodecPort_CtrlFunct_part_6.cc DIAMETER_CodecPort_CtrlFunct_part_7.cc DIAMETER_Emulation_part_1.cc DIAMETER_Emulation_part_2.cc DIAMETER_Emulation_part_3.cc DIAMETER_Emulation_part_4.cc DIAMETER_Emulation_part_5.cc DIAMETER_Emulation_part_6.cc DIAMETER_Emulation_part_7.cc DIAMETER_Templates_part_1.cc DIAMETER_Templates_part_2.cc DIAMETER_Templates_part_3.cc DIAMETER_Templates_part_4.cc DIAMETER_Templates_part_5.cc DIAMETER_Templates_part_6.cc DIAMETER_Templates_part_7.cc DIAMETER_Types_part_1.cc DIAMETER_Types_part_2.cc DIAMETER_Types_part_3.cc DIAMETER_Types_part_4.cc DIAMETER_Types_part_5.cc DIAMETER_Types_part_6.cc DIAMETER_Types_part_7.cc DIAMETER_ts29_212_Templates_part_1.cc DIAMETER_ts29_212_Templates_part_2.cc DIAMETER_ts29_212_Templates_part_3.cc DIAMETER_ts29_212_Templates_part_4.cc DIAMETER_ts29_212_Templates_part_5.cc DIAMETER_ts29_212_Templates_part_6.cc DIAMETER_ts29_212_Templates_part_7.cc DIAMETER_ts29_272_Templates_part_1.cc DIAMETER_ts29_272_Templates_part_2.cc DIAMETER_ts29_272_Templates_part_3.cc DIAMETER_ts29_272_Templates_part_4.cc DIAMETER_ts29_272_Templates_part_5.cc DIAMETER_ts29_272_Templates_part_6.cc DIAMETER_ts29_272_Templates_part_7.cc DIAMETER_ts32_299_Templates_part_1.cc DIAMETER_ts32_299_Templates_part_2.cc DIAMETER_ts32_299_Templates_part_3.cc DIAMETER_ts32_299_Templates_part_4.cc DIAMETER_ts32_299_Templates_part_5.cc DIAMETER_ts32_299_Templates_part_6.cc DIAMETER_ts32_299_Templates_part_7.cc GGSN_Tests_part_1.cc GGSN_Tests_part_2.cc GGSN_Tests_part_3.cc GGSN_Tests_part_4.cc GGSN_Tests_part_5.cc GGSN_Tests_part_6.cc GGSN_Tests_part_7.cc GSM_Types_part_1.cc GSM_Types_part_2.cc GSM_Types_part_3.cc GSM_Types_part_4.cc GSM_Types_part_5.cc GSM_Types_part_6.cc GSM_Types_part_7.cc GTPC_Types_part_1.cc GTPC_Types_part_2.cc GTPC_Types_part_3.cc GTPC_Types_part_4.cc GTPC_Types_part_5.cc GTPC_Types_part_6.cc GTPC_Types_part_7.cc GTPU_Types_part_1.cc GTPU_Types_part_2.cc GTPU_Types_part_3.cc GTPU_Types_part_4.cc GTPU_Types_part_5.cc GTPU_Types_part_6.cc GTPU_Types_part_7.cc GTPv1C_CodecPort_part_1.cc GTPv1C_CodecPort_part_2.cc GTPv1C_CodecPort_part_3.cc GTPv1C_CodecPort_part_4.cc GTPv1C_CodecPort_part_5.cc GTPv1C_CodecPort_part_6.cc GTPv1C_CodecPort_part_7.cc GTPv1C_CodecPort_CtrlFunct_part_1.cc GTPv1C_CodecPort_CtrlFunct_part_2.cc GTPv1C_CodecPort_CtrlFunct_part_3.cc GTPv1C_CodecPort_CtrlFunct_part_4.cc GTPv1C_CodecPort_CtrlFunct_part_5.cc GTPv1C_CodecPort_CtrlFunct_part_6.cc GTPv1C_CodecPort_CtrlFunct_part_7.cc GTPv1C_Templates_part_1.cc GTPv1C_Templates_part_2.cc GTPv1C_Templates_part_3.cc GTPv1C_Templates_part_4.cc GTPv1C_Templates_part_5.cc GTPv1C_Templates_part_6.cc GTPv1C_Templates_part_7.cc GTPv1U_CodecPort_part_1.cc GTPv1U_CodecPort_part_2.cc GTPv1U_CodecPort_part_3.cc GTPv1U_CodecPort_part_4.cc GTPv1U_CodecPort_part_5.cc GTPv1U_CodecPort_part_6.cc GTPv1U_CodecPort_part_7.cc GTPv1U_CodecPort_CtrlFunct_part_1.cc GTPv1U_CodecPort_CtrlFunct_part_2.cc GTPv1U_CodecPort_CtrlFunct_part_3.cc GTPv1U_CodecPort_CtrlFunct_part_4.cc GTPv1U_CodecPort_CtrlFunct_part_5.cc GTPv1U_CodecPort_CtrlFunct_part_6.cc GTPv1U_CodecPort_CtrlFunct_part_7.cc GTPv1U_Templates_part_1.cc GTPv1U_Templates_part_2.cc GTPv1U_Templates_part_3.cc GTPv1U_Templates_part_4.cc GTPv1U_Templates_part_5.cc GTPv1U_Templates_part_6.cc GTPv1U_Templates_part_7.cc General_Types_part_1.cc General_Types_part_2.cc General_Types_part_3.cc General_Types_part_4.cc General_Types_part_5.cc General_Types_part_6.cc General_Types_part_7.cc ICMP_Templates_part_1.cc ICMP_Templates_part_2.cc ICMP_Templates_part_3.cc ICMP_Templates_part_4.cc ICMP_Templates_part_5.cc ICMP_Templates_part_6.cc ICMP_Templates_part_7.cc ICMP_Types_part_1.cc ICMP_Types_part_2.cc ICMP_Types_part_3.cc ICMP_Types_part_4.cc ICMP_Types_part_5.cc ICMP_Types_part_6.cc ICMP_Types_part_7.cc ICMPv6_Templates_part_1.cc ICMPv6_Templates_part_2.cc ICMPv6_Templates_part_3.cc ICMPv6_Templates_part_4.cc ICMPv6_Templates_part_5.cc ICMPv6_Templates_part_6.cc ICMPv6_Templates_part_7.cc ICMPv6_Types_part_1.cc ICMPv6_Types_part_2.cc ICMPv6_Types_part_3.cc ICMPv6_Types_part_4.cc ICMPv6_Types_part_5.cc ICMPv6_Types_part_6.cc ICMPv6_Types_part_7.cc IPCP_Types_part_1.cc IPCP_Types_part_2.cc IPCP_Types_part_3.cc IPCP_Types_part_4.cc IPCP_Types_part_5.cc IPCP_Types_part_6.cc IPCP_Types_part_7.cc IPL4asp_Functions_part_1.cc IPL4asp_Functions_part_2.cc IPL4asp_Functions_part_3.cc IPL4asp_Functions_part_4.cc IPL4asp_Functions_part_5.cc IPL4asp_Functions_part_6.cc IPL4asp_Functions_part_7.cc IPL4asp_PortType_part_1.cc IPL4asp_PortType_part_2.cc IPL4asp_PortType_part_3.cc IPL4asp_PortType_part_4.cc IPL4asp_PortType_part_5.cc IPL4asp_PortType_part_6.cc IPL4asp_PortType_part_7.cc IPL4asp_Types_part_1.cc IPL4asp_Types_part_2.cc IPL4asp_Types_part_3.cc IPL4asp_Types_part_4.cc IPL4asp_Types_part_5.cc IPL4asp_Types_part_6.cc IPL4asp_Types_part_7.cc IP_Types_part_1.cc IP_Types_part_2.cc IP_Types_part_3.cc IP_Types_part_4.cc IP_Types_part_5.cc IP_Types_part_6.cc IP_Types_part_7.cc Misc_Helpers_part_1.cc Misc_Helpers_part_2.cc Misc_Helpers_part_3.cc Misc_Helpers_part_4.cc Misc_Helpers_part_5.cc Misc_Helpers_part_6.cc Misc_Helpers_part_7.cc NS_Types_part_1.cc NS_Types_part_2.cc NS_Types_part_3.cc NS_Types_part_4.cc NS_Types_part_5.cc NS_Types_part_6.cc NS_Types_part_7.cc Native_Functions_part_1.cc Native_Functions_part_2.cc Native_Functions_part_3.cc Native_Functions_part_4.cc Native_Functions_part_5.cc Native_Functions_part_6.cc Native_Functions_part_7.cc Osmocom_Gb_Types_part_1.cc Osmocom_Gb_Types_part_2.cc Osmocom_Gb_Types_part_3.cc Osmocom_Gb_Types_part_4.cc Osmocom_Gb_Types_part_5.cc Osmocom_Gb_Types_part_6.cc Osmocom_Gb_Types_part_7.cc Osmocom_Types_part_1.cc Osmocom_Types_part_2.cc Osmocom_Types_part_3.cc Osmocom_Types_part_4.cc Osmocom_Types_part_5.cc Osmocom_Types_part_6.cc Osmocom_Types_part_7.cc Osmocom_VTY_Functions_part_1.cc Osmocom_VTY_Functions_part_2.cc Osmocom_VTY_Functions_part_3.cc Osmocom_VTY_Functions_part_4.cc Osmocom_VTY_Functions_part_5.cc Osmocom_VTY_Functions_part_6.cc Osmocom_VTY_Functions_part_7.cc PAP_Types_part_1.cc PAP_Types_part_2.cc PAP_Types_part_3.cc PAP_Types_part_4.cc PAP_Types_part_5.cc PAP_Types_part_6.cc PAP_Types_part_7.cc SCTP_Templates_part_1.cc SCTP_Templates_part_2.cc SCTP_Templates_part_3.cc SCTP_Templates_part_4.cc SCTP_Templates_part_5.cc SCTP_Templates_part_6.cc SCTP_Templates_part_7.cc Socket_API_Definitions_part_1.cc Socket_API_Definitions_part_2.cc Socket_API_Definitions_part_3.cc Socket_API_Definitions_part_4.cc Socket_API_Definitions_part_5.cc Socket_API_Definitions_part_6.cc Socket_API_Definitions_part_7.cc TCCConversion_Functions_part_1.cc TCCConversion_Functions_part_2.cc TCCConversion_Functions_part_3.cc TCCConversion_Functions_part_4.cc TCCConversion_Functions_part_5.cc TCCConversion_Functions_part_6.cc TCCConversion_Functions_part_7.cc TCCEncoding_Functions_part_1.cc TCCEncoding_Functions_part_2.cc TCCEncoding_Functions_part_3.cc TCCEncoding_Functions_part_4.cc TCCEncoding_Functions_part_5.cc TCCEncoding_Functions_part_6.cc TCCEncoding_Functions_part_7.cc TCCInterface_Functions_part_1.cc TCCInterface_Functions_part_2.cc TCCInterface_Functions_part_3.cc TCCInterface_Functions_part_4.cc TCCInterface_Functions_part_5.cc TCCInterface_Functions_part_6.cc TCCInterface_Functions_part_7.cc TELNETasp_PortType_part_1.cc TELNETasp_PortType_part_2.cc TELNETasp_PortType_part_3.cc TELNETasp_PortType_part_4.cc TELNETasp_PortType_part_5.cc TELNETasp_PortType_part_6.cc TELNETasp_PortType_part_7.cc UDP_Types_part_1.cc UDP_Types_part_2.cc UDP_Types_part_3.cc UDP_Types_part_4.cc UDP_Types_part_5.cc UDP_Types_part_6.cc UDP_Types_part_7.cc $(TTCN3_PP_MODULES:.ttcnpp=.cc) $(ASN1_MODULES:.asn=.cc) GENERATED_HEADERS = $(TTCN3_MODULES:.ttcn=.hh) $(TTCN3_PP_MODULES:.ttcnpp=.hh) $(ASN1_MODULES:.asn=.hh) # C/C++ Source & header files of Test Ports, external functions and # other modules: USER_SOURCES = BSSGP_EncDec.cc DIAMETER_CodecPort_CtrlFunctDef.cc DIAMETER_EncDec.cc GTPC_EncDec.cc GTPU_EncDec.cc GTPv1C_CodecPort_CtrlFunctDef.cc GTPv1U_CodecPort_CtrlFunctDef.cc ICMP_EncDec.cc ICMPv6_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc IP_EncDec.cc Native_FunctionDefs.cc TCCConversion.cc TCCInterface.cc TCCEncoding.cc TELNETasp_PT.cc UDP_EncDec.cc USER_HEADERS = IPL4asp_PT.hh TELNETasp_PT.hh # Shared object files of this project: SHARED_OBJECTS = $(GENERATED_SOURCES:.cc=.so) $(USER_SOURCES:.cc=.so) # Object files of this project that are needed for the executable test suite: 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 # The name of the executable test suite: EXECUTABLE = GGSN_Tests LIBRARY = lib$(EXECUTABLE).so TARGET = $(EXECUTABLE) # # Do not modify these unless you know what you are doing... # Platform specific additional libraries: # SOLARIS_LIBS = -lsocket -lnsl -lxml2 SOLARIS8_LIBS = -lsocket -lnsl -lxml2 LINUX_LIBS = -lxml2 -lsctp -lssl -lpthread FREEBSD_LIBS = -lxml2 WIN32_LIBS = -lxml2 # # Rules for building the executable... # all: $(TARGET) ; shared_objects: $(SHARED_OBJECTS) ; executable: $(EXECUTABLE) ; library: $(LIBRARY) ; objects: $(OBJECTS) compile; $(EXECUTABLE): $(SHARED_OBJECTS) if $(CXX) $(LDFLAGS) -o $@ -Wl,--no-as-needed $^ \ -L$(TTCN3_DIR)/lib$(TTCN3_SUBDIR) -l$(TTCN3_LIB) \ -L$(OPENSSL_DIR)/lib -lcrypto \ -L$(XMLDIR)/lib $($(PLATFORM)_LIBS); \ then : ; else $(TTCN3_DIR)/bin/titanver $(OBJECTS); exit 1; fi $(LIBRARY): $(OBJECTS) $(CXX) -shared -o $@ $(OBJECTS) .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 $@ %.so: %.o $(CXX) -shared -o $@ $< %.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 check: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) $(TTCN3_DIR)/bin/ttcn3_compiler -s $(COMPILER_FLAGS) $^ port: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) $(TTCN3_DIR)/bin/ttcn3_compiler -t $(COMPILER_FLAGS) $^ compile: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) $(TTCN3_DIR)/bin/ttcn3_compiler $(COMPILER_FLAGS) $^ - $? touch $@ clean: -$(RM) $(EXECUTABLE) $(LIBRARY) $(OBJECTS) -$(RM) $(GENERATED_HEADERS) -$(RM) $(GENERATED_SOURCES) -$(RM) $(SHARED_OBJECTS) -$(RM) $(PREPROCESSED_TTCN3_MODULES) -$(RM) compile $(DEPFILES) -$(RM) tags *.log dep: $(GENERATED_SOURCES) $(USER_SOURCES) ; ifeq ($(findstring n,$(MAKEFLAGS)),) ifeq ($(filter clean check port compile archive diag preprocess,$(MAKECMDGOALS)),) -include $(DEPFILES) endif endif archive: mkdir -p $(ARCHIVE_DIR) tar -cvhf - $(TTCN3_MODULES) $(TTCN3_PP_MODULES) \ $(TTCN3_INCLUDES) $(ASN1_MODULES) \ $(USER_HEADERS) $(USER_SOURCES) $(OTHER_FILES) \ | gzip >$(ARCHIVE_DIR)/`basename $(TARGET) .exe`-`date '+%y%m%d-%H%M'`.tgz diag: $(TTCN3_DIR)/bin/ttcn3_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... #