################### Select Build configuration ##################

CFLAGS= -Wall -g -c -fno-common -Os -std=c99

RSI_802154_BUFFER_MGMT_H_PATH = ../../../../utilities/buffer_management/inc
RSI_802154_QUEUE_MGMT_H_PATH = ../../../..//utilities/queue_management/inc
RSI_802154_STCK_CONFIG_INC = ../../../../utilities/stack_configuration/inc

####################################### ZCL #######################################

#ZCL_Closures
RSI_ZIGBEE_ZCL_CLOSURES_H_PATH = ../../../../zcl/ZCL_Closures/inc
RSI_ZIGBEE_ZCL_CLOSURES_SRC_PATH = ../../../../zcl/ZCL_Closures/src

#ZCL_Common:
RSI_ZIGBEE_ZCL_COMMON_H_PATH = ../../../../zcl/ZCL_Common/inc

#ZCL_Foundation
RSI_ZIGBEE_ZCL_FOUNDATION_H_PATH = ../../../../zcl/ZCL_Foundation/inc
RSI_ZIGBEE_ZCL_FOUNDATION_SRC_PATH = ../../../../zcl/ZCL_Foundation/src

#ZCL_General
RSI_ZIGBEE_ZCL_GENERAL_H_PATH = ../../../../zcl/ZCL_General/inc
RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH = ../../../../zcl/ZCL_General/src

#ZCL_HA
RSI_ZIGBEE_ZCL_HA_H_PATH = ../../../../zcl/ZCL_HA/inc
RSI_ZIGBEE_ZCL_HA_SRC_PATH = ../../../../zcl/ZCL_HA/src

#ZCL_HVAC
RSI_ZIGBEE_ZCL_HAVAC_H_PATH = ../../../../zcl/ZCL_HVAC/inc
RSI_ZIGBEE_ZCL_HAVAC_SRC_PATH = ../../../../zcl/ZCL_HVAC/src

#ZCL_Lighting
RSI_ZIGBEE_ZCL_LIGHTING_H_PATH = ../../../../zcl/ZCL_Lighting/inc
RSI_ZIGBEE_ZCL_LIGHTING_SRC_PATH = ../../../../zcl/ZCL_Lighting/src

RSI_ZIGBEE_ZCL_INTERFACE_H_PATH = ../../../../zcl/ZCL_Interface

#ZCL_Measurement_And_Sensing
RSI_ZIGBEE_ZCL_MEASURE_SENSING_H_PATH = ../../../../zcl/ZCL_Measurement_And_Sensing/inc
RSI_ZIGBEE_ZCL_MEASURE_SENSING_SRC_PATH = ../../../../zcl/ZCL_Measurement_And_Sensing/src

#ZCL_SE
RSI_ZIGBEE_ZCL_SE_H_PATH = ../../../../zcl/ZCL_SE/inc
RSI_ZIGBEE_ZCL_SE_SRC_PATH = ../../../../zcl/ZCL_SE/src

#ZCL_Security_And_Safety
RSI_ZIGBEE_ZCL_SECURITY_SAFETY_H_PATH = ../../../../zcl/ZCL_Security_And_Safety/inc
RSI_ZIGBEE_ZCL_SECURITY_SAFETY_SRC_PATH = ../../../../zcl/ZCL_Security_And_Safety/src

#ZCL_Stack_Utility
RSI_ZIGBEE_ZCL_STACK_UTIL_H_PATH = ../../../../zcl/ZCL_Stack_Utility/inc
RSI_ZIGBEE_ZCL_STACK_UTIL_SRC_PATH = ../../../../zcl/ZCL_Stack_Utility/src

#ZLL_Utilities
RSI_ZIGBEE_ZLL_CLOSURES_H_PATH = ../../../../zcl/ZLL_Utilities/inc
RSI_ZIGBEE_ZLL_CLOSURES_SRC_PATH = ../../../../zcl/ZLL_Utilities/src

