ifeq '$(T3DK_TOOL)' 'mmagic'
BOOST_LIB_SUFFIX  = -mt
TOOL_SPECIFIC_LIBS  = -lws2_32
TOOL_SPECIFIC_LDFLAGS = -L/opt/boost-mingw/lib
else
BOOST_LIB_SUFFIX  = $(if $(shell uname -o | grep Cygwin),-gcc-mt,-mt)
endif

# Original STF 370 TTCN-3 source code
T3DK_TTCN_SOURCES_STF370 = $(wildcard validation/*.ttcn \
      ../../LibCommon/*.ttcn \
      ../LibSip/ttcn/LibSip_Interface.ttcn \
      ../LibSip/ttcn/LibSip_SDPTypes.ttcn \
      ../LibSip/ttcn/LibSip_SIPTypesAndValues.ttcn \
      ../codec/validation/LibSip_DummyXMLTypes.ttcn \
      ../ttcn/LibIot/*.ttcn \
      ../ttcn/LibUpperTester/LibUpperTester.ttcn \
      ../ttcn/LibIms_ConfigAndTrigger/LibIms_UpperTester.ttcn \
      ../ttcn/AtsImsIot/AtsImsIot_Functions.ttcn \
      ../ttcn/AtsImsIot/AtsImsIot_TypesAndValues.ttcn \
      ../ttcn/AtsImsIot/AtsImsIot_TestConfiguration.ttcn )

# Modified STF 370 TTCN-3 source code to make adapter running properly
T3DK_TTCN_SOURCES_VALIDATION = $(wildcard validation/*.ttcn \
      validation/LibCommon/*.ttcn \
      validation/LibIot/*.ttcn \
      validation/LibUpperTester/LibUpperTester.ttcn \
      validation/generic_interface_configuration/Interface_configuration.ttcn \
      validation/LibIms_ConfigAndTrigger/LibIms_UpperTester.ttcn \
      validation/AtsImsIot/AtsImsIot_TypesAndValues.ttcn \
      validation/AtsImsIot/AtsImsIot_TestSystem.ttcn \
      validation/AtsImsIot/AtsImsIot_TestConfiguration.ttcn \
      validation/AtsImsIot/AtsImsIot_Functions.ttcn \
      validation/AtsImsIot/AtsImsIot_Templates.ttcn \
      ../codec/validation/LibSip_Interface.ttcn \
      ../codec/validation/LibSip_SDPTypes.ttcn \
      ../codec/validation/LibSip_SIPTypesAndValues.ttcn \
      ../codec/validation/LibSip_DummyXMLTypes.ttcn )

T3DK_TTCN_SOURCES = $(T3DK_TTCN_SOURCES_STF370) #$(T3DK_TTCN_SOURCES_VALIDATION)

T3DK_ROOT_MODULE  = TestExecution

T3DK_C_SOURCES    = $(wildcard src/*.c)
T3DK_CXX_SOURCES  = $(T3DK_CXX_TCI_SOURCES) $(T3DK_CXX_TRI_SOURCES)
T3DK_CXX_TCI_SOURCES  = $(wildcard src/libiot_codets.cpp ../codec/c++/s*.cpp)
T3DK_CXX_TRI_SOURCES  = $(wildcard src/init.cpp \
      src/Ports/*.cpp \
      src/LowerTestAdapter/*.cpp \
      src/Messages/*.cpp \
      src/PacketFilter/*.cpp \
      src/UpperTestAdapter/*.cpp \
      src/UpperTestAdapter/Processors/*.cpp \
      src/UpperTestAdapter/TriggerCommandsOffLine/*.cpp \
      src/UpperTestAdapter/TriggerCommandsGUI/*.cpp \
      src/Helper/*.cpp \
      src/Logger/*.cpp \
      src/Dispatcher/*.cpp \
      )

T3DK_LIBS   = $(TOOL_SPECIFIC_LIBS) \
      -lboost_date_time$(BOOST_LIB_SUFFIX) \
      -lboost_thread$(BOOST_LIB_SUFFIX) \
      -lboost_regex$(BOOST_LIB_SUFFIX)

T3DK_CDGEN_HEADER       = src/codec.h
T3DK_CODETS             = $(wildcard src/codec.h src/libiot_codets.h src/libiot_codets.cpp ../codec/c++/s*.h ../codec/c++/s*.cpp ../codec/c++/libcommon_codets.h)

T3DK_DEBUG   = 1

CPPFLAGS    = -Isrc \
      -Isrc/LowerTestAdapter \
      -Isrc/UpperTestAdapter \
      -Isrc/Helper \
      -Isrc/Logger \
      -Isrc/Dispatcher \
      -I../codec/c++
 
CC      = gcc
CXX     = g++

CFLAGS      = -g -O2
CXXFLAGS    = -g -O2 
T3DK_LDFLAGS    = $(TOOL_SPECIFIC_LDFLAGS)

ifeq '$(T3DK_TOOL)' 'mmagic'
include $(shell mingw32-t3devkit-config --mk)
else
ifeq '$(T3DK_TOOL)' 'ttwb'
include $(shell mingw32-t3devkit-config --mk)
else
include $(shell t3devkit-config --mk)
endif
endif

