# This Makefile was generated by the Makefile Generator
# of the TTCN-3 Test Executor version 11.1.0
# for root (root@4aff4149e1a4) on Tue Feb 10 09:29:07 2026

# Copyright (c) 2000-2025 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 = env CCACHE_SLOPPINESS=time_macros ccache 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 =  -DGTP1U_EMULATION_HAVE_UECUPS

# 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  -D -q

# Execution mode: (either ttcn3 or ttcn3-parallel)
TTCN3_LIB = ttcn3-parallel-dynamic

# Lib folder of OpenSSL installation: (lib or lib64)
OPENSSL_LIB_DIR = lib

# 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 = C5G_Tests.ttcn Common4G5G.ttcn Common4G5G_LoopBack.ttcn CommonDefs.ttcn CommonIP.ttcn ConnHdlr.ttcn DNS_Helpers.ttcn EAP_TypeDefs.ttcn EPS_NAS_LoopBack_TypeDefs.ttcn EPS_NAS_TypeDefs.ttcn EUTRA_NR_Parameters.ttcn EUTRA_NR_SecurityFunctions.ttcn GSM_Types.ttcn GTPU_Types.ttcn GTPv1U_CodecPort.ttcn GTPv1U_CodecPort_CtrlFunct.ttcn GTPv1U_Templates.ttcn General_Types.ttcn IPCP_Templates.ttcn IPCP_Types.ttcn IPL4asp_Functions.ttcn IPL4asp_PortType.ttcn IPL4asp_Types.ttcn LoopbackIP.ttcn LoopbackIP_PacketFilterTest.ttcn Milenage_Functions.ttcn Misc_Helpers.ttcn NAS_5GC_Parameters.ttcn NAS_AuthenticationCommon.ttcn NAS_AuxiliaryDefsAndFunctions.ttcn NAS_CommonTemplates.ttcn NAS_CommonTypeDefs.ttcn NGAP_CodecPort.ttcn NGAP_CodecPort_CtrlFunct.ttcn NGAP_Emulation.ttcn NGAP_Functions.ttcn NGAP_Pixits.ttcn NGAP_Templates.ttcn NGAP_Types.ttcn NG_CryptoFunctions.ttcn NG_NAS_Common.ttcn NG_NAS_Functions.ttcn NG_NAS_MsgContainers.ttcn NG_NAS_Osmo_Templates.ttcn NG_NAS_Osmo_Types.ttcn NG_NAS_Templates.ttcn NG_NAS_TypeDefs.ttcn NG_V2X_MsgContainers.ttcn NG_V2X_TypeDefs.ttcn Native_Functions.ttcn Osmocom_Types.ttcn Parameters.ttcn SCTP_Templates.ttcn SMS_Templates.ttcn SMS_TypeDefs.ttcn Snow3G_Functions.ttcn Socket_API_Definitions.ttcn TCCConversion_Functions.ttcn TCCEncoding_Functions.ttcn TCCInterface_Functions.ttcn UECUPS_CodecPort.ttcn UECUPS_CodecPort_CtrlFunct.ttcn UECUPS_Types.ttcn
TTCN3_MODULES_TO_SPLIT = C5G_Tests.ttcn Common4G5G.ttcn Common4G5G_LoopBack.ttcn CommonDefs.ttcn CommonIP.ttcn ConnHdlr.ttcn DNS_Helpers.ttcn EAP_TypeDefs.ttcn EPS_NAS_LoopBack_TypeDefs.ttcn EPS_NAS_TypeDefs.ttcn EUTRA_NR_Parameters.ttcn EUTRA_NR_SecurityFunctions.ttcn GSM_Types.ttcn GTPU_Types.ttcn GTPv1U_CodecPort.ttcn GTPv1U_CodecPort_CtrlFunct.ttcn GTPv1U_Templates.ttcn General_Types.ttcn IPCP_Templates.ttcn IPCP_Types.ttcn IPL4asp_Functions.ttcn IPL4asp_PortType.ttcn IPL4asp_Types.ttcn LoopbackIP.ttcn LoopbackIP_PacketFilterTest.ttcn Milenage_Functions.ttcn Misc_Helpers.ttcn NAS_5GC_Parameters.ttcn NAS_AuthenticationCommon.ttcn NAS_AuxiliaryDefsAndFunctions.ttcn NAS_CommonTemplates.ttcn NAS_CommonTypeDefs.ttcn NGAP_CodecPort.ttcn NGAP_CodecPort_CtrlFunct.ttcn NGAP_Emulation.ttcn NGAP_Functions.ttcn NGAP_Pixits.ttcn NGAP_Templates.ttcn NGAP_Types.ttcn NG_CryptoFunctions.ttcn NG_NAS_Common.ttcn NG_NAS_Functions.ttcn NG_NAS_MsgContainers.ttcn NG_NAS_Osmo_Templates.ttcn NG_NAS_Osmo_Types.ttcn NG_NAS_Templates.ttcn NG_NAS_TypeDefs.ttcn NG_V2X_MsgContainers.ttcn NG_V2X_TypeDefs.ttcn Native_Functions.ttcn Osmocom_Types.ttcn Parameters.ttcn SCTP_Templates.ttcn SMS_Templates.ttcn SMS_TypeDefs.ttcn Snow3G_Functions.ttcn Socket_API_Definitions.ttcn TCCConversion_Functions.ttcn TCCEncoding_Functions.ttcn TCCInterface_Functions.ttcn UECUPS_CodecPort.ttcn UECUPS_CodecPort_CtrlFunct.ttcn UECUPS_Types.ttcn