#ZigBee Utilities
RSI_ZIGBEE_UTILS_H_PATH = ../../../../ZigBee_Stack/ZigBee_Utilities/inc
RSI_ZIGBEE_UTILS_SRC_PATH = ../../../../ZigBee_Stack/ZigBee_Utilities/src

####################################### ZCL #######################################

################################# AppProfile_Utils ################################
#AppProfile_Utilities
RSI_ZIGBEE_APP_PROFILE_UTILS_H_PATH = ../../../../utilities/app_profile_utilities/inc
RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH = ../../../../utilities/app_profile_utilities/src

################################# AppProfile_Utils ################################

################################### APPLICATION ###################################

#TEST HARNESS
RSI_TESTAPP_TST_TH_INC = ../inc
RSI_TESTAPP_TST_TH_SRC = ../src

RSI_INC_PATH = ../../../../include/
RSI_DRIVER_PATH = ../../../../../../include/
################################### APPLICATION ###################################

#CFLAGS += -I $(RSI_ZIGBEE_ZCL_CLOSURES_H_PATH)/ -I $(RSI_ZIGBEE_ZCL_COMMON_H_PATH)/ -I $(RSI_ZIGBEE_ZCL_FOUNDATION_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_GENERAL_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_HA_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_HAVAC_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_INTERFACE_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_SE_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_SECURITY_SAFETY_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_LIGHTING_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_STACK_UTIL_H_PATH)/ -I$(RSI_ZIGBEE_ZLL_CLOSURES_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_INTERFACE_H_PATH)/ -I$(RSI_TESTAPP_TST_TH_INC)/ -I$(RSI_802154_MAC_COMMON_H_PATH)/ -I $(H_PATH)/ -I$(RSI_ZIGBEE_STK_INTRF_H_PATH)/ -I$(RSI_ZIGBEE_CONFIG_H_PATH)/ -I$(RSI_TESTAPP_DL_TH_INC)/ -I$(RSI_802154_BUFFER_MGMT_H_PATH)/ -I$(RSI_ZIGBEE_APP_PROFILE_UTILS_H_PATH)/ -I$(RSI_802154_SW_TIMER_H_PATH)/ -I$(RSI_802154_STCK_CONFIG_INC)/ -I$(RSI_ZIGBEE_UTILS_H_PATH)/ -I$(RSI_802154_QUEUE_MGMT_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_STACK_UTIL_H_PATH)/ -I$(RSI_TESTAPP_USB_TL_INC)/ -I$(RSI_802154_H_PATH)/ -I$(H_PATH)/ -I $(USB_H_PATH) -I $(API_H_PATH)/ -I $(API_SOC_H_PATH)/ -I $(API_LIB_H_PATH)/ -I $(RSI_802154_H_PATH)/ -I$(RSI_802154_STACK_EVENTS_INC_PATH)/ -I $(RSI_ZIGBEE_UTILS_H_PATH)/ -I $(RSI_802154_PERSIST_STORAGE_H_PATH)  
CFLAGS += -I $(RSI_ZIGBEE_ZCL_CLOSURES_H_PATH)/ -I $(RSI_ZIGBEE_ZCL_COMMON_H_PATH)/ -I $(RSI_ZIGBEE_ZCL_FOUNDATION_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_GENERAL_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_HA_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_HAVAC_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_INTERFACE_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_SE_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_SECURITY_SAFETY_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_LIGHTING_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_STACK_UTIL_H_PATH)/ -I$(RSI_ZIGBEE_ZLL_CLOSURES_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_INTERFACE_H_PATH)/ -I$(RSI_TESTAPP_TST_TH_INC)/ -I$(RSI_802154_MAC_COMMON_H_PATH)/ -I $(H_PATH)/ -I$(RSI_ZIGBEE_STK_INTRF_H_PATH)/ -I$(RSI_ZIGBEE_CONFIG_H_PATH)/ -I$(RSI_TESTAPP_DL_TH_INC)/ -I$(RSI_802154_BUFFER_MGMT_H_PATH)/ -I$(RSI_ZIGBEE_APP_PROFILE_UTILS_H_PATH)/ -I$(RSI_802154_SW_TIMER_H_PATH)/ -I$(RSI_802154_STCK_CONFIG_INC)/ -I$(RSI_ZIGBEE_UTILS_H_PATH)/ -I$(RSI_802154_QUEUE_MGMT_H_PATH)/ -I$(RSI_ZIGBEE_ZCL_STACK_UTIL_H_PATH)/ -I$(RSI_TESTAPP_USB_TL_INC)/ -I$(RSI_802154_H_PATH)/ -I$(H_PATH)/ -I $(USB_H_PATH) -I $(API_H_PATH)/ -I $(API_SOC_H_PATH)/ -I $(API_LIB_H_PATH)/ -I $(RSI_802154_H_PATH)/ -I$(RSI_802154_STACK_EVENTS_INC_PATH)/ -I $(RSI_ZIGBEE_UTILS_H_PATH)/ -I $(RSI_802154_PERSIST_STORAGE_H_PATH)/ -I $(RSI_INC_PATH)  


