# This Makefile was generated by the Makefile Generator
# of the TTCN-3 Test Executor version 11.1.0
# for root (root@e5af5e61baa9) on Sun Oct 19 06:00:06 2025

# 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 =  -DIPA_EMULATION_CTRL -DIPA_EMULATION_OML -DIPA_EMULATION_OSMO_PCU -DIPA_EMULATION_RSL

# 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 = AMR_Types.ttcn AbisOML_Types.ttcn BTS_Tests.ttcn BTS_Tests_ASCI.ttcn BTS_Tests_LAPDm.ttcn BTS_Tests_OML.ttcn BTS_Tests_SMSCB.ttcn BTS_Tests_VAMOS.ttcn BTS_Tests_perf.ttcn GSM_RR_Types.ttcn GSM_RestOctets.ttcn GSM_SystemInformation.ttcn GSM_Types.ttcn General_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_Testing.ttcn IPA_Types.ttcn IPL4asp_Functions.ttcn IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IuUP_Emulation.ttcn IuUP_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_Types.ttcn L3_Common.ttcn L3_Templates.ttcn LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn Misc_Helpers.ttcn MobileL3_CC_Types.ttcn MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn MobileL3_RRM_Types.ttcn MobileL3_SMS_Types.ttcn MobileL3_SS_Types.ttcn MobileL3_Types.ttcn Native_Functions.ttcn OSMUX_CodecPort.ttcn OSMUX_CodecPort_CtrlFunct.ttcn OSMUX_Emulation.ttcn OSMUX_Types.ttcn Osmocom_CTRL_Adapter.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Types.ttcn Osmocom_Types.ttcn Osmocom_VTY_Functions.ttcn PCUIF_CodecPort.ttcn PCUIF_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RSL_Emulation.ttcn RSL_Types.ttcn RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunct.ttcn RTP_Emulation.ttcn RTP_Types.ttcn Socket_API_Definitions.ttcn TCCConversion_Functions.ttcn TCCInterface_Functions.ttcn TELNETasp_PortType.ttcn TRXC_CodecPort.ttcn TRXC_CodecPort_CtrlFunct.ttcn TRXC_Types.ttcn UD_PortType.ttcn UD_Types.ttcn
TTCN3_MODULES_TO_SPLIT = AMR_Types.ttcn AbisOML_Types.ttcn BTS_Tests.ttcn BTS_Tests_ASCI.ttcn BTS_Tests_LAPDm.ttcn BTS_Tests_OML.ttcn BTS_Tests_SMSCB.ttcn BTS_Tests_VAMOS.ttcn BTS_Tests_perf.ttcn GSM_RR_Types.ttcn GSM_RestOctets.ttcn GSM_SystemInformation.ttcn GSM_Types.ttcn General_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_Testing.ttcn IPA_Types.ttcn IPL4asp_Functions.ttcn IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IuUP_Emulation.ttcn IuUP_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_Types.ttcn L3_Common.ttcn L3_Templates.ttcn LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn Misc_Helpers.ttcn MobileL3_CC_Types.ttcn MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn MobileL3_RRM_Types.ttcn MobileL3_SMS_Types.ttcn MobileL3_SS_Types.ttcn MobileL3_Types.ttcn Native_Functions.ttcn OSMUX_CodecPort.ttcn OSMUX_CodecPort_CtrlFunct.ttcn OSMUX_Emulation.ttcn OSMUX_Types.ttcn Osmocom_CTRL_Adapter.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Types.ttcn Osmocom_Types.ttcn Osmocom_VTY_Functions.ttcn PCUIF_CodecPort.ttcn PCUIF_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RSL_Emulation.ttcn RSL_Types.ttcn RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunct.ttcn RTP_Emulation.ttcn RTP_Types.ttcn Socket_API_Definitions.ttcn TCCConversion_Functions.ttcn TCCInterface_Functions.ttcn TELNETasp_PortType.ttcn TRXC_CodecPort.ttcn TRXC_CodecPort_CtrlFunct.ttcn TRXC_Types.ttcn UD_PortType.ttcn UD_Types.ttcn

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

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

# ASN.1 modules of this project:
ASN1_MODULES =
ASN1_MODULES_TO_SPLIT =

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

