# /*****************************************************************************
#* Ȩ(C) 2013 ͨѶɷ޹˾
#* 
#* ļ: Makefile
#* ļʶ: oss_mk
#* ժҪ: OSSϵͳ
#* ʹ÷:     
#* 
#* ޸        汾      ޸ı       ޸        ޸
#* -----------------------------------------------------------------------------
#* 2013/01/01      V1.0        001            P98G          
#* 
# *****************************************************************************/

include $(PRJ_PATH)/config/project.mk

.PHONY :
lib: oss
clean: ossclean

ifeq ($(OSTYPE),ose)
OSS_MODS += osa_ose_lib
OSS_MODS_CLEAN += osa_ose_libclean
LIB_TO_WARP += $(PLAT_LIB_INTERNAL_PATH)/plat_osa_ose.a
endif

ifeq ($(OSTYPE),tos)
OSS_MODS += osa_tos_lib
OSS_MODS_CLEAN += osa_tos_libclean
LIB_TO_WARP += $(PLAT_LIB_INTERNAL_PATH)/plat_osa_tos.a
endif

ifeq ($(OSTYPE),linux)
OSS_MODS += osa_linux_lib
OSS_MODS_CLEAN += osa_linux_libclean
LIB_TO_WARP += $(PLAT_LIB_INTERNAL_PATH)/plat_osa_linux.a
OBJ_TO_WARP += $(PLAT_LIB_INTERNAL_PATH)/plat_osa_linux-builtin.o
endif

OSS_MODS += sup
OSS_MODS_CLEAN += supclean
LIB_TO_WARP += $(PLAT_LIB_INTERNAL_PATH)/plat_sup.a
OBJ_TO_WARP += $(PLAT_LIB_INTERNAL_PATH)/plat_sup-builtin.o

ifneq ($(USE_OSS_MIN), yes)
ifeq ($(USE_PSM), yes)
OSS_MODS += psm
OSS_MODS_CLEAN += psmclean
LIB_TO_WARP += $(PLAT_LIB_INTERNAL_PATH)/plat_psm.a
OBJ_TO_WARP += $(PLAT_LIB_INTERNAL_PATH)/plat_psm-builtin.o
endif
endif

oss: $(OSS_MODS) wraplib
ossclean: $(OSS_MODS_CLEAN) wraplibclean

#===============================================================================
#	osa Lib Compile
#===============================================================================
#ose
OSA_OSE_PATH = $(PLAT_PATH)/src/oss/osa/ose
osa_ose_lib:
	@$(GNUMAKE) --no-print-directory -C $(OSA_OSE_PATH)/ws lib
osa_ose_libclean:
	@$(GNUMAKE) --no-print-directory -C $(OSA_OSE_PATH)/ws clean

#tos
OSA_TOS_PATH = $(PLAT_PATH)/src/oss/osa/tos
osa_tos_lib:
	@$(GNUMAKE) --no-print-directory -C $(OSA_TOS_PATH)/ws lib
osa_tos_libclean:
	@$(GNUMAKE) --no-print-directory -C $(OSA_TOS_PATH)/ws clean

#linux
OSA_LINUX_PATH = $(PLAT_PATH)/src/oss/osa/linux
osa_linux_lib:
	@$(GNUMAKE) --no-print-directory -C $(OSA_LINUX_PATH)/ws lib
osa_linux_libclean:
	@$(GNUMAKE) --no-print-directory -C $(OSA_LINUX_PATH)/ws clean

#===============================================================================
#	sup Lib Compile
#===============================================================================
SUP_PATH = $(PLAT_PATH)/src/oss/sup
sup:
	@$(GNUMAKE) --no-print-directory -C $(SUP_PATH)/ws lib
supclean:
	@$(GNUMAKE) --no-print-directory -C $(SUP_PATH)/ws clean

#===============================================================================
#	psm Lib Compile
#===============================================================================
PSM_PATH = $(PLAT_PATH)/src/oss/psm
psm:
	@$(GNUMAKE) --no-print-directory -C $(PSM_PATH)/ws lib
psmclean:
	@$(GNUMAKE) --no-print-directory -C $(PSM_PATH)/ws clean

#===============================================================================
#ģ.a
#===============================================================================
wraplib:
ifeq ($(USE_ENABLE_LTO),yes)
	@$(COPY) --force $(OBJ_TO_WARP) $(PLAT_LIB_EXTERNAL_PATH)
else
	@$(COPY) --force $(LIB_TO_WARP) $(PLAT_LIB_EXTERNAL_PATH)
endif

wraplibclean:
	@$(RM) -rf $(PLAT_LIB_INTERNAL_PATH)
