Import('RTT_ROOT')
from building import *

src = Split("""
modbus/functions/mbfuncdiag.c
modbus/functions/mbutils.c
modbus/functions/mbfuncother.c
modbus/rtu/mbcrc.c
port/port.c
""")

master_rtu_src = Split("""
modbus/functions/mbfunccoils_m.c
modbus/functions/mbfuncdisc_m.c
modbus/functions/mbfuncholding_m.c
modbus/functions/mbfuncinput_m.c
modbus/rtu/mbrtu_m.c
modbus/mb_m.c
port/portevent_m.c
port/portserial_m.c
port/porttimer_m.c
port/user_mb_app_m.c
""")

slave_rtu_src = Split("""
modbus/functions/mbfunccoils.c
modbus/functions/mbfuncdisc.c
modbus/functions/mbfuncholding.c
modbus/functions/mbfuncinput.c
modbus/rtu/mbrtu.c
modbus/mb.c
port/portevent.c
port/portserial.c
port/porttimer.c
port/user_mb_app.c
""")

master_slave_rtu_src = Split("""
modbus/functions/mbfunccoils.c
modbus/functions/mbfunccoils_m.c
modbus/functions/mbfuncdisc.c
modbus/functions/mbfuncdisc_m.c
modbus/functions/mbfuncholding.c
modbus/functions/mbfuncholding_m.c
modbus/functions/mbfuncinput.c
modbus/functions/mbfuncinput_m.c
modbus/rtu/mbrtu.c
modbus/rtu/mbrtu_m.c
modbus/mb.c
modbus/mb_m.c
port/portevent.c
port/portevent_m.c
port/portserial.c
port/portserial_m.c
port/porttimer.c
port/porttimer_m.c
port/user_mb_app.c
port/user_mb_app_m.c
""")

# The set of source files associated with this SConscript file.
path = [GetCurrentDir() + '/modbus/include',
    GetCurrentDir() + '/modbus/rtu',
    GetCurrentDir() + '/port']

if GetDepend(['RT_MODBUS_MASTER_RTU']):
    src += master_rtu_src

if GetDepend(['RT_MODBUS_SLAVE_RTU']):
    src += slave_rtu_src

if GetDepend(['RT_MODBUS_MASTER_SLAVE_RTU']):
    src += master_slave_rtu_src

group = DefineGroup('FreeModbus', src, depend = ['RT_USING_MODBUS'], CPPPATH = path)

Return('group')
