#*******************************************************************************
# 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_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__
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
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

##############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


