#*******************************************************************************
# include ZTE application makefile
#*******************************************************************************
include $(zte_app_mak)
#include ../net_team.mk
include $(COMMON_MK)
# zw.wang Wifi drives basic functions on 20240318 start
include $(ZTE_PS_LINK_SCRIPT)
CFLAGS	 += $(KERNEL_EXT_CFLAGS)
# zw.wang Wifi drives basic functions on 20240318 end

CPU_PUB_ROOT=$(TOPDIR_AP)/../pub
##############USER COMIZE BEGIN################
EXEC = zte_mdl 
EXEC1 = zte-rtc-clock 
EXEC2 = router_msg_proxy 
OBJS = zte_mdl.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 ../zte_comm/zte_audio_ctrl/audio_res_ctrl.o \
       $(patsubst %.c,%.o,$(wildcard ../zte_comm/zte_drv_ctrl/usb/*.c ../zte_comm/zte_drv_ctrl/serial/*.c)) \
       ../zte_comm/sntp/sntp.o \
       $(patsubst %.c,%.o,$(wildcard ../zte_comm/fota_dm/src/*.c ))

ifeq ($(USE_VEHICLE_DC),yes)
OBJS += ../zte_comm/nvserver/nvserver_rpc.o  ../zte_comm/nvserver/sc_rpc.o ../zte_comm/nvserver/file.o
else
OBJS += ../zte_comm/nvserver/nvserver.o  ../zte_comm/nvserver/nvupdate.o
endif

ifeq ($(USE_VEHICLE_DC_REF),yes)
#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__
ifeq ($(CONFIG_WIFI_SUB_MODULE), d80)
tools_dir += ../zte_comm/wlan/aic_tools/aicrf_test_d80
CFLAGS	 += -D__AIC_8800_D80L__
else
tools_dir += ../zte_comm/wlan/aic_tools/rftest
endif
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__
# zw.wang WiFi for MAC is obtained from firmware and set on 20240508 start
CFLAGS 	 += -DCONFIG_WIFI_EFUSE_MAC
# zw.wang WiFi for MAC is obtained from firmware and set on 20240508 end

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
CFLAGS	 += -I../zte_comm/wlan/inc
endif

OBJS1 = ../zte_comm/rtc-service/zte-rtc-clock.o
OBJS2 = ../zte_comm/zte_mainctrl/router_msg_proxy.o
#aes
CFLAGS += -I$(zte_lib_path)/libssl/install/include
LDLIBS += -L$(zte_lib_path)/libssl/install/lib -lcrypto
ifeq ($(USE_DSDS_VSIM),yes)
LDLIBS += -L$(zte_lib_path)/libvsim -lght_vsim
CFLAGS += -DUSE_DSDS_VSIM
endif

#*******************************************************************************
# 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/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

ifeq ($(USE_FOTA_AB),yes)
CFLAGS += -I$(LIB_DIR)/libflags
endif

#*******************************************************************************
# 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
ifeq ($(USE_VOICE_AT),yes)
LDLIBS  += -ltinyalsa -L$(zte_lib_path)/libtinyalsa
LDLIBS  += -lvoice -L$(zte_lib_path)/libvoice
endif
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


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
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

ifeq ($(USE_FOTA_AB),yes)
LDLIBS += -lflags  -L$(zte_lib_path)/libflags
endif

ifeq ($(USE_ZXIC_DEBUG_INFO),yes)
LDLIBS += -ldebug_info -L$(zte_lib_path)/libdebug_info
endif

##############USER COMIZE END##################

all: $(EXEC) $(EXEC1) $(EXEC2)
ifneq ($(tools_dir), )
	for i in $(tools_dir) ; do $(MAKE) -C $$i || exit $?; done
endif
	(cd ../zte_comm/fota_dm/gs_lib;rm libdmgr.so;ln -s libdmgr.so.1  libdmgr.so; cd ../../../zte_comm)

$(EXEC): $(OBJS)
	$(CC) $(LDFLAGS) -o $@ $(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)
	$(ROMFSINST) $(LIBSHARE_GS) /lib/
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


