#*******************************************************************************
# include ZTE application makefile
#*******************************************************************************
include $(zte_app_mak)
#include ../net_team.mk
include $(COMMON_MK)

CPU_PUB_ROOT=$(TOPDIR_AP)/../pub
##############USER COMIZE BEGIN################
EXEC = zte_ufi 
EXEC1 = zte-rtc-clock 
EXEC2 = router_msg_proxy 
OBJS = zte_ufi.o ../zte_comm/nvserver/nvserver.o  ../zte_comm/nvserver/nvupdate.o  \
       $(patsubst %.c,%.o,$(wildcard ../zte_comm/at_ctl/src/atctrl/*.c ../zte_comm/at_ctl/src/atconfig/*.c ../zte_comm/at_ctl/src/phone/*.c ../zte_comm/at_ctl/src/phone/src/*.c)) \
       ../zte_comm/rtc-service/rtc-service.o \
       $(filter-out ../zte_comm/zte_mainctrl/router_msg_proxy.o,$(patsubst %.c,%.o,$(wildcard ../zte_comm/zte_mainctrl/*.c))) \
       ../zte_comm/zte_hotplug/hotplug.o ../zte_comm/zte_hotplug/netdev_plug.o ../zte_comm/zte_hotplug/drv_plug.o \
       $(patsubst %.c,%.o,$(wildcard ../zte_comm/zte_drv_ctrl/usb/*.c ../zte_comm/zte_drv_ctrl/serial/*.c)) \
       ../zte_comm/fluxstat/fluxstat.o \
       ../zte_comm/sntp/sntp.o \
       $(patsubst %.c,%.o,$(wildcard ../zte_comm/sms/src/*.c ))
ifeq ($(USE_FOTA),yes)
OBJS += $(patsubst %.c,%.o,$(wildcard ../zte_comm/fota_dm/src/*.c ))
endif

OBJS1 = ../zte_comm/rtc-service/zte-rtc-clock.o
OBJS2 = ../zte_comm/zte_mainctrl/router_msg_proxy.o

ZTE_MMI_DEP = zte_mmi_app
ZTE_MMI_TOBJS = mmi_adapter.o mmi.o mmi_battery.o mmi_net.o mmi_wifi.o mmi_tip.o mmi_sms.o mmi_lcd_page.o mmi_lcd.o mmi_lcd_init.o mmi_ctrl.o \
		  mmi_keystrokes.o mmi_lcd_timer.o mmi_led.o mmi_led_init.o mmi_led_adapter.o mmi_poweroff_charger.o mmi_traffic.o mmi_fota.o mmi_msg.o \
		  mmi_cfg.o mmi_poweroff.o mmi_battery_adapter.o mmi_mo.o mmi_mo_en.o mmi_mo_zh.o mmi_voip.o mmi_plat_adapter.o
ZTE_MMI_OBJS = $(addprefix ../zte_comm/zte_mmi/,$(ZTE_MMI_TOBJS))

#ZTE_LOCKNET_DEP = zte_locknet_app
#ZTE_LOCKNET_OBJS = $(patsubst %.c,%.o,$(wildcard ../zte_comm/zte_locknet/src/*.c ))

#ZTE_WATCHDOG_DEP = zte_watchdog_app
#ZTE_WATCHDOG_TOBJS = watchdog.o watchdog_adapter.o watchdog_battery.o
#ZTE_WATCHDOG_OBJS = $(addprefix ../zte_comm/zte_watchdog/,$(ZTE_WATCHDOG_TOBJS))

#wifi
ifeq ($(CONFIG_WIFI_MODULE),realtek)
CFLAGS	 +=	-D__REALTEK_8192_CHIP__
ifeq ($(CONFIG_WIFI_RTL_WPA2),yes)
tools_dir += ../zte_comm/wlan/realtek_tools_wpa2/auth  ../zte_comm/wlan/realtek_tools_wpa2/mini_upnp ../zte_comm/wlan/realtek_tools_wpa2/utility
tools_dir += ../zte_comm/wlan/realtek_tools_wpa2/wsc ../zte_comm/wlan/realtek_tools_wpa2/wireless_tools.25
else
tools_dir += ../zte_comm/wlan/realtek_tools/auth  ../zte_comm/wlan/realtek_tools/mini_upnp ../zte_comm/wlan/realtek_tools/utility
tools_dir += ../zte_comm/wlan/realtek_tools/wsc ../zte_comm/wlan/realtek_tools/wireless_tools.25
endif
else ifeq ($(CONFIG_WIFI_MODULE),rda5995)
CFLAGS	 += -D__RDA_5995_CHIP__
tools_dir += ../zte_comm/wlan/rda_tools
else ifeq ($(CONFIG_WIFI_MODULE),esp8089)
CFLAGS	 += -D__ESP_8089_CHIP__
tools_dir += ../zte_comm/wlan/esp_tools/eagle_test   ../zte_comm/wlan/esp_tools/fcctest
else ifeq ($(CONFIG_WIFI_MODULE),xr819)
CFLAGS	 += -D__XR_819_CHIP__
#tools_dir +=
else ifeq ($(CONFIG_WIFI_MODULE),ssv6x5x)
CFLAGS	 += -D__SSV_6X5X_CHIP__
#tools_dir +=
else ifeq ($(CONFIG_WIFI_MODULE),aic8800)
CFLAGS	 += -D__AIC_8800DW_CHIP__
tools_dir += ../zte_comm/wlan/aic_tools/rftest
ifeq ($(CONFIG_WIFI_SINGLEAP), no)
CFLAGS  +=  -D__MULTI_AP__
endif
endif

$(warning  CONFIG_WIFI_FUNCTION=$(CONFIG_WIFI_FUNCTION))

ifeq ($(findstring sta,$(CONFIG_WIFI_FUNCTION)), sta)
WLAN_STA_FUNC=yes
endif

ifeq ($(findstring ap,$(CONFIG_WIFI_FUNCTION)), ap)
WLAN_AP_FUNC=yes
endif

CFLAGS 	 += -D__QRCODE_WIFI__
CFLAGS 	 += -D__USE_AES__

ifeq ($(WLAN_STA_FUNC),yes)
CFLAGS += -D__STA_FUNC__
CFLAGS	 += -I$(zte_app_path)/wpa_supplicant-2.10/src/common
LDLIBS   += -lwpa_client -L$(zte_app_path)/wpa_supplicant-2.10/wpa_supplicant
endif

ifeq ($(WLAN_AP_FUNC),yes)
CFLAGS += -D__AP_FUNC__
ifneq ($(WLAN_STA_FUNC),yes)
CFLAGS	 += -I$(zte_app_path)/hostapd-2.10/src/common
LDLIBS   += -lwpa_client -L$(zte_app_path)/hostapd-2.10/hostapd
endif
endif

OBJS +=  ../zte_comm/wlan/src/wlan_main.o ../zte_comm/wlan/src/wifi_socket.o ../zte_comm/wlan/src/wlan_rtc_sleep.o ../zte_comm/wlan/src/wifi_drv_ko.o \
		  ../zte_comm/wlan/src/wifi_sta_ctrl.o ../zte_comm/wlan/src/wifi_util.o  ../zte_comm/wlan/src/wlan_config_ssid.o   ../zte_comm/wlan/src/wlan_netlink.o ../zte_comm/wlan/src/Vector.o
ifeq ($(CONFIG_WIFI_MODULE),realtek)
OBJS +=  ../zte_comm/wlan/src/wifi_hal.o
	ifeq ($(WLAN_STA_FUNC),yes)
		OBJS +=  ../zte_comm/wlan/src/wlan-station.o
	endif
LDLIBS   += -lwlan_interface
LDLIBS   += -L$(zte_lib_path)/libwlan_interface
else ifeq ($(CONFIG_WIFI_MODULE),rda5995)
	ifeq ($(WLAN_STA_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wlan_sta_manager.o  ../zte_comm/wlan/src/wlan_sm.o 
	endif
	
	ifeq ($(WLAN_AP_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wifi_ap_ctrl.o
LDLIBS   += -lwlan_interface
LDLIBS   += -L$(zte_lib_path)/libwlan_interface
	endif
else ifeq ($(CONFIG_WIFI_MODULE),esp8089)
	ifeq ($(WLAN_STA_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wlan_sta_manager.o  ../zte_comm/wlan/src/wlan_sm.o 
	endif
	
	ifeq ($(WLAN_AP_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wifi_ap_ctrl.o
LDLIBS   += -lwlan_interface
LDLIBS   += -L$(zte_lib_path)/libwlan_interface		
	endif
else ifeq ($(CONFIG_WIFI_MODULE),xr819)
	ifeq ($(WLAN_STA_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wlan_sta_manager.o  ../zte_comm/wlan/src/wlan_sm.o 
	endif
	
	ifeq ($(WLAN_AP_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wifi_ap_ctrl.o
LDLIBS   += -lwlan_interface
LDLIBS   += -L$(zte_lib_path)/libwlan_interface		
	endif
else ifeq ($(CONFIG_WIFI_MODULE),ssv6x5x)
	ifeq ($(WLAN_STA_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wlan-station.o 
	endif
	
	ifeq ($(WLAN_AP_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wifi_ap_ctrl.o
LDLIBS   += -lwlan_interface
LDLIBS   += -L$(zte_lib_path)/libwlan_interface		
	endif
else ifeq ($(CONFIG_WIFI_MODULE),aic8800)
	ifeq ($(WLAN_STA_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wlan-station.o 
	endif
	
	ifeq ($(WLAN_AP_FUNC),yes)
		OBJS += ../zte_comm/wlan/src/wifi_ap_ctrl.o
LDLIBS   += -lwlan_interface
LDLIBS   += -L$(zte_lib_path)/libwlan_interface		
	endif
endif
#aes
CFLAGS += -I$(zte_lib_path)/libssl/install/include
LDLIBS += -L$(zte_lib_path)/libssl/install/lib -lcrypto


#*******************************************************************************
# include path
#*******************************************************************************
CFLAGS += -I./
CFLAGS += -I../include
CFLAGS += -I../zte_comm/nvserver
CFLAGS += -I$(LIB_DIR)/libnvram
CFLAGS += -I$(APP_DIR)/include                                                   
CFLAGS += -g -Werror=implicit-function-declaration 

CFLAGS += -I../zte_comm/zte_hotplug
CFLAGS += -I../zte_comm/at_ctl/inc
CFLAGS += -I../zte_comm/at_ctl/src/phone/inc
CFLAGS += -I$(zte_app_path)/include
CFLAGS += -I$(zte_lib_path)/libatext
CFLAGS += -I$(zte_lib_path)/libsqlite
CFLAGS += -I$(zte_lib_path)/libnvram
CFLAGS += -I$(LINUX_DIR)
CFLAGS += -I$(zte_lib_path)/libzcore/std/inc/zCore/bl
CFLAGS += -I$(zte_lib_path)/libzcore/std/inc/zCore/gui
CFLAGS += -I$(CPU_PUB_ROOT)/project/zx297520v3/include/nv
CFLAGS += -O -Dlinux=1 -DHIGH_SPEED=1


CFLAGS += -I$(zte_lib_path)/libsoftap
#CFLAGS += -I.


CFLAGS += -I$(zte_lib_path)/libsoft_timer

CFLAGS += -I../zte_comm/sms/inc
#CFLAGS += -I../zte_comm/phonebook/inc

CFLAGS	 += -I../zte_comm/wlan/inc


CFLAGS	+= -I../zte_comm/fota_dm/inc
#CFLAGS 	+= -I../zte_comm/fota_dm/gs_lib
CFLAGS 	+= -I../zte_comm/fota_dm/rs_lib
CFLAGS 	+= -I$(zte_lib_path)/libzte_dmapp/inc

#*******************************************************************************
# library
#*******************************************************************************
LDLIBS += -lnvram_sc -L$(zte_lib_path)/libnvram -lpthread
ifeq ($(LINUX_TYPE),uClinux)
LDFLAGS += -Wl,--allow-multiple-definition,-elf2flt=-s131072
endif


LDLIBS  += -lsoftap -L$(zte_lib_path)/libsoftap
LDLIBS  += -lsoft_timer_sc -L$(zte_lib_path)/libsoft_timer
LDLIBS  += -latutils -L$(zte_lib_path)/libatutils
LDLIBS  += -lsqlite -L$(zte_lib_path)/libsqlite
LDLIBS  += -latext -L$(zte_lib_path)/libatext
LDLIBS  += -lm
#LDLIBS  += -ltinyalsa -L$(zte_lib_path)/libtinyalsa
LDLIBS  += -lcpnv -L$(zte_lib_path)/libcpnv
LDLIBS  += -lamt -L$(zte_lib_path)/libamt
#LDLIBS  += -lkey -L$(zte_lib_path)/libkey

LDLIBS  += -lcurl -L$(zte_lib_path)/libcurl/install/lib

ifneq ($(CONFIG_MMI_LCD),no)
LDLIBS += -lzcore
LDLIBS += -lrt
ifeq ($(USE_TTF_FONT), yes)
LDLIBS += -lft2
LDLIBS += -lttf_font
else
LDLIBS += -lbitmap_font
endif
LDLIBS += -L$(zte_lib_path)/libzcore/min
ifeq ($(USE_TTF_FONT), yes)
LDLIBS += -L$(zte_lib_path)/libzcore/min/prebuilts/freetype
endif
endif
ifeq ($(USE_FOTA),yes)
LDLIBS +=  -lztedmapp  -L$(zte_lib_path)/libzte_dmapp
#LIBSHARE_GS =  ../zte_comm/fota_dm/gs_lib/libdmgr.so.1
#LDLIBS +=  -L../zte_comm/fota_dm/gs_lib -ldmgr

LIBSHARE_GS =  ../zte_comm/fota_dm/rs_lib/librsdlsdk.so
LDLIBS +=  -L../zte_comm/fota_dm/rs_lib -lrsdlsdk
endif

LDLIBS1 += -lnvram_sc -L$(zte_lib_path)/libnvram -lpthread
LDLIBS1  += -lsoftap -L$(zte_lib_path)/libsoftap
LDLIBS1  += -lsoft_timer_sc -L$(zte_lib_path)/libsoft_timer

##############USER COMIZE END##################

all: $(EXEC) $(EXEC1) $(EXEC2)
ifneq ($(tools_dir), )
	for i in $(tools_dir) ; do $(MAKE) -C $$i || exit $?; done
endif
ifeq ($(USE_FOTA),yes)
	(cd ../zte_comm/fota_dm/gs_lib;rm libdmgr.so;ln -s libdmgr.so.1  libdmgr.so; cd ../../../zte_comm)
endif

$(EXEC): $(OBJS) $(ZTE_MMI_DEP) $(ZTE_LOCKNET_DEP) $(ZTE_WATCHDOG_DEP)
	$(CC) $(LDFLAGS) -o $@ $(OBJS) $(ZTE_MMI_OBJS) $(ZTE_LOCKNET_OBJS) $(ZTE_WATCHDOG_OBJS) -Wl,--start-group $(LDLIBS) -Wl,--end-group
	@cp $@ $@.elf

$(EXEC1): $(OBJS1)
	$(CC) $(CFLAGS) -o $@ $(OBJS1) -Wl,--start-group $(LDLIBS1) -Wl,--end-group
	@cp $@ $@.elf

$(EXEC2): $(OBJS2)
	$(CC) $(CFLAGS) -o $@ $(OBJS2) -Wl,--start-group $(LDLIBS1) -Wl,--end-group
	@cp $@ $@.elf

romfs:
	$(ROMFSINST)  /sbin/$(EXEC)
	$(ROMFSINST)  /sbin/$(EXEC1)
	$(ROMFSINST)  /sbin/$(EXEC2)
ifeq ($(USE_FOTA),yes)
	$(ROMFSINST) $(LIBSHARE_GS) /lib/
endif
ifneq ($(tools_dir), )
	for i in $(tools_dir) ; do $(MAKE) -C $$i romfs || exit $?; done
endif

clean:
	-rm -f $(EXEC) *.elf *.gdb *.o
	-rm -f $(EXEC1) *.elf *.gdb *.o
	-rm -f $(EXEC2) *.elf *.gdb *.o
	-find ../zte_comm/ -name \*.o -exec rm -rf {} \; 
	-find . -name \*.o -exec rm -rf {} \;
ifneq ($(tools_dir), )
	for i in $(tools_dir) ; do $(MAKE) -C $$i clean || exit $?; done
endif
ifeq ($(CONFIG_USER_SINGLE_DM), zx)
ifeq ($(USE_FOTA),yes)
	rm -rf $(ROOTFS_DIR)//bin/$(EXEC_GS)
endif	
endif

$(ZTE_MMI_DEP):
	${MAKE} -C ../zte_comm/zte_mmi lib

$(ZTE_LOCKNET_DEP):
	${MAKE} -C ../zte_comm/zte_locknet lib

$(ZTE_WATCHDOG_DEP):
	${MAKE} -C ../zte_comm/zte_watchdog lib
