#!/bin/bash

# Created by jiaqiang.ye@lnxall.com
# Application sources for EMS2.0
# 2025/08/14

cloud_conn_dayun_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init cloud_conn_dayun "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate cloud_conn_dayun "${pkg_ver}"
	return $?
}

cloud_conn_dayun_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/cloud_conn_dayun*.ipk
	return 0
}

device_monitor_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init dy_device_monitor "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate dy_device_monitor "${pkg_ver}"
	return $?
}

device_monitor_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/dy_device_monitor*.ipk
	return 0
}

dy_upgrade_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init dy_upgrade "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate dy_upgrade "${pkg_ver}"
	return $?
}

dy_upgrade_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/dy_upgrade*.ipk
	return 0
}

cloud_mqtt_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init cloud_mqtt "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate cloud_mqtt "${pkg_ver}"
	return $?
}

cloud_mqtt_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/cloud_mqtt*.ipk
	return 0
}

ems_ctrl_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make  V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib"
	[ $? -ne 0 ] && return 1

	mkdir -p "${LNXDESTPFX}/bin" "${LNXDESTPFX}/app/config/ems"
	cp -v -f ../files/*.json "${LNXDESTPFX}/app/config/ems/" && cp -v -f ems_ctrl \
		"${LNXDESTPFX}/bin/"
	[ $? -ne 0 ] && return 2

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init ems_ctrl "${pkg_ver}"
	[ $? -ne 0 ] && return 3

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 4

	lnxbf_ipkg_generate ems_ctrl "${pkg_ver}"
	return $?
}

ems_ctrl_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/ems_ctrl*.ipk
	return 0
}

energy_assign_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" LD="${LNX_TCP}-ld" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib"
	[ $? -ne 0 ] && return 1

	cp -v -f ../files/*.json "${LNXDESTPFX}/app/config/ems/" && cp -v -f energy_assign \
		"${LNXDESTPFX}/bin/"
	[ $? -ne 0 ] && return 2

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init energy_assign "${pkg_ver}"
	[ $? -ne 0 ] && return 3

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 4

    lnxbf_ipkg_generate energy_assign "${pkg_ver}"
	return $?
}

energy_assign_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/energy_assign*.ipk
	return 0
}

multi_meters_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib"
	[ $? -ne 0 ] && return 1

    cp -v -f ../files/*.json "${LNXDESTPFX}/app/config/ems/" && cp -v -f multi_meters \
        "${LNXDESTPFX}/bin/"
	[ $? -ne 0 ] && return 2

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init multi_meters "${pkg_ver}"
	[ $? -ne 0 ] && return 3

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 4

	lnxbf_ipkg_generate multi_meters "${pkg_ver}"	
	return $?
}

multi_meters_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/multi_meters*.ipk
	return 0
}

rs485_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init dy_rs485 "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate dy_rs485 "${pkg_ver}"
	return $?
}

rs485_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/dy_rs485*.ipk
	return 0
}

protocol_parser_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make PP_USE_PYTHON3=yes V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib"
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init dy_protocol_parser "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate dy_protocol_parser "${pkg_ver}"
	return $?
}

protocol_parser_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/dy_protocol_parser*.ipk
	return 0
}

data_reporter_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init dy_data_reporter "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate dy_data_reporter "${pkg_ver}"
	return $?
}

data_reporter_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/dy_data_reporter*.ipk
	return 0
}

config_manager_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init dy_config_manager "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate dy_config_manager "${pkg_ver}"
	return $?
}

config_manager_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/dy_config_manager*.ipk
	return 0
}

youcan_build() {
	EXTRA_LDFLAGS="-Wl,-rpath-link=${LNXDESTPFX}/lib" make TARGET_CC="${LNX_CC}" \
		TARGET_CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include" TARGET_STRIP="${LNX_TCP}-strip"
	[ $? -ne 0 ] && return 1

	# install compiled application
	cp -f -v youcan "${LNXDESTPFX}/bin/" && cp -f -v cmod/libcmod.so "${LNXDESTPFX}/lib/"
	[ $? -ne 0 ] && return 2

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init youcan "${pkg_ver}"
	[ $? -ne 0 ] && return 3

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 4

	lnxbf_ipkg_generate youcan "${pkg_ver}"
	return $?
}

youcan_clean() {
	lnxbf_package_clean 2>/dev/null
	make TARGET_CC="${LNX_CC}" TARGET_CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include" clean
	rm -rf -v "${FINSTALL_DIR}/packages"/youcan*.ipk
	return 0
}

modbus_tcp_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init modbus_tcp "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate modbus_tcp "${pkg_ver}"
	return $?
}

modbus_tcp_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/modbus_tcp*.ipk
	return 0
}

rs485_slave_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init rs485_slave "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate rs485_slave "${pkg_ver}"
	return $?
}

rs485_slave_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/rs485_slave*.ipk
	return 0
}

scada_iec104_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init dy_scada_iec104 "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate dy_scada_iec104 "${pkg_ver}"
	return $?
}

scada_iec104_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/dy_scada_iec104*.ipk
	return 0
}

ua_mqttv1_build() {
    local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	if [ -z "$(${LNX_CC} --version | grep -e '7\.5\.0')" ] ; then
		CFLAGS="${CFLAGS} -Wno-error=stringop-truncation"
	fi
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
    [ $? -ne 0 ] && return 1

    cp -v -rf ../files/* "${LNXDESTPFX}/app/config/" && cp -v -f ua_mqttv1 \
        "${LNXDESTPFX}/bin/"
	[ $? -ne 0 ] && return 2

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init ua_mqttv1 "${pkg_ver}"
	[ $? -ne 0 ] && return 3

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 4

	lnxbf_ipkg_generate ua_mqttv1 "${pkg_ver}"
	return $?
}

ua_mqttv1_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/ua_mqttv1*.ipk
	return 0
}

ems_smu_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init ems_smu_jjjiang "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate ems_smu_jjjiang "${pkg_ver}"
	return $?
}

ems_smu_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/ems_smu_jjjian*.ipk
	return 0
}

cloud_emmsv2_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
    [ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init cloud_emmsv2 "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate cloud_emmsv2 "${pkg_ver}"
	return $?
}

cloud_emmsv2_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/cloud_emmsv2*.ipk
	return 0
}

ems_redis_build() {
	local CFLAGS="${LNX_CFLAGS} -I${LNXDESTPFX}/include/dy_utils -I${LNXDESTPFX}/include"
	make V=1 -j1 CC="${LNX_CC}" CFLAGS="${CFLAGS}" \
		LDFLAGS="${LNX_LDFLAGS} -Wl,-rpath-link=${LNXDESTPFX}/lib" SUPPORT_LED=1
	[ $? -ne 0 ] && return 1

	local pkg_ver=$(version-lnxget "${IPKG_VERFILE}" 0.1.0)
	lnxbf_ipkg_init ems_redis "${pkg_ver}"
	[ $? -ne 0 ] && return 2

	local LPKGDIR="ipkg-dir${LNX_PREFIX}"
	FTPIDX=${FTPIDX} bash ./install.sh "${LPKGDIR}"
	[ $? -ne 0 ] && return 3

	lnxbf_ipkg_generate ems_redis "${pkg_ver}"
	return $?
}

ems_redis_clean() {
	lnxbf_package_clean
	rm -rf -v "${FINSTALL_DIR}/packages"/ems_redis*.ipk
	return 0
}

srcpkg_enabled cloud_conn_dayun && \
	register_source 'package_repos/cloud_conn_dayun/src' \
		lcore_dummy_config cloud_conn_dayun_build cloud_conn_dayun_clean

srcpkg_enabled pp_device_monitor && \
	register_source 'package_repos/device_monitor/src' \
		lcore_dummy_config device_monitor_build device_monitor_clean

srcpkg_enabled pp_upgrade && \
	register_source 'package_repos/upgrade/src' \
		lcore_dummy_config dy_upgrade_build dy_upgrade_clean

srcpkg_enabled cloud_mqtt && \
	register_source 'package_repos/cloud_mqtt/src' \
		lcore_dummy_config cloud_mqtt_build cloud_mqtt_clean

srcpkg_enabled ems_ctrl && \
	register_source 'package_repos/ems_ctrl/src' \
		lcore_dummy_config ems_ctrl_build ems_ctrl_clean

srcpkg_enabled energy_assign && \
	register_source 'package_repos/energy_assign/src' \
		lcore_dummy_config energy_assign_build energy_assign_clean

srcpkg_enabled multi_meters && \
	register_source 'package_repos/multi_meters/src' \
		lcore_dummy_config multi_meters_build multi_meters_clean

srcpkg_enabled rs485 && \
	register_source 'package_repos/rs485/src' \
		lcore_dummy_config rs485_build rs485_clean

srcpkg_enabled protocol_parser && \
	register_source 'package_repos/protocol_parser/src' \
		lcore_dummy_config protocol_parser_build protocol_parser_clean

srcpkg_enabled data_reporter && \
	register_source 'package_repos/data_reporter/src' \
		lcore_dummy_config data_reporter_build data_reporter_clean

srcpkg_enabled config_manager && \
	register_source 'package_repos/config_manager/src' \
		lcore_dummy_config config_manager_build config_manager_clean

srcpkg_enabled youcan && \
	register_source 'package_repos/youcan/src' \
		lcore_dummy_config youcan_build youcan_clean

srcpkg_enabled modbus_tcp && \
	register_source 'package_repos/modbus_tcp/src' \
		lcore_dummy_config modbus_tcp_build modbus_tcp_clean

srcpkg_enabled scada_iec104 && \
	register_source 'package_repos/scada_iec104/src' \
		lcore_dummy_config scada_iec104_build scada_iec104_clean

srcpkg_enabled ua_mqttv1 && \
	register_source 'package_repos/ua_mqttv1/src' \
		lcore_dummy_config ua_mqttv1_build ua_mqttv1_clean

srcpkg_enabled rs485_slave && \
	register_source 'package_repos/rs485_slave/src' \
		lcore_dummy_config rs485_slave_build rs485_slave_clean

srcpkg_enabled ems_smu && \
    register_source 'package_repos/ems_smu_jjjiang/src' \
        lcore_dummy_config ems_smu_build ems_smu_clean

srcpkg_enabled cloud_emmsv2 && \
	register_source 'package_repos/cloud_emmsv2/src' \
		lcore_dummy_config cloud_emmsv2_build cloud_emmsv2_clean

srcpkg_enabled ems_redis && \
	register_source 'package_repos/ems_redis/src' \
		lcore_dummy_config ems_redis_build ems_redis_clean
