# /*****************************************************************************
#* Ȩ (C)2014, ͨѶɷ޹˾
#* 
#* ļ:     Makefile
#* ļʶ:     Makefile
#* ժҪ:     ModemMakefileű
#* ʹ÷:     void
#* 
#* ޸        汾      ޸ı        ޸          ޸
#* -----------------------------------------------------------------------------
#* 2014/09/19      V1.0        Create                    TOSuClinux
#* 
# ******************************************************************************/

include $(PRJ_PATH)/config/project.mk

.PHONY : appstart optee drv zplat linux tools phy ref usat link  

#===============================================
#	help
#===============================================
default: help

help:
	@$(ECHO) "============Make help========================"
	@$(ECHO) "make [help]          help"
	@$(ECHO) "make all[clean]      compile all && link"
	@$(ECHO) "make link[clean]     link all"
	@$(ECHO) "make linux[clean]    config mpu"
	@$(ECHO) "make zplat[clean]    build zte plat libraries"
	@$(ECHO) "make base[clean]     build zte ps libraries"
	@$(ECHO) "make phy[clean]      build zte phy libraries"	
	@$(ECHO) "make appstart[clean] build appstart part"
	@$(ECHO) "make drv[clean]      build drv hal part"
	@$(ECHO) ""
	@$(ECHO) "============Env============================="
	@$(ECHO) "FLAVOR    =$(FLAVOR)"
	@$(ECHO) "COMPILER  =$(COMPILER)"
	@$(ECHO) "OSTYPE    =$(OSTYPE)"
	@$(ECHO) "VERBOSE   =$(VERBOSE)"
	@$(ECHO) "LINTCHK   =$(LINTCHK)"
	@$(ECHO) "HOST      =$(HOST)"	

MODS =
MODS_CLEAN =

#===============================================
#	zte phy Compile
#===============================================
phy:
	@$(ECHO) "---Compile phy"
	@$(GNUMAKE) --no-print-directory -C $(MODEM_PATH)/phy/ws lib FLAVOR=$(FLAVOR)

phyclean:
	@$(GNUMAKE) --no-print-directory -C $(MODEM_PATH)/phy/ws clean FLAVOR=$(FLAVOR)

ifeq ($(USE_REF_VERSION), no)
MODS += phy
MODS_CLEAN += phyclean
endif

#===============================================
#	zte tos Compile
#===============================================
tos:
	@$(ECHO) "---Compile tos"
	@$(GNUMAKE) --no-print-directory -C $(TOS_PATH)/ws lib FLAVOR=$(FLAVOR)

tosclean:
	@$(GNUMAKE) --no-print-directory -C $(TOS_PATH)/ws clean FLAVOR=$(FLAVOR)

ifeq ($(OSTYPE), tos)
MODS += tos
MODS_CLEAN += tosclean
endif

#===============================================
#	zte linux Compile
#===============================================
linux:
	@$(ECHO) "---Compile linux"
	@$(GNUMAKE) --no-print-directory -C$(PRJ_PATH)/config/os/linux/ws lib FLAVOR=$(FLAVOR)

linuxclean:
	@$(GNUMAKE) --no-print-directory -C$(PRJ_PATH)/config/os/linux/ws clean FLAVOR=$(FLAVOR)

ifeq ($(OSTYPE), linux)
#MODS += linux
#MODS_CLEAN += linuxclean
endif

#===============================================
#	zte Appstart Compile
#===============================================
appstart:
	@$(ECHO) "---Compile Appstart"
	@$(GNUMAKE) --no-print-directory -C $(APPSTART_PATH)/ws lib FLAVOR=$(FLAVOR)

appstartclean:
	@$(GNUMAKE) --no-print-directory -C $(APPSTART_PATH)/ws clean FLAVOR=$(FLAVOR)

ifeq ($(USE_REF_VERSION), no)
MODS += appstart
MODS_CLEAN += appstartclean
endif

#===============================================
#	zte plat Compile
#===============================================
zplat:
	@$(ECHO) "---Compile zplat"
	@$(GNUMAKE) --no-print-directory -C $(PLAT_PATH)/ws/dosmake lib FLAVOR=$(FLAVOR)

zplatclean:
	@$(GNUMAKE) --no-print-directory -C $(PLAT_PATH)/ws/dosmake clean FLAVOR=$(FLAVOR)

MODS += zplat
MODS_CLEAN += zplatclean

#===============================================================================
#	optee Compile
#===============================================================================
ifeq ($(USE_OPTEE), yes)
optee:
	@$(ECHO) "---Compile optee"
	@$(GNUMAKE) --no-print-directory -C $(OPTEE_PATH)/ws lib

opteeclean:
	@$(GNUMAKE) --no-print-directory -C $(OPTEE_PATH)/ws clean

MODS += optee
MODS_CLEAN += opteeclean
endif
#===============================================
#	zte Drv Compile
#===============================================
drv:
	@$(ECHO) "---Compile Drv"
	@$(GNUMAKE) --no-print-directory -C $(DRV_PATH)/ws lib FLAVOR=$(FLAVOR)

drvclean:
	@$(GNUMAKE) --no-print-directory -C $(DRV_PATH)/ws clean FLAVOR=$(FLAVOR)

MODS += drv
MODS_CLEAN += drvclean