# TTCN-3 modules to preprocess:
TTCN3_PP_MODULES = GTPv1U_Emulation.ttcnpp

# Files to include in TTCN-3 preprocessed modules:
TTCN3_INCLUDES =

# ASN.1 modules of this project:
ASN1_MODULES = NGAP_CommonDataTypes.asn NGAP_Constants.asn NGAP_Containers.asn NGAP_IEs.asn NGAP_PDU_Contents.asn NGAP_PDU_Descriptions.asn
ASN1_MODULES_TO_SPLIT = NGAP_CommonDataTypes.asn NGAP_Constants.asn NGAP_Containers.asn NGAP_IEs.asn NGAP_PDU_Contents.asn NGAP_PDU_Descriptions.asn

# TTCN-3 source files generated by the C preprocessor:
PREPROCESSED_TTCN3_MODULES = GTPv1U_Emulation.ttcn
PREPROCESSED_TTCN3_MODULES_TO_SPLIT = GTPv1U_Emulation.ttcn

# C++ source & header files generated from the TTCN-3 & ASN.1 modules of
# this project:
GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) C5G_Tests_part_1.cc C5G_Tests_part_2.cc C5G_Tests_part_3.cc C5G_Tests_part_4.cc C5G_Tests_part_5.cc C5G_Tests_part_6.cc C5G_Tests_part_7.cc Common4G5G_part_1.cc Common4G5G_part_2.cc Common4G5G_part_3.cc Common4G5G_part_4.cc Common4G5G_part_5.cc Common4G5G_part_6.cc Common4G5G_part_7.cc Common4G5G_LoopBack_part_1.cc Common4G5G_LoopBack_part_2.cc Common4G5G_LoopBack_part_3.cc Common4G5G_LoopBack_part_4.cc Common4G5G_LoopBack_part_5.cc Common4G5G_LoopBack_part_6.cc Common4G5G_LoopBack_part_7.cc CommonDefs_part_1.cc CommonDefs_part_2.cc CommonDefs_part_3.cc CommonDefs_part_4.cc CommonDefs_part_5.cc CommonDefs_part_6.cc CommonDefs_part_7.cc CommonIP_part_1.cc CommonIP_part_2.cc CommonIP_part_3.cc CommonIP_part_4.cc CommonIP_part_5.cc CommonIP_part_6.cc CommonIP_part_7.cc ConnHdlr_part_1.cc ConnHdlr_part_2.cc ConnHdlr_part_3.cc ConnHdlr_part_4.cc ConnHdlr_part_5.cc ConnHdlr_part_6.cc ConnHdlr_part_7.cc DNS_Helpers_part_1.cc DNS_Helpers_part_2.cc DNS_Helpers_part_3.cc DNS_Helpers_part_4.cc DNS_Helpers_part_5.cc DNS_Helpers_part_6.cc DNS_Helpers_part_7.cc EAP_TypeDefs_part_1.cc EAP_TypeDefs_part_2.cc EAP_TypeDefs_part_3.cc EAP_TypeDefs_part_4.cc EAP_TypeDefs_part_5.cc EAP_TypeDefs_part_6.cc EAP_TypeDefs_part_7.cc EPS_NAS_LoopBack_TypeDefs_part_1.cc EPS_NAS_LoopBack_TypeDefs_part_2.cc EPS_NAS_LoopBack_TypeDefs_part_3.cc EPS_NAS_LoopBack_TypeDefs_part_4.cc EPS_NAS_LoopBack_TypeDefs_part_5.cc EPS_NAS_LoopBack_TypeDefs_part_6.cc EPS_NAS_LoopBack_TypeDefs_part_7.cc EPS_NAS_TypeDefs_part_1.cc EPS_NAS_TypeDefs_part_2.cc EPS_NAS_TypeDefs_part_3.cc EPS_NAS_TypeDefs_part_4.cc EPS_NAS_TypeDefs_part_5.cc EPS_NAS_TypeDefs_part_6.cc EPS_NAS_TypeDefs_part_7.cc EUTRA_NR_Parameters_part_1.cc EUTRA_NR_Parameters_part_2.cc EUTRA_NR_Parameters_part_3.cc EUTRA_NR_Parameters_part_4.cc EUTRA_NR_Parameters_part_5.cc EUTRA_NR_Parameters_part_6.cc EUTRA_NR_Parameters_part_7.cc EUTRA_NR_SecurityFunctions_part_1.cc EUTRA_NR_SecurityFunctions_part_2.cc EUTRA_NR_SecurityFunctions_part_3.cc EUTRA_NR_SecurityFunctions_part_4.cc EUTRA_NR_SecurityFunctions_part_5.cc EUTRA_NR_SecurityFunctions_part_6.cc EUTRA_NR_SecurityFunctions_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 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 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 IPCP_Templates_part_1.cc IPCP_Templates_part_2.cc IPCP_Templates_part_3.cc IPCP_Templates_part_4.cc IPCP_Templates_part_5.cc IPCP_Templates_part_6.cc IPCP_Templates_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 LoopbackIP_part_1.cc LoopbackIP_part_2.cc LoopbackIP_part_3.cc LoopbackIP_part_4.cc LoopbackIP_part_5.cc LoopbackIP_part_6.cc LoopbackIP_part_7.cc LoopbackIP_PacketFilterTest_part_1.cc LoopbackIP_PacketFilterTest_part_2.cc LoopbackIP_PacketFilterTest_part_3.cc LoopbackIP_PacketFilterTest_part_4.cc LoopbackIP_PacketFilterTest_part_5.cc LoopbackIP_PacketFilterTest_part_6.cc LoopbackIP_PacketFilterTest_part_7.cc Milenage_Functions_part_1.cc Milenage_Functions_part_2.cc Milenage_Functions_part_3.cc Milenage_Functions_part_4.cc Milenage_Functions_part_5.cc Milenage_Functions_part_6.cc Milenage_Functions_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 NAS_5GC_Parameters_part_1.cc NAS_5GC_Parameters_part_2.cc NAS_5GC_Parameters_part_3.cc NAS_5GC_Parameters_part_4.cc NAS_5GC_Parameters_part_5.cc NAS_5GC_Parameters_part_6.cc NAS_5GC_Parameters_part_7.cc NAS_AuthenticationCommon_part_1.cc NAS_AuthenticationCommon_part_2.cc NAS_AuthenticationCommon_part_3.cc NAS_AuthenticationCommon_part_4.cc NAS_AuthenticationCommon_part_5.cc NAS_AuthenticationCommon_part_6.cc NAS_AuthenticationCommon_part_7.cc NAS_AuxiliaryDefsAndFunctions_part_1.cc NAS_AuxiliaryDefsAndFunctions_part_2.cc NAS_AuxiliaryDefsAndFunctions_part_3.cc NAS_AuxiliaryDefsAndFunctions_part_4.cc NAS_AuxiliaryDefsAndFunctions_part_5.cc NAS_AuxiliaryDefsAndFunctions_part_6.cc NAS_AuxiliaryDefsAndFunctions_part_7.cc NAS_CommonTemplates_part_1.cc NAS_CommonTemplates_part_2.cc NAS_CommonTemplates_part_3.cc NAS_CommonTemplates_part_4.cc NAS_CommonTemplates_part_5.cc NAS_CommonTemplates_part_6.cc NAS_CommonTemplates_part_7.cc NAS_CommonTypeDefs_part_1.cc NAS_CommonTypeDefs_part_2.cc NAS_CommonTypeDefs_part_3.cc NAS_CommonTypeDefs_part_4.cc NAS_CommonTypeDefs_part_5.cc NAS_CommonTypeDefs_part_6.cc NAS_CommonTypeDefs_part_7.cc NGAP_CodecPort_part_1.cc NGAP_CodecPort_part_2.cc NGAP_CodecPort_part_3.cc NGAP_CodecPort_part_4.cc NGAP_CodecPort_part_5.cc NGAP_CodecPort_part_6.cc NGAP_CodecPort_part_7.cc NGAP_CodecPort_CtrlFunct_part_1.cc NGAP_CodecPort_CtrlFunct_part_2.cc NGAP_CodecPort_CtrlFunct_part_3.cc NGAP_CodecPort_CtrlFunct_part_4.cc NGAP_CodecPort_CtrlFunct_part_5.cc NGAP_CodecPort_CtrlFunct_part_6.cc NGAP_CodecPort_CtrlFunct_part_7.cc NGAP_Emulation_part_1.cc NGAP_Emulation_part_2.cc NGAP_Emulation_part_3.cc NGAP_Emulation_part_4.cc NGAP_Emulation_part_5.cc NGAP_Emulation_part_6.cc NGAP_Emulation_part_7.cc NGAP_Functions_part_1.cc NGAP_Functions_part_2.cc NGAP_Functions_part_3.cc NGAP_Functions_part_4.cc NGAP_Functions_part_5.cc NGAP_Functions_part_6.cc NGAP_Functions_part_7.cc NGAP_Pixits_part_1.cc NGAP_Pixits_part_2.cc NGAP_Pixits_part_3.cc NGAP_Pixits_part_4.cc NGAP_Pixits_part_5.cc NGAP_Pixits_part_6.cc NGAP_Pixits_part_7.cc NGAP_Templates_part_1.cc NGAP_Templates_part_2.cc NGAP_Templates_part_3.cc NGAP_Templates_part_4.cc NGAP_Templates_part_5.cc NGAP_Templates_part_6.cc NGAP_Templates_part_7.cc NGAP_Types_part_1.cc NGAP_Types_part_2.cc NGAP_Types_part_3.cc NGAP_Types_part_4.cc NGAP_Types_part_5.cc NGAP_Types_part_6.cc NGAP_Types_part_7.cc NG_CryptoFunctions_part_1.cc NG_CryptoFunctions_part_2.cc NG_CryptoFunctions_part_3.cc NG_CryptoFunctions_part_4.cc NG_CryptoFunctions_part_5.cc NG_CryptoFunctions_part_6.cc NG_CryptoFunctions_part_7.cc NG_NAS_Common_part_1.cc NG_NAS_Common_part_2.cc NG_NAS_Common_part_3.cc NG_NAS_Common_part_4.cc NG_NAS_Common_part_5.cc NG_NAS_Common_part_6.cc NG_NAS_Common_part_7.cc NG_NAS_Functions_part_1.cc NG_NAS_Functions_part_2.cc NG_NAS_Functions_part_3.cc NG_NAS_Functions_part_4.cc NG_NAS_Functions_part_5.cc NG_NAS_Functions_part_6.cc NG_NAS_Functions_part_7.cc NG_NAS_MsgContainers_part_1.cc NG_NAS_MsgContainers_part_2.cc NG_NAS_MsgContainers_part_3.cc NG_NAS_MsgContainers_part_4.cc NG_NAS_MsgContainers_part_5.cc NG_NAS_MsgContainers_part_6.cc NG_NAS_MsgContainers_part_7.cc NG_NAS_Osmo_Templates_part_1.cc NG_NAS_Osmo_Templates_part_2.cc NG_NAS_Osmo_Templates_part_3.cc NG_NAS_Osmo_Templates_part_4.cc NG_NAS_Osmo_Templates_part_5.cc NG_NAS_Osmo_Templates_part_6.cc NG_NAS_Osmo_Templates_part_7.cc NG_NAS_Osmo_Types_part_1.cc NG_NAS_Osmo_Types_part_2.cc NG_NAS_Osmo_Types_part_3.cc NG_NAS_Osmo_Types_part_4.cc NG_NAS_Osmo_Types_part_5.cc NG_NAS_Osmo_Types_part_6.cc NG_NAS_Osmo_Types_part_7.cc NG_NAS_Templates_part_1.cc NG_NAS_Templates_part_2.cc NG_NAS_Templates_part_3.cc NG_NAS_Templates_part_4.cc NG_NAS_Templates_part_5.cc NG_NAS_Templates_part_6.cc NG_NAS_Templates_part_7.cc NG_NAS_TypeDefs_part_1.cc NG_NAS_TypeDefs_part_2.cc NG_NAS_TypeDefs_part_3.cc NG_NAS_TypeDefs_part_4.cc NG_NAS_TypeDefs_part_5.cc NG_NAS_TypeDefs_part_6.cc NG_NAS_TypeDefs_part_7.cc NG_V2X_MsgContainers_part_1.cc NG_V2X_MsgContainers_part_2.cc NG_V2X_MsgContainers_part_3.cc NG_V2X_MsgContainers_part_4.cc NG_V2X_MsgContainers_part_5.cc NG_V2X_MsgContainers_part_6.cc NG_V2X_MsgContainers_part_7.cc NG_V2X_TypeDefs_part_1.cc NG_V2X_TypeDefs_part_2.cc NG_V2X_TypeDefs_part_3.cc NG_V2X_TypeDefs_part_4.cc NG_V2X_TypeDefs_part_5.cc NG_V2X_TypeDefs_part_6.cc NG_V2X_TypeDefs_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_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 Parameters_part_1.cc Parameters_part_2.cc Parameters_part_3.cc Parameters_part_4.cc Parameters_part_5.cc Parameters_part_6.cc Parameters_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 SMS_Templates_part_1.cc SMS_Templates_part_2.cc SMS_Templates_part_3.cc SMS_Templates_part_4.cc SMS_Templates_part_5.cc SMS_Templates_part_6.cc SMS_Templates_part_7.cc SMS_TypeDefs_part_1.cc SMS_TypeDefs_part_2.cc SMS_TypeDefs_part_3.cc SMS_TypeDefs_part_4.cc SMS_TypeDefs_part_5.cc SMS_TypeDefs_part_6.cc SMS_TypeDefs_part_7.cc Snow3G_Functions_part_1.cc Snow3G_Functions_part_2.cc Snow3G_Functions_part_3.cc Snow3G_Functions_part_4.cc Snow3G_Functions_part_5.cc Snow3G_Functions_part_6.cc Snow3G_Functions_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 UECUPS_CodecPort_part_1.cc UECUPS_CodecPort_part_2.cc UECUPS_CodecPort_part_3.cc UECUPS_CodecPort_part_4.cc UECUPS_CodecPort_part_5.cc UECUPS_CodecPort_part_6.cc UECUPS_CodecPort_part_7.cc UECUPS_CodecPort_CtrlFunct_part_1.cc UECUPS_CodecPort_CtrlFunct_part_2.cc UECUPS_CodecPort_CtrlFunct_part_3.cc UECUPS_CodecPort_CtrlFunct_part_4.cc UECUPS_CodecPort_CtrlFunct_part_5.cc UECUPS_CodecPort_CtrlFunct_part_6.cc UECUPS_CodecPort_CtrlFunct_part_7.cc UECUPS_Types_part_1.cc UECUPS_Types_part_2.cc UECUPS_Types_part_3.cc UECUPS_Types_part_4.cc UECUPS_Types_part_5.cc UECUPS_Types_part_6.cc UECUPS_Types_part_7.cc $(TTCN3_PP_MODULES:.ttcnpp=.cc) GTPv1U_Emulation_part_1.cc GTPv1U_Emulation_part_2.cc GTPv1U_Emulation_part_3.cc GTPv1U_Emulation_part_4.cc GTPv1U_Emulation_part_5.cc GTPv1U_Emulation_part_6.cc GTPv1U_Emulation_part_7.cc $(ASN1_MODULES:.asn=.cc) NGAP_CommonDataTypes_part_1.cc NGAP_CommonDataTypes_part_2.cc NGAP_CommonDataTypes_part_3.cc NGAP_CommonDataTypes_part_4.cc NGAP_CommonDataTypes_part_5.cc NGAP_CommonDataTypes_part_6.cc NGAP_CommonDataTypes_part_7.cc NGAP_Constants_part_1.cc NGAP_Constants_part_2.cc NGAP_Constants_part_3.cc NGAP_Constants_part_4.cc NGAP_Constants_part_5.cc NGAP_Constants_part_6.cc NGAP_Constants_part_7.cc NGAP_Containers_part_1.cc NGAP_Containers_part_2.cc NGAP_Containers_part_3.cc NGAP_Containers_part_4.cc NGAP_Containers_part_5.cc NGAP_Containers_part_6.cc NGAP_Containers_part_7.cc NGAP_IEs_part_1.cc NGAP_IEs_part_2.cc NGAP_IEs_part_3.cc NGAP_IEs_part_4.cc NGAP_IEs_part_5.cc NGAP_IEs_part_6.cc NGAP_IEs_part_7.cc NGAP_PDU_Contents_part_1.cc NGAP_PDU_Contents_part_2.cc NGAP_PDU_Contents_part_3.cc NGAP_PDU_Contents_part_4.cc NGAP_PDU_Contents_part_5.cc NGAP_PDU_Contents_part_6.cc NGAP_PDU_Contents_part_7.cc NGAP_PDU_Descriptions_part_1.cc NGAP_PDU_Descriptions_part_2.cc NGAP_PDU_Descriptions_part_3.cc NGAP_PDU_Descriptions_part_4.cc NGAP_PDU_Descriptions_part_5.cc NGAP_PDU_Descriptions_part_6.cc NGAP_PDU_Descriptions_part_7.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 = key_derivation.c milenage.c snow-3g.c IPL4asp_PT.cc IPL4asp_discovery.cc Native_FunctionDefs.cc common_ext.cc Milenage_FunctionDefs.cc NGAP_CodecPort_CtrlFunctDef.cc NGAP_EncDec.cc NG_CryptoFunctionDefs.cc Snow3G_FunctionDefs.cc TCCConversion.cc TCCEncoding.cc TCCInterface.cc GTPU_EncDec.cc GTPv1U_CodecPort_CtrlFunctDef.cc UECUPS_CodecPort_CtrlFunctDef.cc
USER_HEADERS = key_derivation.h milenage.h snow-3g.h IPL4asp_PT.hh