OBJS_ZCL =	$(RSI_ZIGBEE_ZCL_CLOSURES_SRC_PATH)/ZCL_Closures_Door_Lock_Cluster.c \
			$(RSI_ZIGBEE_ZCL_CLOSURES_SRC_PATH)/ZCL_Closures_Shade_Configuration_Cluster.c \
			$(RSI_ZIGBEE_ZCL_CLOSURES_SRC_PATH)/ZCL_Windows_Covering_Cluster.c \
			$(RSI_ZIGBEE_ZCL_FOUNDATION_SRC_PATH)/ZCL_Foundation.c \
			$(RSI_ZIGBEE_ZCL_FOUNDATION_SRC_PATH)/ZCL_Foundation_Reporting.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Alarms_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Basic_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Binary_Input_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Device_Temp_Config_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Groups_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Identify_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Level_Control_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_On_Off_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_On_Off_Switch_Config_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Power_Config_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_RSSI_Location_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Scenes_Cluster.c \
			$(RSI_ZIGBEE_ZCL_GENERAL_SRC_PATH)/ZCL_General_Time_Cluster.c \
			$(RSI_ZIGBEE_ZCL_HAVAC_SRC_PATH)/ZCL_HVAC_Dehumidification_Control_Cluster.c \
			$(RSI_ZIGBEE_ZCL_HAVAC_SRC_PATH)/ZCL_HVAC_Fan_Control_Cluster.c \
			$(RSI_ZIGBEE_ZCL_HAVAC_SRC_PATH)/ZCL_HVAC_Pump_Config_And_Control_Cluster.c \
			$(RSI_ZIGBEE_ZCL_HAVAC_SRC_PATH)/ZCL_HVAC_Thermostat_Cluster.c \
			$(RSI_ZIGBEE_ZCL_HAVAC_SRC_PATH)/ZCL_HVAC_Thermostat_User_Interface_Config_Cluster.c \
			$(RSI_ZIGBEE_ZCL_LIGHTING_SRC_PATH)/ZCL_Lighting_Color_Control_Cluster.c \
			$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_SRC_PATH)/ZCL_M_And_S_Flow_Measurement_Cluster.c \
			$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_SRC_PATH)/ZCL_M_And_S_Illuminance_Level_Sensing_Cluster.c \
			$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_SRC_PATH)/ZCL_M_And_S_Illuminance_Measurement_Cluster.c \
			$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_SRC_PATH)/ZCL_M_And_S_Occupancy_Sensing_Cluster.c \
			$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_SRC_PATH)/ZCL_M_And_S_Pressure_Measurement_Cluster.c \
			$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_SRC_PATH)/ZCL_M_And_S_Relative_Humidity_Measurement_Cluster.c \
			$(RSI_ZIGBEE_ZCL_MEASURE_SENSING_SRC_PATH)/ZCL_M_And_S_Temp_Measurement_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_Commissioning_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_DRLC_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_Generic_Tunnel_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_Key_Establishment.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_Message_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_OTA_Upgrade_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_Prepayment_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_Price_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_Simple_Metering_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SE_SRC_PATH)/ZCL_Tunneling_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SECURITY_SAFETY_SRC_PATH)/ZCL_Security_And_Safety_IAS_ACE_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SECURITY_SAFETY_SRC_PATH)/ZCL_Security_And_Safety_IAS_WD_Cluster.c \
			$(RSI_ZIGBEE_ZCL_SECURITY_SAFETY_SRC_PATH)/ZCL_Security_And_Safety_IAS_Zone_Cluster.c \
			$(RSI_ZIGBEE_ZCL_STACK_UTIL_SRC_PATH)/ZCL_Stack_Utility.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppAlarmsUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppColorControlUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppCommissioningUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppIdentifyUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppLevelControlUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/ApplicationThinLayer.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppOnOffUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppReportingUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppScenesUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppSimpleMeterUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppTestHarness.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppTimerUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppThermostatUtilities.c \
			$(RSI_ZIGBEE_APP_PROFILE_UTILS_SRC_PATH)/AppUtilsMain.c
			