#===============================================	
#	zte L1g Compile                    		 
#=============================================== 
ifeq ($(USE_L1G), yes)
gsml1:
	@$(ECHO) "---Compile gsml1"
	@$(GNUMAKE) --no-print-directory -C $(L1G_PATH)/ws/make lib
	
gsml1clean:
	@$(GNUMAKE) --no-print-directory -C $(L1G_PATH)/ws/make clean

ifeq ($(USE_REF_VERSION), no)
MODS += gsml1
MODS_CLEAN += gsml1clean
endif
endif

#===============================================
#	zte ati Compile
#===============================================
ifneq ($(USE_SMALL_VERSION),yes)
ati:
	@$(ECHO) "---Compile ati"
	@$(GNUMAKE) --no-print-directory -C $(PS_PATH)/src/nas/ati/ws lib FLAVOR=$(FLAVOR)

aticlean:
	@$(GNUMAKE) --no-print-directory -C $(PS_PATH)/src/nas/ati/ws clean FLAVOR=$(FLAVOR)

ifneq ($(USE_AMT),yes)	
MODS += ati
MODS_CLEAN += aticlean
endif
endif

#===============================================
#	zte ps Compile
#===============================================
ifneq ($(USE_SMALL_VERSION),yes)
ps:
	@$(ECHO) "---Compile ps"
	@$(GNUMAKE) --no-print-directory -C $(PS_PATH)/ws lib FLAVOR=$(FLAVOR)

psclean:
	@$(GNUMAKE) --no-print-directory -C $(PS_PATH)/ws clean FLAVOR=$(FLAVOR)

ifneq ($(USE_AMT),yes)	
ifeq ($(USE_REF_VERSION), no)
MODS += ps
MODS_CLEAN += psclean
endif
endif
endif

#===============================================
#	zte usat Compile
#===============================================
ifneq ($(USE_SMALL_VERSION),yes)
usat:
	@$(ECHO) "---Compile usat"
	@$(GNUMAKE) --no-print-directory -C $(USAT_PATH)/ws lib FLAVOR=$(FLAVOR)

usatclean:
	@$(GNUMAKE) --no-print-directory -C $(USAT_PATH)/ws clean FLAVOR=$(FLAVOR)

ifneq ($(USE_AMT),yes)
ifeq ($(USE_REF_VERSION), no)	
MODS += usat
MODS_CLEAN += usatclean
endif
endif
endif

#===============================================
#	zte psbase Compile
#===============================================
psbase:
	@$(ECHO) "---Compile zplat"
	@$(GNUMAKE) --no-print-directory -C $(PSBASE_PATH)/ws lib FLAVOR=$(FLAVOR)

psbaseclean:
	@$(GNUMAKE) --no-print-directory -C $(PSBASE_PATH)/ws clean FLAVOR=$(FLAVOR)

ifeq ($(USE_REF_VERSION), no)
MODS += psbase
MODS_CLEAN += psbaseclean
endif

#===============================================
#	zte tool Compile
#===============================================
tools:
	@$(ECHO) "---Compile tool"
	@$(GNUMAKE) --no-print-directory -C $(TOOL_PATH)/ws lib FLAVOR=$(FLAVOR)

toolsclean:
	@$(GNUMAKE) --no-print-directory -C $(TOOL_PATH)/ws clean FLAVOR=$(FLAVOR)
	
ifeq ($(USE_REF_VERSION), no)
MODS += tools
MODS_CLEAN += toolsclean
endif

#===============================================
#	ref Compile
#===============================================
ref:
	@$(ECHO) "---Compile ref"
	@$(GNUMAKE) --no-print-directory -C $(REF_PATH)/ws lib FLAVOR=$(FLAVOR)

refclean:
	@$(GNUMAKE) --no-print-directory -C $(REF_PATH)/ws clean FLAVOR=$(FLAVOR)

MODS += ref
MODS_CLEAN += refclean

#===============================================
#	amt Compile
#===============================================
amt:
	@$(ECHO) "---Compile amt"
	@$(GNUMAKE) --no-print-directory -C $(AMT_PATH)/ws lib FLAVOR=$(FLAVOR)

amtclean:
	@$(GNUMAKE) --no-print-directory -C $(AMT_PATH)/ws clean FLAVOR=$(FLAVOR)

MODS += amt
MODS_CLEAN += amtclean

#===============================================
# make link
#===============================================
ZTE_LIBS = 

ifeq ($(OSTYPE),tos)
link: 
	@$(ECHO) "---Link All."
	@$(GNUMAKE) --no-print-directory -C ../../../config/os/tos -f tos_link.mk tos_app  ZTE_FLAVOR=$(FLAVOR)

linkclean:
	@$(ECHO) "---Clean Link Output File."
	@$(GNUMAKE) --no-print-directory -C ../../../config/os/tos -f tos_link.mk tos_app_clean ZTE_FLAVOR=$(FLAVOR)
endif

ifeq ($(OSTYPE),linux)
link: 
	@$(ECHO) "---Link All."

linkclean:
	@$(ECHO) "---Clean Link Output File."
endif

MODS += link
MODS_CLEAN += linkclean

#===============================================
# make all
# make allclean
#===============================================
all: $(MODS) 
allclean: $(MODS_CLEAN)

sdk: amt drv zplat ati ref
sdkclean: amtclean drvclean zplatclean aticlean refclean