# Shared object files of this project:
SHARED_OBJECTS = $(GENERATED_SOURCES:.cc=.so) key_derivation.so milenage.so snow-3g.so IPL4asp_PT.so IPL4asp_discovery.so Native_FunctionDefs.so common_ext.so Milenage_FunctionDefs.so NGAP_CodecPort_CtrlFunctDef.so NGAP_EncDec.so NG_CryptoFunctionDefs.so Snow3G_FunctionDefs.so TCCConversion.so TCCEncoding.so TCCInterface.so GTPU_EncDec.so GTPv1U_CodecPort_CtrlFunctDef.so UECUPS_CodecPort_CtrlFunctDef.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 = key_derivation.o milenage.o snow-3g.o IPL4asp_PT.o IPL4asp_discovery.o Native_FunctionDefs.o common_ext.o Milenage_FunctionDefs.o NGAP_CodecPort_CtrlFunctDef.o NGAP_EncDec.o NG_CryptoFunctionDefs.o Snow3G_FunctionDefs.o TCCConversion.o TCCEncoding.o TCCInterface.o GTPU_EncDec.o GTPv1U_CodecPort_CtrlFunctDef.o UECUPS_CodecPort_CtrlFunctDef.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 = C5G_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 -lgnutls -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)
	@echo '  CCLD     $@'
	@if $(CXX) $(LDFLAGS) -o $@ -Wl,--no-as-needed $^ \
	-L$(TTCN3_DIR)/lib$(TTCN3_SUBDIR) -l$(TTCN3_LIB) \
	-L$(OPENSSL_DIR)/$(OPENSSL_LIB_DIR) -lcrypto \
	-L$(XMLDIR)/lib $($(PLATFORM)_LIBS); \
	then : ; else $(TTCN3_DIR)/bin/titanver $(OBJECTS); exit 1; fi