OBJS_THERMOSTAT_TH =	$(RSI_TESTAPP_TST_TH_SRC)/ThermostatDevice_Application_Framework.c \
							$(RSI_TESTAPP_TST_TH_SRC)/ThermostatDevice.c \
				$(RSI_ZIGBEE_UTILS_SRC_PATH)/app_configuration.c \
				$(RSI_ZIGBEE_UTILS_SRC_PATH)/application_handler.c \
				$(RSI_ZIGBEE_UTILS_SRC_PATH)/Fragmentation_Handlers.c \
				$(RSI_ZIGBEE_UTILS_SRC_PATH)/FragmentationUtility.c 				
				
				
CFLAGS+= -Dg_XMODEM_SUPPORT_d=0
CFLAGS+= -DUNIFIED_NBCN_NSEC
CFLAGS+= -Dg_MAC_2006_d
CFLAGS+= -Dg_CHANNEL_PAGE_0_2450_MHZ_FREQ_BAND_d

CFLAGS+= -DZIGBEE_ROUTER
CFLAGS+= -Dg_ZIGBEE_STACK_PROFILE_d=1
CFLAGS+= -Dg_ZIGBEE_SECURITY_d=1
CFLAGS+= -Dg_APP_PROFILE_ID_c=0x0104
CFLAGS+= -Dg_FREQUENCY_AGILITY_TEST_d=0
CFLAGS+= -Dg_FRAGMENTATION_TEST_d=1
CFLAGS+= -Dg_MAX_NO_OF_ENDPOINTS_c=1
CFLAGS+= -DDEBUG_TEST=1
CFLAGS+= -DZIGBEE_LIB_MEMORY_OPTIMIZATION=0
CFLAGS+= -Dg_COMMISSIONING_CAPABILITIES_d=1
CFLAGS+= -Dg_HA_1_2_d=0
CFLAGS+= -Dg_SE_PROFILE_1_1_d=0
CFLAGS+= -Dg_DIAGNOSTICS_CLUSTER_ENABLE_d=0
CFLAGS+= -DTEST_SUITE=6

OBJS_TEST_SUITE = $(OBJS_THERMOSTAT_TH)

all: clean Thermostat

Thermostat: clean
	$(CC) $(CFLAGS) $(OBJS_ZCL)

*.o:*.c
	$(CC) $(CFLAGS) $< -o $@

clean:
	rm -f  *.o
	
#Thermostat: clean
#	$(CC) $(CFLAGS) -DSTE_SUPPORT -DLOAD_PPE_INST -DEXCLUDE_BT -DEXCLUDE_WLAN -DICACHE_SSRAM $(OBJS_ZCL) $(OBJS_TEST_SUITE)