# C++ source & header files generated from the TTCN-3 & ASN.1 modules of
# this project:
GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) AMR_Types_part_1.cc AMR_Types_part_2.cc AMR_Types_part_3.cc AMR_Types_part_4.cc AMR_Types_part_5.cc AMR_Types_part_6.cc AMR_Types_part_7.cc AbisOML_Types_part_1.cc AbisOML_Types_part_2.cc AbisOML_Types_part_3.cc AbisOML_Types_part_4.cc AbisOML_Types_part_5.cc AbisOML_Types_part_6.cc AbisOML_Types_part_7.cc BTS_Tests_part_1.cc BTS_Tests_part_2.cc BTS_Tests_part_3.cc BTS_Tests_part_4.cc BTS_Tests_part_5.cc BTS_Tests_part_6.cc BTS_Tests_part_7.cc BTS_Tests_ASCI_part_1.cc BTS_Tests_ASCI_part_2.cc BTS_Tests_ASCI_part_3.cc BTS_Tests_ASCI_part_4.cc BTS_Tests_ASCI_part_5.cc BTS_Tests_ASCI_part_6.cc BTS_Tests_ASCI_part_7.cc BTS_Tests_LAPDm_part_1.cc BTS_Tests_LAPDm_part_2.cc BTS_Tests_LAPDm_part_3.cc BTS_Tests_LAPDm_part_4.cc BTS_Tests_LAPDm_part_5.cc BTS_Tests_LAPDm_part_6.cc BTS_Tests_LAPDm_part_7.cc BTS_Tests_OML_part_1.cc BTS_Tests_OML_part_2.cc BTS_Tests_OML_part_3.cc BTS_Tests_OML_part_4.cc BTS_Tests_OML_part_5.cc BTS_Tests_OML_part_6.cc BTS_Tests_OML_part_7.cc BTS_Tests_SMSCB_part_1.cc BTS_Tests_SMSCB_part_2.cc BTS_Tests_SMSCB_part_3.cc BTS_Tests_SMSCB_part_4.cc BTS_Tests_SMSCB_part_5.cc BTS_Tests_SMSCB_part_6.cc BTS_Tests_SMSCB_part_7.cc BTS_Tests_VAMOS_part_1.cc BTS_Tests_VAMOS_part_2.cc BTS_Tests_VAMOS_part_3.cc BTS_Tests_VAMOS_part_4.cc BTS_Tests_VAMOS_part_5.cc BTS_Tests_VAMOS_part_6.cc BTS_Tests_VAMOS_part_7.cc BTS_Tests_perf_part_1.cc BTS_Tests_perf_part_2.cc BTS_Tests_perf_part_3.cc BTS_Tests_perf_part_4.cc BTS_Tests_perf_part_5.cc BTS_Tests_perf_part_6.cc BTS_Tests_perf_part_7.cc GSM_RR_Types_part_1.cc GSM_RR_Types_part_2.cc GSM_RR_Types_part_3.cc GSM_RR_Types_part_4.cc GSM_RR_Types_part_5.cc GSM_RR_Types_part_6.cc GSM_RR_Types_part_7.cc GSM_RestOctets_part_1.cc GSM_RestOctets_part_2.cc GSM_RestOctets_part_3.cc GSM_RestOctets_part_4.cc GSM_RestOctets_part_5.cc GSM_RestOctets_part_6.cc GSM_RestOctets_part_7.cc GSM_SystemInformation_part_1.cc GSM_SystemInformation_part_2.cc GSM_SystemInformation_part_3.cc GSM_SystemInformation_part_4.cc GSM_SystemInformation_part_5.cc GSM_SystemInformation_part_6.cc GSM_SystemInformation_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 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 IPA_CodecPort_part_1.cc IPA_CodecPort_part_2.cc IPA_CodecPort_part_3.cc IPA_CodecPort_part_4.cc IPA_CodecPort_part_5.cc IPA_CodecPort_part_6.cc IPA_CodecPort_part_7.cc IPA_CodecPort_CtrlFunct_part_1.cc IPA_CodecPort_CtrlFunct_part_2.cc IPA_CodecPort_CtrlFunct_part_3.cc IPA_CodecPort_CtrlFunct_part_4.cc IPA_CodecPort_CtrlFunct_part_5.cc IPA_CodecPort_CtrlFunct_part_6.cc IPA_CodecPort_CtrlFunct_part_7.cc IPA_Testing_part_1.cc IPA_Testing_part_2.cc IPA_Testing_part_3.cc IPA_Testing_part_4.cc IPA_Testing_part_5.cc IPA_Testing_part_6.cc IPA_Testing_part_7.cc IPA_Types_part_1.cc IPA_Types_part_2.cc IPA_Types_part_3.cc IPA_Types_part_4.cc IPA_Types_part_5.cc IPA_Types_part_6.cc IPA_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 IuUP_Emulation_part_1.cc IuUP_Emulation_part_2.cc IuUP_Emulation_part_3.cc IuUP_Emulation_part_4.cc IuUP_Emulation_part_5.cc IuUP_Emulation_part_6.cc IuUP_Emulation_part_7.cc IuUP_Types_part_1.cc IuUP_Types_part_2.cc IuUP_Types_part_3.cc IuUP_Types_part_4.cc IuUP_Types_part_5.cc IuUP_Types_part_6.cc IuUP_Types_part_7.cc L1CTL_PortType_part_1.cc L1CTL_PortType_part_2.cc L1CTL_PortType_part_3.cc L1CTL_PortType_part_4.cc L1CTL_PortType_part_5.cc L1CTL_PortType_part_6.cc L1CTL_PortType_part_7.cc L1CTL_PortType_CtrlFunct_part_1.cc L1CTL_PortType_CtrlFunct_part_2.cc L1CTL_PortType_CtrlFunct_part_3.cc L1CTL_PortType_CtrlFunct_part_4.cc L1CTL_PortType_CtrlFunct_part_5.cc L1CTL_PortType_CtrlFunct_part_6.cc L1CTL_PortType_CtrlFunct_part_7.cc L1CTL_Types_part_1.cc L1CTL_Types_part_2.cc L1CTL_Types_part_3.cc L1CTL_Types_part_4.cc L1CTL_Types_part_5.cc L1CTL_Types_part_6.cc L1CTL_Types_part_7.cc L3_Common_part_1.cc L3_Common_part_2.cc L3_Common_part_3.cc L3_Common_part_4.cc L3_Common_part_5.cc L3_Common_part_6.cc L3_Common_part_7.cc L3_Templates_part_1.cc L3_Templates_part_2.cc L3_Templates_part_3.cc L3_Templates_part_4.cc L3_Templates_part_5.cc L3_Templates_part_6.cc L3_Templates_part_7.cc LAPDm_RAW_PT_part_1.cc LAPDm_RAW_PT_part_2.cc LAPDm_RAW_PT_part_3.cc LAPDm_RAW_PT_part_4.cc LAPDm_RAW_PT_part_5.cc LAPDm_RAW_PT_part_6.cc LAPDm_RAW_PT_part_7.cc LAPDm_Types_part_1.cc LAPDm_Types_part_2.cc LAPDm_Types_part_3.cc LAPDm_Types_part_4.cc LAPDm_Types_part_5.cc LAPDm_Types_part_6.cc LAPDm_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 MobileL3_CC_Types_part_1.cc MobileL3_CC_Types_part_2.cc MobileL3_CC_Types_part_3.cc MobileL3_CC_Types_part_4.cc MobileL3_CC_Types_part_5.cc MobileL3_CC_Types_part_6.cc MobileL3_CC_Types_part_7.cc MobileL3_CommonIE_Types_part_1.cc MobileL3_CommonIE_Types_part_2.cc MobileL3_CommonIE_Types_part_3.cc MobileL3_CommonIE_Types_part_4.cc MobileL3_CommonIE_Types_part_5.cc MobileL3_CommonIE_Types_part_6.cc MobileL3_CommonIE_Types_part_7.cc MobileL3_GMM_SM_Types_part_1.cc MobileL3_GMM_SM_Types_part_2.cc MobileL3_GMM_SM_Types_part_3.cc MobileL3_GMM_SM_Types_part_4.cc MobileL3_GMM_SM_Types_part_5.cc MobileL3_GMM_SM_Types_part_6.cc MobileL3_GMM_SM_Types_part_7.cc MobileL3_MM_Types_part_1.cc MobileL3_MM_Types_part_2.cc MobileL3_MM_Types_part_3.cc MobileL3_MM_Types_part_4.cc MobileL3_MM_Types_part_5.cc MobileL3_MM_Types_part_6.cc MobileL3_MM_Types_part_7.cc MobileL3_RRM_Types_part_1.cc MobileL3_RRM_Types_part_2.cc MobileL3_RRM_Types_part_3.cc MobileL3_RRM_Types_part_4.cc MobileL3_RRM_Types_part_5.cc MobileL3_RRM_Types_part_6.cc MobileL3_RRM_Types_part_7.cc MobileL3_SMS_Types_part_1.cc MobileL3_SMS_Types_part_2.cc MobileL3_SMS_Types_part_3.cc MobileL3_SMS_Types_part_4.cc MobileL3_SMS_Types_part_5.cc MobileL3_SMS_Types_part_6.cc MobileL3_SMS_Types_part_7.cc MobileL3_SS_Types_part_1.cc MobileL3_SS_Types_part_2.cc MobileL3_SS_Types_part_3.cc MobileL3_SS_Types_part_4.cc MobileL3_SS_Types_part_5.cc MobileL3_SS_Types_part_6.cc MobileL3_SS_Types_part_7.cc MobileL3_Types_part_1.cc MobileL3_Types_part_2.cc MobileL3_Types_part_3.cc MobileL3_Types_part_4.cc MobileL3_Types_part_5.cc MobileL3_Types_part_6.cc MobileL3_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 OSMUX_CodecPort_part_1.cc OSMUX_CodecPort_part_2.cc OSMUX_CodecPort_part_3.cc OSMUX_CodecPort_part_4.cc OSMUX_CodecPort_part_5.cc OSMUX_CodecPort_part_6.cc OSMUX_CodecPort_part_7.cc OSMUX_CodecPort_CtrlFunct_part_1.cc OSMUX_CodecPort_CtrlFunct_part_2.cc OSMUX_CodecPort_CtrlFunct_part_3.cc OSMUX_CodecPort_CtrlFunct_part_4.cc OSMUX_CodecPort_CtrlFunct_part_5.cc OSMUX_CodecPort_CtrlFunct_part_6.cc OSMUX_CodecPort_CtrlFunct_part_7.cc OSMUX_Emulation_part_1.cc OSMUX_Emulation_part_2.cc OSMUX_Emulation_part_3.cc OSMUX_Emulation_part_4.cc OSMUX_Emulation_part_5.cc OSMUX_Emulation_part_6.cc OSMUX_Emulation_part_7.cc OSMUX_Types_part_1.cc OSMUX_Types_part_2.cc OSMUX_Types_part_3.cc OSMUX_Types_part_4.cc OSMUX_Types_part_5.cc OSMUX_Types_part_6.cc OSMUX_Types_part_7.cc Osmocom_CTRL_Adapter_part_1.cc Osmocom_CTRL_Adapter_part_2.cc Osmocom_CTRL_Adapter_part_3.cc Osmocom_CTRL_Adapter_part_4.cc Osmocom_CTRL_Adapter_part_5.cc Osmocom_CTRL_Adapter_part_6.cc Osmocom_CTRL_Adapter_part_7.cc Osmocom_CTRL_Functions_part_1.cc Osmocom_CTRL_Functions_part_2.cc Osmocom_CTRL_Functions_part_3.cc Osmocom_CTRL_Functions_part_4.cc Osmocom_CTRL_Functions_part_5.cc Osmocom_CTRL_Functions_part_6.cc Osmocom_CTRL_Functions_part_7.cc Osmocom_CTRL_Types_part_1.cc Osmocom_CTRL_Types_part_2.cc Osmocom_CTRL_Types_part_3.cc Osmocom_CTRL_Types_part_4.cc Osmocom_CTRL_Types_part_5.cc Osmocom_CTRL_Types_part_6.cc Osmocom_CTRL_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 PCUIF_CodecPort_part_1.cc PCUIF_CodecPort_part_2.cc PCUIF_CodecPort_part_3.cc PCUIF_CodecPort_part_4.cc PCUIF_CodecPort_part_5.cc PCUIF_CodecPort_part_6.cc PCUIF_CodecPort_part_7.cc PCUIF_Types_part_1.cc PCUIF_Types_part_2.cc PCUIF_Types_part_3.cc PCUIF_Types_part_4.cc PCUIF_Types_part_5.cc PCUIF_Types_part_6.cc PCUIF_Types_part_7.cc RLCMAC_CSN1_Templates_part_1.cc RLCMAC_CSN1_Templates_part_2.cc RLCMAC_CSN1_Templates_part_3.cc RLCMAC_CSN1_Templates_part_4.cc RLCMAC_CSN1_Templates_part_5.cc RLCMAC_CSN1_Templates_part_6.cc RLCMAC_CSN1_Templates_part_7.cc RLCMAC_CSN1_Types_part_1.cc RLCMAC_CSN1_Types_part_2.cc RLCMAC_CSN1_Types_part_3.cc RLCMAC_CSN1_Types_part_4.cc RLCMAC_CSN1_Types_part_5.cc RLCMAC_CSN1_Types_part_6.cc RLCMAC_CSN1_Types_part_7.cc RLCMAC_Templates_part_1.cc RLCMAC_Templates_part_2.cc RLCMAC_Templates_part_3.cc RLCMAC_Templates_part_4.cc RLCMAC_Templates_part_5.cc RLCMAC_Templates_part_6.cc RLCMAC_Templates_part_7.cc RLCMAC_Types_part_1.cc RLCMAC_Types_part_2.cc RLCMAC_Types_part_3.cc RLCMAC_Types_part_4.cc RLCMAC_Types_part_5.cc RLCMAC_Types_part_6.cc RLCMAC_Types_part_7.cc RSL_Emulation_part_1.cc RSL_Emulation_part_2.cc RSL_Emulation_part_3.cc RSL_Emulation_part_4.cc RSL_Emulation_part_5.cc RSL_Emulation_part_6.cc RSL_Emulation_part_7.cc RSL_Types_part_1.cc RSL_Types_part_2.cc RSL_Types_part_3.cc RSL_Types_part_4.cc RSL_Types_part_5.cc RSL_Types_part_6.cc RSL_Types_part_7.cc RTP_CodecPort_part_1.cc RTP_CodecPort_part_2.cc RTP_CodecPort_part_3.cc RTP_CodecPort_part_4.cc RTP_CodecPort_part_5.cc RTP_CodecPort_part_6.cc RTP_CodecPort_part_7.cc RTP_CodecPort_CtrlFunct_part_1.cc RTP_CodecPort_CtrlFunct_part_2.cc RTP_CodecPort_CtrlFunct_part_3.cc RTP_CodecPort_CtrlFunct_part_4.cc RTP_CodecPort_CtrlFunct_part_5.cc RTP_CodecPort_CtrlFunct_part_6.cc RTP_CodecPort_CtrlFunct_part_7.cc RTP_Emulation_part_1.cc RTP_Emulation_part_2.cc RTP_Emulation_part_3.cc RTP_Emulation_part_4.cc RTP_Emulation_part_5.cc RTP_Emulation_part_6.cc RTP_Emulation_part_7.cc RTP_Types_part_1.cc RTP_Types_part_2.cc RTP_Types_part_3.cc RTP_Types_part_4.cc RTP_Types_part_5.cc RTP_Types_part_6.cc RTP_Types_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 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 TRXC_CodecPort_part_1.cc TRXC_CodecPort_part_2.cc TRXC_CodecPort_part_3.cc TRXC_CodecPort_part_4.cc TRXC_CodecPort_part_5.cc TRXC_CodecPort_part_6.cc TRXC_CodecPort_part_7.cc TRXC_CodecPort_CtrlFunct_part_1.cc TRXC_CodecPort_CtrlFunct_part_2.cc TRXC_CodecPort_CtrlFunct_part_3.cc TRXC_CodecPort_CtrlFunct_part_4.cc TRXC_CodecPort_CtrlFunct_part_5.cc TRXC_CodecPort_CtrlFunct_part_6.cc TRXC_CodecPort_CtrlFunct_part_7.cc TRXC_Types_part_1.cc TRXC_Types_part_2.cc TRXC_Types_part_3.cc TRXC_Types_part_4.cc TRXC_Types_part_5.cc TRXC_Types_part_6.cc TRXC_Types_part_7.cc UD_PortType_part_1.cc UD_PortType_part_2.cc UD_PortType_part_3.cc UD_PortType_part_4.cc UD_PortType_part_5.cc UD_PortType_part_6.cc UD_PortType_part_7.cc UD_Types_part_1.cc UD_Types_part_2.cc UD_Types_part_3.cc UD_Types_part_4.cc UD_Types_part_5.cc UD_Types_part_6.cc UD_Types_part_7.cc $(TTCN3_PP_MODULES:.ttcnpp=.cc) IPA_Emulation_part_1.cc IPA_Emulation_part_2.cc IPA_Emulation_part_3.cc IPA_Emulation_part_4.cc IPA_Emulation_part_5.cc IPA_Emulation_part_6.cc IPA_Emulation_part_7.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 = IPA_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc IuUP_EncDec.cc L1CTL_PortType_CtrlFunctDef.cc Native_FunctionDefs.cc OSMUX_CodecPort_CtrlFunctDef.cc RLCMAC_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc RTP_EncDec.cc TCCConversion.cc TCCInterface.cc TELNETasp_PT.cc TRXC_CodecPort_CtrlFunctDef.cc UD_PT.cc
USER_HEADERS = IPL4asp_PT.hh TELNETasp_PT.hh UD_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 = BTS_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)
	@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...
#