$(LIBRARY): $(OBJECTS)
	@echo '  CCLD     $@'
	@$(CXX) -shared -o $@ $(OBJECTS)

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

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

%.so: %.o
	@echo '  CCLD     $@'
	@$(CXX) -shared -o $@ $<

%.ttcn: %.ttcnpp $(TTCN3_INCLUDES)
	@echo '  PP       $@'
	@$(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/compiler -s $(COMPILER_FLAGS) $^

port: $(TTCN3_MODULES)  $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES)
	$(TTCN3_DIR)/bin/compiler -t $(COMPILER_FLAGS) $^

compile: $(TTCN3_MODULES)  $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES)
	@echo '  TTCN     *.ttcn *.asn'
	@$(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) $^ \
	- $(filter-out $(TTCN3_MODULES_TO_SPLIT) $(PREPROCESSED_TTCN3_MODULES_TO_SPLIT) $(ASN1_MODULES_TO_SPLIT), $?) \
	-U 8 $(filter $(TTCN3_MODULES_TO_SPLIT) $(PREPROCESSED_TTCN3_MODULES_TO_SPLIT) $(ASN1_MODULES_TO_SPLIT), $?)
	touch $@

clean:
	-$(RM) $(EXECUTABLE) $(LIBRARY) $(OBJECTS)
	-$(RM) $(GENERATED_HEADERS)
	-$(RM) $(GENERATED_SOURCES)
	-$(RM) $(SHARED_OBJECTS)
	-$(RM) $(PREPROCESSED_TTCN3_MODULES)
	-$(RM) tags *.log
	-$(RM) compile $(DEPFILES)

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/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 OPENSSL_LIB_DIR=$(OPENSSL_LIB_DIR)
	@echo XMLDIR=$(XMLDIR)
	@echo PLATFORM=$(PLATFORM)

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

