
################################################################
#
# Broadcom Corp. Confidential
# Copyright 2003 Broadcom Corp. All Rights Reserved.
#
# THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED
# SOFTWARE LICENSE AGREEMENT BETWEEN THE USER AND BROADCOM.
# YOU HAVE NO RIGHT TO USE OR EXPLOIT THIS MATERIAL EXCEPT
# SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
#
# $brcm_Workfile:  $
# $brcm_Revision:  $
# $brcm_Date: $
#
# Module Description:  ram makefile
#
# Revision History:
#
# Created: Wed Sep 13 11:49:24 PDT 2006 by Jeffrey Fisher
#
# $brcm_Log: $
#
################################################################/

export SW_FULL_VERSION=$(shell gcc ../../../zasc/app_c/DST_Main.c -D_GET_SW_VERSION_ -o version.exe;./version.exe)

TOP_DIR 	:= $(shell cd ../../ ; /bin/pwd)
DHL_DIR = $(TOP_DIR)/dst/dhl
DLIB_DIR = $(TOP_DIR)/dst/dlib
DMW_DIR = $(TOP_DIR)/dst/dmw
DAPP_DIR = $(TOP_DIR)/dst/app

AOV_MODEL 		?= 0

#
# Software version number MAJOR_VERSION.MINOR_VERSION.SUB_VERSION
# Major number can be in the range from 0 to 7
# Minor number can be in the range 0 to 31
# Sub version  can be in the range 0 to 15
#

MAJOR_VERSION   ?= 5
MINOR_VERSION   ?= 0
SUB_VERSION     ?= 1

ALCO_VERSION1	?= 0
ALCO_VERSION2	?= 7

#
#
#
ROM_CHECKSUM	?= 0x00000000

#
# Configuration for default build
#

PLATFORM	= 97574

#
# To suppress the display all make commands
#

Q_ = @
QUIET		= $(Q_)

#
# To build in debug support
#

DEBUG			?= y
export DEBUG

SCREENSAVER ?= y
ifeq (${SCREENSAVER},y)
CFLAGS				+= -DCONFIG_SCREENSAVER 
endif

#
# enable AVS as default
#
ENABLE_AVS ?= n

#
# Use MemsysInitLib instead of older shmoo libraries
#
ENABLE_MEMSYSINIT ?= y

#
# enable STANDBY as default
#
HAS_STANDBY ?= y

#
# Dolby logo without extra D
#
DOLBY_LOGO_NO_D ?= y

#
# Types of applications 
#
# dta/nanotv/ntia
#
APP_TYPE		?= ntia

#
# To use memory checker
#
HAS_MRC			?=n

#
# To include profiling support
#

PROFILE 		?=n

#
# Include EIA 708 CC rendering
#

HAS_EIA_708		?= y
#
# use new smaller font set and will support 3 font set display
NEW_FONT_SET    ?= y

#
# EXTERNAL VSB
#
ifeq (${APP_TYPE},ntia)
HAS_VSB			?=y
else
HAS_VSB			?=n
endif

#
# VBI (AMOL/GS)
#

HAS_VBI			?=y

#
# Include SCTE65 parsing rendering
#

#
# Include Subtitle parsing and rendering
#
HAS_SCTE27		?=n

#SCTE65: SERVICE INFORMATION DELIVERED OUT-OF-BAND FOR DIGITAL CABLE TELEVISION
HAS_SCTE65		?= n #BK y->n
#SCTE18: Emergency Alert Messaging for Cable
#BKTODO: check the following options
HAS_SCTE18		?=y
HAS_CAT			?=y

HAS_WATCHDOG		?=y

HAS_DVB 		?=n
HAS_DVB_SUBTITLE?=n

HAS_NOVCHIP_SD ?= n
HAS_NOCC_SD ?=n

SHRINK_WIDTH =n

#
# Aqua menu, for customers that want to diable it, please change it to n
#
HAS_AQUA_MENU ?=n #BK y->n

#
# Include PSIP parsing rendering
#

HAS_ATSC_PSIP		?= y

#
# Select remote protocol.
#
#	0 - Remote A
#	1 - Twirp,XMP
#	4 - ARC-xxx
#	5 - RCA
#	3 - Remote B
#	8 - Motorola
#	10 - NEC based IR remote (MA-35K)
#	11 - NEC based IR remote
#	12 - NEC based IR remote
#	15 - DST NEC based IR remote

USERIO_ID		?= 15

#
# build SHMOO lib. Please change DDR_FREQ_MHZ in bootloader.mk accordingly for the DDR speed to build (333, 400 and 533)
#
BUILD_SHMOO		?= n

#
# SCM and CA support
#
HAS_SCM ?= n

#
# Draw audio power level
# 
HAS_AUD_PWR ?= n 
#
# Since platform.inc define CFLAGS it is important it be included before any other CFLAGS are set. 
#
USE_NEXUS ?= n
OS        		?= ucos_ii

include platform.inc

TUNER_TEST ?= n

#
# use 32 bit for Aspect Ratio manipulation
CFLAGS	+= -DBVDC_UINT32_ONLY=1 

#
## include ACB612 defines 
#
ifeq (${APP_TYPE},ntia)

CONFIG_ENABLE_SHMOO		= y
CONFIG_ENABLE_UART		= y
CONFIG_ENABLE_FAST_UART	= n
CONFIG_ENABLE_REG_RW	= n

ENABLE_APP				= y
ENABLE_TESTS			= n

HAS_SCTE65				= n
HAS_ATSC_PSIP			= y
HAS_ATSC				= y
HAS_AVL					= y
DEBUG					= y

# RGB surface, 8 bit font (gray scale) 
CONFIG_BGFX_SURF_RGB	= y
CONFIG_8BIT_FONT		= y
VIDEO_SCALING_SUPPORT   = y

# anything that specific to ACB612/ACB613 board
CFLAGS	+= -DACB612
CFLAGS	+= -DNO_VCHIP

# anything that specific to ACB612/ACB613 board
ifeq (${ACB615},y)
CFLAGS	+= -DACB615 -DHAS_HDMI
endif

endif


CFLAGS += -DAOV_MODEL=$(AOV_MODEL)

#
# SCTE-65 defines 
#

ifeq (${HAS_SCTE65}, y)

#
# Enable/Disable DTA Cable mode.
#

# Power Monitor

ifeq (${NTV_SIMULATOR},y)
TEST_BFDS = y
CFLAGS += -DSIMULATOR
ifeq (${APP_TYPE},nanotv)
CFLAGS += -DAPP_TYPE_NANOTV
else
ifeq (${APP_TYPE},ntia)
CFLAGS += -DAPP_TYPE_NTIA
else
CFLAGS += -DAPP_TYPE_DTA
endif
endif
else
CFLAGS     += -DCONFIG_MONITOR_PVT -DCONFIG_SMARTCARD_TEST
endif

# For inital SCTE-65 test streams set CONFIG_NETWORK_PID to 0x777

CFLAGS				+= -DCONFIG_NETWORK_PID=0x1FFC -DDEF_VERSION=0x00000011
ifeq (${SCREENSAVER},y)
CFLAGS 				+= -DCONFIG_DTA_CABLE -DCONFIG_SCREENSAVER -DCONFIG_COMCAST_BUILD
else
CFLAGS 				+= -DCONFIG_DTA_CABLE -DCONFIG_COMCAST_BUILD
endif
CFLAGS				+= -DDOWNLOAD_FLASH_OFFSET=0x68000
CFLAGS				+= -DCONFIG_CUSTOMER_PASSWD=0x09070301	# 1379

#
# TUNER_BAND for historical reasons is actualy which parser to use and 
# PARSER_BAND is actualy the input source of the parser */
#
CFLAGS				+= -DTUNER_BAND=0		# IB0: On chip ISDB-T demodulator
ifeq (${BCHP_CHIP},7552)
CFLAGS				+= -DPARSER_BAND=1
else
CFLAGS				+= -DPARSER_BAND=3
endif

#
#  NEXUS Defines normalin in platform header file in Nexus build 
#
CFLAGS				+= -DNEXUS_NUM_AUDIO_DECODERS=3
CFLAGS				+= -DCONFIG_HAS_AUDIO=1
# 
# Enable all the following to meet NEW UDTA Spec Requirements
#
CFLAGS				+= -DCONFIG_REQUIRE_CAT

# To IGNORE VCT ID set CONFIG_DEF_VCT_ID=0xFFFF

CFLAGS				+= -DCONFIG_DEF_VCT_ID=0xF100
CFLAGS				+= -DCONFIG_DEF_EMM_PID=0x1FF0

# Vendor and Hardware ID
CFLAGS				+= -DDEF_VENDOR_ID=0x0FACED	# 3 bytes
CFLAGS				+= -DDEF_HARDWARE_ID=$(PLATFORM)
CFLAGS				+= -DDEF_VENDOR_NAME=\"Broadcom\"

endif  ### ifeq (${HAS_SCTE65}, y) ###

ifeq (${APP_TYPE},ntia)
CFLAGS 				+= -DFOR_NTIA
CFLAGS				+= -DDEF_VENDOR_ID=0x612
ifeq (${SCREENSAVER},y)
CFLAGS				+= -DCONFIG_SCREENSAVER 
endif
CFLAGS				+= -DDEF_HARDWARE_ID=$(PLATFORM)
CFLAGS				+= -DDEF_VENDOR_NAME=\"Broadcom\"
CFLAGS				+= -DCONFIG_NETWORK_PID=0x1FFB -DDEF_VERSION=0x00000001
CFLAGS				+= -DTUNER_BAND=0 -DPARSER_BAND=5
CFLAGS 				+= -DNTIA_UI

ifeq (${TUNER_DEBUG},y)
CFLAGS				+= -DTUNER_DEBUG
endif

ifeq (${HAS_AQUA_MENU},y)
CFLAGS				+= -DCONFIG_AQUA_MENU
endif

HAS_4M_FLASH ?= n
ifeq (${HAS_4M_FLASH},y)
endif

# if use 7542 board
CFLAGS				+= -DUSE_7542_BOARD
endif

ifeq ($(SHRINK_WIDTH),y)
CFLAGS				+= -DSHRINK_WIDTH
endif

ifeq (${HAS_SCM}, y)
CFLAGS += -DCONFIG_ENABLE_SCM=1
endif
#
# Definitions that define chip and board configuration
#


#
# Tool definitions
#

ECHO		=	$(QUIET)echo

#
# Root directories where sources reside
#

DTA_DIR 		= $(TOP_DIR)/dta
BUILD_DIR		= $(DTA_DIR)/build
SOURCE_DIR		= $(DTA_DIR)/src
SIM_DIR			= $(SOURCE_DIR)/sim
MAGNUM_DIR 	 	= $(TOP_DIR)/magnum
ROCKFORD_DIR 	= $(TOP_DIR)/rockford
BSEAV_DIR 	 	= $(TOP_DIR)/BSEAV
BCMBIN_DIR		= $(TOP_DIR)/dta/bin
SYSLIB_DIR 	 	= $(MAGNUM_DIR)/syslib
#
# Defines important to PI Module
#


MAGNUM			= $(MAGNUM_DIR)

#
# Source directories
#

OS_DIR		= $(SOURCE_DIR)/$(OS)
Z_DIR		= $(SOURCE_DIR)/z
BFDB_DIR	= $(SOURCE_DIR)/bfdb
FCC_DIR		= $(SOURCE_DIR)/settop_api
APP_DIR		= $(SOURCE_DIR)/app

ifeq (${APP_TYPE},dta)
APP_SRC_DIR	= $(APP_DIR)/dta
APP_IMAGES_DIR  = $(APP_SRC_DIR)/images
else
ifeq (${APP_TYPE},ntia)
APP_SRC_DIR	= $(APP_DIR)/ntia
else
APP_SRC_DIR	= $(APP_DIR)/nanotv
endif
endif

#
# Base CFLAGS
#
ifeq (${OS}, ucos_ii)
CFLAGS += -DUCOS_II
endif

#
# Identify chip
#

CFLAGS += -DBCHP_CHIP=$(BCHP_CHIP) -DBCHP_VER=BCHP_VER_$(BCHP_VER)
# overwrite chip id register
CFLAGS += -DBCHP_CHIP_ID=7552

#
# Identify version
#
ifeq ($(AOV_MODEL),1)
CFLAGS += -DMAJOR_VERSION=$(MAJOR_VERSION) -DMINOR_VERSION=$(MINOR_VERSION) -DSUB_VERSION=$(SUB_VERSION) -DALCO_VERSION1=$(ALCO_VERSION1) -DALCO_VERSION2=$(ALCO_VERSION2)
else
CFLAGS += -DMAJOR_VERSION=$(MAJOR_VERSION) -DMINOR_VERSION=$(MINOR_VERSION) -DSUB_VERSION=$(SUB_VERSION)
endif
#
# DTA defines
#

ifeq ($(CONFIG_XMP_REMOTE),y)
CFLAGS += -DCONFIG_XMP_REMOTE
endif

CFLAGS +=  -DUSERIO_ID=$(USERIO_ID)

CFLAGS += -DCONFIG_ENABLE_UART

ifeq (${HAS_WATCHDOG},y)
CFLAGS		+= -DCONFIG_WATCHDOG
endif

#
# Flags enabling build of non-distributed sources
#

BUILD_UCOS ?= n
BUILD_LIBFCC ?= n

ENABLE_UMESSAGE ?= n

#
# DST
#
ifeq (${SUPPORT_DST_PLATFORM},y)
CFLAGS += -DSUPPORT_DST_PLATFORM=1
else
CFLAGS += -DSUPPORT_DST_PLATFORM=0
endif

#
# Target binary name
#

TARGET		= ram$(PLATFORM)

#
# The targets
#


ifeq (${NTV_SIMULATOR},y)

all: makefile $(PLATFORM)_sim
BCM_SRC		= \
			$(SIM_DIR)/gtkmain.c \
			$(SIM_DIR)/gtk_app.c \
			$(SIM_DIR)/gtk_dlg.c \
			$(SIM_DIR)/gtk_cb.c \
			$(SIM_DIR)/gtk_app_remote.c \
			$(SIM_DIR)/pc_user_io.c \
			$(SIM_DIR)/sim.c \
			$(SIM_DIR)/sim_settop.c \
			$(SIM_DIR)/sim_ext.c \
			$(SIM_DIR)/bos_pthread.c
			
CFLAGS     += -I$(SIM_DIR) -I$(SOURCE_DIR)/settop_api -I$(SOURCE_DIR) \
	-I$(APP_SRC_DIR) -I$(APP_DIR) -I$(MAGNUM_DIR)/commonutils/lst
CFLAGS += `pkg-config --cflags gtk+-2.0`

### else ifeq (${NTV_SIMULATOR},y)
else
ifeq (${USE_NEXUS},y)
NEXUS_PLATFORM = 97552
include nexus_dta.mk
else
all: makefile jar flash$(PLATFORM).gz


LDFLAGS += -T ld.script

BCM_SRC = $(SOURCE_DIR)/ram_init.c \
	$(SOURCE_DIR)/bos_ucos_ii.c \
	$(SOURCE_DIR)/bos_trace.c \
	$(SOURCE_DIR)/gdb_nub.c

CFLAGS += -I$(ROCKFORD_DIR)/bsp/bcm9$(BCHP_CHIP)/no-os/src/sde

### endif ifeq ($(USE_NEXUS},y)
endif
### endif ifeq (${NTV_SIMULATOR},y)
endif

#
# NEWLIB ucos bsp
#

ifeq ($(NEWLIB),y)
BCM_SRC +=  $(SOURCE_DIR)/ucos_dev.c
endif
#
# Include ministd in RAM source and paths
#

ifeq (${NTV_SIMULATOR},y)

### else ifeq (${NTV_SIMULATOR},y)
else
ifeq (${OS},ucos_ii)
CFLAGS += -DMINISTD_RAM=1
BCM_ASM_SRC += $(SOURCE_DIR)/crt.S $(SOURCE_DIR)/memcpy.S $(SOURCE_DIR)/setjmp.S
BCM_SRC += $(SOURCE_DIR)/ministd.c $(SOURCE_DIR)/bcmmemmgr.c $(SOURCE_DIR)/qsort.c
BCM_SRC += $(SOURCE_DIR)/cache_util.c
BCM_VPATH 	+= $(DTA_DIR)/src
BCM_VPATH 	+= $(DTA_DIR)/src/$(OS)
endif
### endif ifeq (${NTV_SIMULATOR},y)
endif

HAS_8BIT_FONT = y
CFLAGS += -DCONFIG_GFX_ARGB32
CFLAGS += -DCONFIG_8BIT_FONT


#########################################################################################
# DST specific code here.
#########################################################################################
include dst_sw.mk
DST_LIB_OBJS = $(LIB_DIR)/libdst.a

CFLAGS += -DSUBMODEL_ID=2		#for MW

##ifeq (${SUPPORT_DST_PLATFORM},y)
ifeq (0,1)##move to dst_sw.mk
##################################
# HAL
##################################
CFLAGS += -D_FE_BCM3520_NXP
DHL_SRC += \
	$(DHL_DIR)/src/DHL_OSAL_Impl.c \
	$(DHL_DIR)/src/DHL_OSAL.c	\
	$(DHL_DIR)/src/DHL_OSAL_Print.c	\
	$(DHL_DIR)/src/DHL_DBG.c	\
	$(DHL_DIR)/src/DHL_DBG_Print.c \
	$(DHL_DIR)/src/DHL_UTL.c \
	$(DHL_DIR)/src/DHL_Timer.c \
	$(DHL_DIR)/src/DHL_DBG_Symbols.c \
	$(DHL_DIR)/src/DHL_DBG_Shell.c \
	$(DHL_DIR)/src/DHL_SYS.c \
	$(DHL_DIR)/src/DHL_Main.c \
	$(DHL_DIR)/src/DHL_DEV_Platform.c	\
	$(DHL_DIR)/src/DHL_FE.c	\
	$(DHL_DIR)/src/DHL_FE_Platform.c \
	$(DHL_DIR)/src/DHL_AVCAP.c	\
	$(DHL_DIR)/src/DHL_AVCAP_Impl.c \
	$(DHL_DIR)/src/DHL_Graphic.c	\
	$(DHL_DIR)/src/DHL_Graphic_Platform.c	\
	$(DHL_DIR)/src/DHL_Demux.c	\
	$(DHL_DIR)/src/DHL_PSI.c	\
	$(DHL_DIR)/src/DHL_PSI_Impl.c	\
	$(DHL_DIR)/src/DHL_PSI_Rx.c	\
	$(DHL_DIR)/src/DHL_UIO_Platform.c	\
	$(DHL_DIR)/src/DHL_NVM.c	\
	$(DHL_DIR)/src/DHL_UIO.c	\
	$(DHL_DIR)/src/DHL_COM.c	\
	$(DHL_DIR)/api/test/OSSemTest.c \
	$(DHL_DIR)/api/test/AVCAPTest.c \
	$(DHL_DIR)/api/test/TimerTest.c \
	$(DHL_DIR)/api/test/OSTaskTest.c \
	$(DHL_DIR)/api/test/FrontEndTest.c 


#	$(DHL_DIR)/api/test/PsiTest.c \
#	$(DHL_DIR)/api/test/OSHeapTest.c \
#	$(DHL_DIR)/api/test/PsiTest.c \

		
## DLIB/PNG
DLIB_SRC += \
	$(DLIB_DIR)/src/PNG/png.c \
	$(DLIB_DIR)/src/PNG/pngerror.c \
	$(DLIB_DIR)/src/PNG/pngget.c \
	$(DLIB_DIR)/src/PNG/pngmem.c \
	$(DLIB_DIR)/src/PNG/pngpread.c \
	$(DLIB_DIR)/src/PNG/pngread.c \
	$(DLIB_DIR)/src/PNG/pngrio.c \
	$(DLIB_DIR)/src/PNG/pngrtran.c \
	$(DLIB_DIR)/src/PNG/pngrutil.c \
	$(DLIB_DIR)/src/PNG/pngset.c \
	$(DLIB_DIR)/src/PNG/pngtrans.c \
	$(DLIB_DIR)/src/PNG/pngwio.c \
	$(DLIB_DIR)/src/PNG/pngwrite.c \
	$(DLIB_DIR)/src/PNG/pngwtran.c \
	$(DLIB_DIR)/src/PNG/pngwutil.c
## DLIB/others
DHL_SRC += \
	$(DLIB_DIR)/src/uiofilter/UioFilter.c


DLIB_SRC += \
	$(DLIB_DIR)/src/si/DLIB_BitOp.c \
	$(DLIB_DIR)/src/si/DLIB_PSI_Debug.c \
	$(DLIB_DIR)/src/si/DLIB_PSI_Parser.c \
	$(DLIB_DIR)/src/si/DLIB_PSI_Monitor.c \
	$(DLIB_DIR)/src/si/DLIB_PSIP_Parser.c \
	$(DLIB_DIR)/src/si/DLIB_PSIP_Monitor.c \
	$(DLIB_DIR)/src/si/DLIB_PSI_Utils.c \
	$(DLIB_DIR)/src/si/DLIB_SDDS_Monitor.c \
	$(DLIB_DIR)/src/si/DLIB_SDDS_Parser.c \
	$(DLIB_DIR)/src/osx/OSX_Task.c \

## DLIB/ZLIB  -> BRCM Z_DIR ü 
SKIP_BCM_SRC += \
	$(DLIB_DIR)/src/ZLIB/adler32.c \
	$(DLIB_DIR)/src/ZLIB/compress.c \
	$(DLIB_DIR)/src/ZLIB/crc32.c \
	$(DLIB_DIR)/src/ZLIB/deflate.c \
	$(DLIB_DIR)/src/ZLIB/gzio.c \
	$(DLIB_DIR)/src/ZLIB/infblock.c \
	$(DLIB_DIR)/src/ZLIB/infcodes.c \
	$(DLIB_DIR)/src/ZLIB/inffast.c \
	$(DLIB_DIR)/src/ZLIB/inflate.c \
	$(DLIB_DIR)/src/ZLIB/inftrees.c \
	$(DLIB_DIR)/src/ZLIB/infutil.c \
	$(DLIB_DIR)/src/ZLIB/trees.c \
	$(DLIB_DIR)/src/ZLIB/uncompr.c \
	$(DLIB_DIR)/src/ZLIB/zutil.c

DMW_SRC :=  # just to emphasize in source insight's syntax-highliting
DMW_SRC += 	\
	$(DMW_DIR)/src/System/DMW_Dummy.c \
	$(DMW_DIR)/src/System/DMW_Main.c \
	$(DMW_DIR)/src/System/DMW_Mutex.c \
	$(DMW_DIR)/src/System/DMW_MsgQue.c \
	$(DMW_DIR)/src/System/DMW_Timer.c \
	$(DMW_DIR)/src/System/DMW_SysTime.c \
	$(DMW_DIR)/src/System/DMW_CodeConv.c \
	$(DMW_DIR)/src/System/DMW_NvRam.c \
	$(DMW_DIR)/src/psi/DMW_PsiSdds.c \
	$(DMW_DIR)/src/psi/DMW_PsiEngine.c \
	$(DMW_DIR)/src/psi/DMW_PsiDatabase.c \
	$(DMW_DIR)/src/psi/DMW_PsiUtil.c \
	$(DMW_DIR)/src/psi/DMW_PsiLinkedList.c \
	$(DMW_DIR)/src/psi/DMW_PsiTask.c \
	$(DMW_DIR)/src/psi/DMW_PsiAPI.c \
	$(DMW_DIR)/src/EPG/DMW_EpgBase.c \
	$(DMW_DIR)/src/EPG/DMW_EpgDebug.c \
	$(DMW_DIR)/src/EPG/DMW_EpgInterface.c \
	$(DMW_DIR)/src/EPG/DMW_EpgRating.c \
	$(DMW_DIR)/src/EPG/DMW_EpgVersion.c \
	$(DMW_DIR)/src/EPG/DMW_RfDownload.c \
	$(DMW_DIR)/src/Channel/DMW_Channel.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelTask.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelUtil.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelAV.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelCSD.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelDB.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelDemux.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelFreq.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelHAL.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelScan.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelTune.c \
	$(DMW_DIR)/src/Channel/DMW_ChannelVer.c \
	$(DMW_DIR)/src/Channel/DMW_Mcm.c \
	$(DMW_DIR)/src/Channel/DMW_Ucm.c \
	$(DMW_DIR)/src/cc/cc_ddi_mstar.c \
	$(DMW_DIR)/src/cc/cc_main.c \
	$(DMW_DIR)/src/cc/app_cc.c \
	$(DMW_DIR)/src/cc/cc_display.c \
	$(DMW_DIR)/src/cc/cc_exec_608.c \
	$(DMW_DIR)/src/cc/cc_exec_708.c \
	$(DMW_DIR)/src/cc/cc_front.c \
	$(DMW_DIR)/src/cc/cc_user.c \
	$(DMW_DIR)/src/cc/cc_util.c \
	$(DMW_DIR)/src/cc/cc_win.c \
	$(DMW_DIR)/src/grp/DMG_Draw.c \
	$(DMW_DIR)/src/grp/DMG_Menu.c \
	$(DMW_DIR)/src/grp/DMG_Util.c \
	$(DMW_DIR)/src/grp/BMF.c \
	$(DMW_DIR)/src/grp/grp_jungle.c \
	$(DMW_DIR)/src/grp/jungle_font/utfOutline.c \
	$(DMW_DIR)/src/grp/jungle_font/utfStruct.c

#	$(DMW_DIR)/src/EPG/DMW_EpgUtil.c \
#	$(DMW_DIR)/src/EPG/DMW_EpgMgtMgr.c \
#	$(DMW_DIR)/src/EPG/DMW_Xds.c \
#	$(DMW_DIR)/src/EPG/DMW_EIA608B.c



APP_SRC_C += \
	$(DAPP_DIR)/src/Function/App_Fnc_Audio.c \
	$(DAPP_DIR)/src/Function/App_Fnc_AutoScan.c \
	$(DAPP_DIR)/src/Function/App_Fnc_CC.c \
	$(DAPP_DIR)/src/Function/App_Fnc_ChTune.c \
	$(DAPP_DIR)/src/Function/App_Fnc_DigitKeyProc.c \
	$(DAPP_DIR)/src/Function/App_Fnc_EA2.c \
	$(DAPP_DIR)/src/Function/App_Fnc_EPG.c \
	$(DAPP_DIR)/src/Function/App_Fnc_NvRam.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Pod.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Power.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Rating.c \
	$(DAPP_DIR)/src/Function/App_Fnc_RfUpdate.c \
	$(DAPP_DIR)/src/Function/App_Fnc_RRT.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Sdds2.c \
	$(DAPP_DIR)/src/Function/App_Fnc_SignalMonitor.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Time.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Ucm.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Video.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Comm.c \
	$(DAPP_DIR)/src/Function/App_Fnc_Dummy.c \
	$(DAPP_DIR)/src/Main/App_Debug.c \
	$(DAPP_DIR)/src/Main/App_Main.c \
	$(DAPP_DIR)/src/Main/App_Version.c \
	$(DAPP_DIR)/src/Main/App_Map.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_Banner.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_ChEdit.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_Common.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_Epg2.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_Main.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_Pod.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_RRT.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_Scan.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_Factory.c \
	$(DAPP_DIR)/src/kview/OSD/App_OSD_SetupWizard.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Banner.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_CC.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_ChEdit.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Epg2.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Etc.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Html.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Idle.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Init.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Main.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Rating.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_RRT.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Scan.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Power.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_Factory.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_ServiceMenu.c \
	$(DAPP_DIR)/src/kview/Proc/App_Proc_SetupWizard.c \
	$(DAPP_DIR)/src/kview/Resource/App_Res_Png.c



SRC_DIR += \
	$(DHL_DIR)/src
INC_DIRS +=	\
	$(DHL_DIR)/api/include	\
	$(DHL_DIR)/src/include	\
	$(DLIB_DIR)/src/PNG	\
	$(DLIB_DIR)/src/uiofilter

SRC_DIR +=	\
	$(DMW_DIR)/src/include \
	$(DMW_DIR)/src/System \
	$(DMW_DIR)/src/EPG \
	$(DMW_DIR)/src/Channel \
	$(DMW_DIR)/src/EPG \
	$(DMW_DIR)/src/psi \
	$(DMW_DIR)/src/cc \
	$(DMW_DIR)/src/grp \
	$(DMW_DIR)/src/grp/jungle_font \
	$(DMW_DIR)/src/grp/BMF
SRC_DIR += \
	$(DAPP_DIR)/src/Main \
	$(DAPP_DIR)/src/Function \
	$(DAPP_DIR)/src/kview/OSD \
	$(DAPP_DIR)/src/kview/Proc \
	$(DAPP_DIR)/src/kview/Resource


BCM_SRC += $(DHL_SRC)
BCM_SRC += $(DLIB_SRC)
BCM_SRC += $(DMW_SRC)
BCM_SRC += $(APP_SRC_C)

BCM_VPATH 	+= $(DHL_DIR)/src
BCM_VPATH 	+= $(DHL_DIR)/api/include
BCM_VPATH 	+= $(DHL_DIR)/test
BCM_VPATH 	+= $(DLIB_DIR)/src/uiofilter
BCM_VPATH 	+= $(DLIB_DIR)/src/si
BCM_VPATH 	+= $(DLIB_DIR)/src/PNG
BCM_VPATH 	+= $(DLIB_DIR)/src/osx

BCM_VPATH 	+= $(SRC_DIR)

endif #ifeq (${SUPPORT_DST_PLATFORM},y)
##########################################################################################



SKIP_BCM_SRC += $(APP_SRC_DIR)/bapp.c \
		$(APP_SRC_DIR)/bscreen_status.c \
		$(APP_SRC_DIR)/bscreen_debug.c \
		$(APP_SRC_DIR)/bscreen.c \
		$(APP_SRC_DIR)/bapp_palette.c \
		$(APP_SRC_DIR)/bapp_settings.c \
		$(APP_SRC_DIR)/bapp_str_table.c \
		$(APP_DIR)/bapp_util.c \
		$(APP_DIR)/iso_639_lang_map.c \
		$(APP_DIR)/genericlist.c \
		$(APP_DIR)/bapp_freq_table.c

BCM_SRC += \
		$(APP_DIR)/bgfx.c \
		$(APP_DIR)/bgfx_font.c \
		$(APP_DIR)/bgfx_defs.c

BCM_SRC += $(APP_DIR)/genericlist.c	##BKTEMP

ifeq (${APP_TYPE},ntia)
ifeq (${DOLBY_LOGO_NO_D},y)
CFLAGS	+= -DDOLBY_LOGO_NO_D
SKIP_BCM_SRC += $(APP_SRC_DIR)/dolby_logo_no_D.c
else
SKIP_BCM_SRC += $(APP_SRC_DIR)/dolby_logo_240.c
endif
else
BCM_SRC += $(APP_DIR)/ch_map.c
endif

ifeq (${USE_NEXUS},n)
BCM_SRC += $(APP_DIR)/bapp_remote.c 
endif

CFLAGS     += -I$(APP_DIR)  -I.
CFLAGS     += -I$(APP_SRC_DIR)
CFLAGS     += -I$(Z_DIR)
#CFLAGS		+= -DCONFIG_FACTORY_TEST
#CFLAGS		+= -DCONFIG_DTA_CABLE_TESTING

#
# Application resources
#

##BKORG	include res.mk

#
# Include Profiling source and paths
#

ifeq (${PROFILE},y)
BCM_PROFILE_PATH = $(BSEAV_DIR)/lib/bprofile
CFLAGS += -I$(BCM_PROFILE_PATH)

BCM_SRC += $(BCM_PROFILE_PATH)/bprofile.c \
		$(BCM_PROFILE_PATH)/bprofile_data.c \
		$(BCM_PROFILE_PATH)/bperf_counter.c \
		$(BCM_PROFILE_PATH)/btrc.c

CFLAGS += -finstrument-functions -DPROFILE=1 -DCONFIG_UCOS=1
endif


ifeq (${NTV_SIMULATOR},y)

### else ifeq (${NTV_SIMULATOR},y)
else

ifeq (${OS},ucos_ii)
# stdlib
BCM_SRC +=  $(SOURCE_DIR)/serial.c $(SOURCE_DIR)/xmodem.c
endif
# compression, xmodem
BCM_SRC += $(Z_DIR)/bzlib.c \
		$(Z_DIR)/inflate.c \
		$(Z_DIR)/crc32.c \
		$(Z_DIR)/inffast.c \
		$(Z_DIR)/inftrees.c \
		$(Z_DIR)/uncompr.c \
		$(Z_DIR)/adler32.c \
		$(Z_DIR)/zutil.c
#BKTEMP for PNG libs

BCM_SRC += $(Z_DIR)/deflate.c \
		$(Z_DIR)/trees.c 


BCM_SRC += \
		$(APP_DIR)/led.c \
		$(APP_DIR)/dsmcc.c \
		$(APP_DIR)/image_recv.c \
		$(APP_DIR)/image_write.c \
		$(APP_DIR)/getbits.c

### endif ifeq (${NTV_SIMULATOR},y)
endif

#
# Settop API
#

ifeq ($(hdmi_sd_16_9),y)
CFLAGS += -DHDMI_SD_WIDE_SCREEN
endif

CFLAGS     += -I$(SOURCE_DIR)/settop_api

ifeq (${NTV_SIMULATOR},y)

### else ifeq (${NTV_SIMULATOR},y)
else
ifeq ($(USE_NEXUS),y)
	BCM_SRC += $(SOURCE_DIR)/settop_api/xds_ctrl.c
else
BCM_SRC += \
		$(SOURCE_DIR)/settop_api/bsettop_smessage_rave.c \
		$(SOURCE_DIR)/settop_api/bsettop_stream_rave.c \
		$(SOURCE_DIR)/settop_api/bcrc32.c \
		$(SOURCE_DIR)/settop_api/msg_filter.c \
		$(SOURCE_DIR)/settop_api/bsettop.c \
		$(SOURCE_DIR)/settop_api/bsettop_rfm.c \
		$(SOURCE_DIR)/settop_api/bsettop_display.c \
		$(SOURCE_DIR)/settop_api/bsettop_hdmi.c \
		$(SOURCE_DIR)/settop_api/bsettop_decode.c \
		$(SOURCE_DIR)/settop_api/bsettop_graphics.c \
		$(SOURCE_DIR)/settop_api/bsettop_user_io.c \
		$(SOURCE_DIR)/settop_api/bsettop_smartcard.c \
		$(SOURCE_DIR)/settop_api/bsettop_pcm.c \
		$(SOURCE_DIR)/settop_api/bsettop_gpio.c \
		$(SOURCE_DIR)/settop_api/xds_ctrl.c


ifeq (${BCHP_VER}, B0)
ifeq (${HAS_OOB}, y)
CFLAGS += -DCONFIG_OOB
BCM_SRC += $(SOURCE_DIR)/settop_api/bsettop_tuner_aob.c
# enable it if want to add a test function in CLI
CFLAGS += -DTUNER_AOB_TEST -DOOB_TUNER_SUPPORT
endif

ifeq (${HAS_MRC}, y)
CFLAGS += -DCONFIG_MRC
endif

endif

BCM_SRC += $(SOURCE_DIR)/settop_api/bdecode_audio_raaga.c
endif  # endif ifeq ($(USE_NEXUS),y)

# OOB tuner related
CFLAGS += -DOOB_TUNER_BAND=2 -DOOB_IB=9
# Mission College MOTO HE OOB related information
CFLAGS	+= -DCONFIG_DEF_OOB_VCT_ID=0x5
CFLAGS	+= -DCONFIG_DEF_OOB_EMM_PID=0x1503
CFLAGS	+= -DCONFIG_DEF_OOB_FREQ_KHZ=75250			#75.25M, or 103.75M
# to enable OOB_LEGACY_SUPPORT to use OOB for messages
#CFLAGS	+= -DOOB_LEGACY_SUPPORT

ifeq (${HAS_AUD_PWR}, y)
CFLAGS += -DCONFIG_AUD_PWR
BCM_SRC += $(SOURCE_DIR)/settop_api/avl_dspfunc.c
endif

### endif ifeq (${NTV_SIMULATOR},y)
endif


ifeq (${NTV_SIMULATOR},y)
HAS_CAT = n
HAS_VBI = n

### else ifeq (${NTV_SIMULATOR},y)
else

SKIP_BCM_SRC += $(APP_SRC_DIR)/chan_mgr.c
CFLAGS += -I$(BSEAV_LIB_DIR)/si/common

### endif ifeq (${NTV_SIMULATOR},y)
endif

ifeq (${APP_TYPE},dta)
SKIP_BCM_SRC +=  $(APP_SRC_DIR)/bscreen_dolby.c \
		$(APP_SRC_DIR)/bscreen_pairing.c \
		$(APP_SRC_DIR)/bapp_resources.c \
		$(APP_DIR)/bscreen_factory_test.c


CFLAGS += -DNEW_UI
SKIP_BCM_SRC += 	$(APP_SRC_DIR)/bscreen_menu.c \
		$(APP_SRC_DIR)/bosi_button.c \
		$(APP_SRC_DIR)/bscreen_volume.c \
		$(APP_SRC_DIR)/bosi_overlay.c \
		$(APP_SRC_DIR)/bscreen_locks.c \
		$(APP_SRC_DIR)/bscreen_ovpopup.c \
		$(APP_SRC_DIR)/bscreen_dcc.c \
		$(APP_SRC_DIR)/bscreen_language.c \
		$(APP_SRC_DIR)/bscreen_output.c 


### endif ifeq (${APP_TYPE},dta)
endif

ifeq (${APP_TYPE},ntia)
CFLAGS += -I$(BSEAV_LIB_DIR)/si/common
endif ### ntia

ifeq (${HAS_STANDBY},y)
CFLAGS += -DCONFIG_STANDBY
BCM_SRC += $(APP_SRC_DIR)/birw.c
endif

ifeq (${CONFIG_CES},y)
CFLAGS += -DCONFIG_CES
endif
BCM_SRC += $(BSEAV_DIR)/lib/mpeg2_ts_parse/psip_rrt.c \
		$(BSEAV_DIR)/lib/mpeg2_ts_parse/psip_descriptor.c



ifeq ($(BUILD_EXTRA_LIBC),y)
BCM_SRC += $(SOURCE_DIR)/qsort.c \
	$(SOURCE_DIR)/stdio.c \
	$(SOURCE_DIR)/libc.c
endif

#
# Set up flash sources and paths
#

BCM_SRC += $(BFDB_DIR)/bfdb.c

ifeq (${TEST_BFDS},y)
CFLAGS += -DTEST_BFDS
BCM_SRC += $(BFDB_DIR)/bfds_mem.c
else
CFLAGS += -I$(SOURCE_DIR)/bootloader7574
BCM_SRC += $(BFDB_DIR)/bfds_spi.c \
		$(SOURCE_DIR)/bspi_flash.c
endif

CFLAGS     += -I$(BFDB_DIR)

ifeq (${APP_TYPE},nanotv)
BUILD_GP=n
WITH_GP=n
endif

ifeq (${APP_TYPE},dta)
HAS_DVB=n
endif

#
# PSI paths and sources
#
BSEAV_LIB_DIR = $(TOP_DIR)/BSEAV/lib
MPEG2_TS_PARSE_DIR = $(BSEAV_LIB_DIR)/mpeg2_ts_parse

#
# Basic PSI parsing
#
CFLAGS     += -I$(MPEG2_TS_PARSE_DIR)
BCM_SRC += 	\
		$(MPEG2_TS_PARSE_DIR)/ts_priv.c \
		$(MPEG2_TS_PARSE_DIR)/ts_psi.c \
		$(MPEG2_TS_PARSE_DIR)/ts_pat.c \
		$(MPEG2_TS_PARSE_DIR)/ts_pmt.c

#
# ATSC PSIP Sources
#

ifeq ($(HAS_ATSC),y)
BCM_SRC += 	\
		$(MPEG2_TS_PARSE_DIR)/psip_mgt.c \
		$(MPEG2_TS_PARSE_DIR)/psip_vct.c \
		$(MPEG2_TS_PARSE_DIR)/psip_ett.c \
		$(MPEG2_TS_PARSE_DIR)/psip_eit.c
endif

# ATSC PSIP Sources also used for parsing SCTE65
BCM_SRC += 	\
		$(MPEG2_TS_PARSE_DIR)/psip_stt.c \
		$(MPEG2_TS_PARSE_DIR)/psip_mss.c \
		$(MPEG2_TS_PARSE_DIR)/psip_decode_tree_01.c \
		$(MPEG2_TS_PARSE_DIR)/psip_decode_tree_02.c

#
# SCTE65 Sources Profile 2 only
#

ifeq ($(HAS_SCTE65),y)
CFLAGS += -I$(BSEAV_LIB_DIR)/si/common
CFLAGS += -I$(BSEAV_LIB_DIR)/si/scte65
CFLAGS += -I$(BSEAV_LIB_DIR)/si/scte65/nit
CFLAGS += -I$(BSEAV_LIB_DIR)/si/scte65/ntt
CFLAGS += -I$(BSEAV_LIB_DIR)/si/scte65/svct
CFLAGS += -I$(BSEAV_LIB_DIR)/si/stt
CFLAGS += -I$(BSEAV_LIB_DIR)/si/os
CFLAGS += -I$(BSEAV_LIB_DIR)/si/os/ucos
CFLAGS += -DCONFIG_SCTE65

SKIP_BCM_SRC += 	\
		$(BSEAV_LIB_DIR)/si/scte65/svct/si_svct_vcm.c \
		$(BSEAV_LIB_DIR)/si/scte65/svct/si_svct.c \
		$(BSEAV_LIB_DIR)/si/scte65/ntt/si_ntt.c \
		$(BSEAV_LIB_DIR)/si/scte65/ntt/si_ntt_sns.c \
		$(BSEAV_LIB_DIR)/si/scte65/nit/si_nit.c \
		$(BSEAV_LIB_DIR)/si/scte65/nit/si_nit_cds.c \
		$(BSEAV_LIB_DIR)/si/scte65/nit/si_nit_mms.c \
		$(BSEAV_LIB_DIR)/si/stt/si_stt.c \
		$(BSEAV_LIB_DIR)/si/os/ucos/si_os.c \
		$(BSEAV_LIB_DIR)/si/common/si_util.c \
		$(BSEAV_LIB_DIR)/si/common/si_dbg.c

endif


ifeq ($(HAS_SCTE18),y)
CFLAGS += -I$(BSEAV_LIB_DIR)/scte_18
SKIP_BCM_SRC += 	\
		$(BSEAV_LIB_DIR)/scte_18/ts_scte_18.c
endif

ifeq ($(HAS_SCTE27),y)
CFLAGS += -DHAS_SUBTITLE
CFLAGS += -I$(BSEAV_LIB_DIR)/scte_27
SKIP_BCM_SRC +=  \
        $(BSEAV_LIB_DIR)/scte_27/scte_27.c
endif

ifeq ($(HAS_CAT),y)
CFLAGS += -I$(BSEAV_LIB_DIR)/ts_cat
SKIP_BCM_SRC += 	\
		$(BSEAV_LIB_DIR)/ts_cat/ca_parser.c
endif

ifeq ($(CONFIG_SPDIF),y)
	CFLAGS += -DCONFIG_SPDIF
endif

ifeq ($(HDCPLIB),y)
	CFLAGS += -DHDCPLIB
	BHDCPLIB_HDCP_SUPPORT ?=1
# HDCPLIB_HSM should not be set if CONFIG_ENABLE_SCM is set
ifneq ($(HDCPLIB_HSM),y)
CFLAGS += -I$(SOURCE_DIR)/hdcplib
# HDCP library
SKIP_BCM_SRC += $(SOURCE_DIR)/hdcplib/bhdcplib.c \
	$(SOURCE_DIR)/hdcplib/bhdcplib_hdcpkeys.c \
	$(SOURCE_DIR)/hdcplib/bhdcplib_keyloader.c
else
	BHSM_SECURE_KEYLADDER_MK ?=1
endif
endif

ifeq (${HAS_DVB},y)
CFLAGS += -DCONFIG_DVB
CFLAGS += -I$(SOURCE_DIR)/dvb
SKIP_BCM_SRC +=  $(SOURCE_DIR)/dvb/dvb_nit.c \
			$(SOURCE_DIR)/dvb/dvb_sdt.c \
			$(SOURCE_DIR)/dvb/dvb_eit.c \
			$(SOURCE_DIR)/dvb/dvb_tdt.c \
			$(SOURCE_DIR)/dvb/dvb_bat.c \
			$(SOURCE_DIR)/dvb/dvb_smi.c \
			$(SOURCE_DIR)/dvb/dvb_rst.c \
			$(SOURCE_DIR)/dvb/dvb_descriptor.c
endif

# DVB subtitle rendering is based on ARGB32, CONFIG_GFX_ARGB32 flag is required
ifeq (${HAS_DVB_SUBTITLE},y)
CFLAGS += -DCONFIG_DVB_SUBTITLE
SKIP_BCM_SRC += $(SOURCE_DIR)/dvb/dvb_subtitle.c
endif

#
# Set up for flash xmodem downloader
#

#BCM_SRC += $(SOURCE_DIR)/app/flash_install.c



#
# Digital Closed Captioning
#
ifeq (${HAS_EIA_708},y)
CFLAGS += -DCONFIG_EIA_708
CFLAGS += -I$(SOURCE_DIR)/dcc
CFLAGS += -I$(SOURCE_DIR)/dcc/fonts
CFLAGS += -I$(SOURCE_DIR)/dcc/src
CFLAGS += -I$(SOURCE_DIR)/dcc/include

SKIP_BCM_SRC += 	$(SOURCE_DIR)/dcc/bccwinlib.c \
		$(SOURCE_DIR)/dcc/src/bdcc608transcoder.c \
		$(SOURCE_DIR)/dcc/src/bdcc_cbuf.c \
		$(SOURCE_DIR)/dcc/src/bdcc_coding.c \
		$(SOURCE_DIR)/dcc/src/bdcc_coding_c1_handlers.c \
		$(SOURCE_DIR)/dcc/src/bdccbits.c \
		$(SOURCE_DIR)/dcc/src/bdccengine.c \
		$(SOURCE_DIR)/dcc/src/bdccgfx.c \
		$(SOURCE_DIR)/dcc/src/bdccint.c \
		$(SOURCE_DIR)/dcc/src/bdccintgfx.c \
		$(SOURCE_DIR)/dcc/src/bdccpacket.c \
		$(SOURCE_DIR)/dcc/src/bdccservice.c \
		$(SOURCE_DIR)/dcc/bapp_eia708.c

BCM_SRC_OLD_PARSE += 	bcmDccBits.c \
		bcmDccTransport.c \
		bcmDccTransportMux.c \
		bcmDccTransportParse.c

ifeq (${HAS_8BIT_FONT},y)
ifeq (${NEW_FONT_SET},y)
CFLAGS += -DNEW_FONT_SET
SKIP_BCM_SRC += 	$(SOURCE_DIR)/dcc/fonts/cinecavB_casual_02_16_aa.c \
		$(SOURCE_DIR)/dcc/fonts/cinecavB_casual_02_18_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_casual_02_20_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_mono_03_16_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_mono_03_18_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_mono_03_20_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_sans_02_16_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_sans_02_18_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_sans_02_20_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_sc_02_16_aa.c		\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_sc_02_18_aa.c		\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_sc_02_20_aa.c		\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_script_02_16_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_script_02_18_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_script_02_20_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_serif_02_16_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_serif_02_18_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_serif_02_20_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_type_03_16_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_type_03_18_aa.c	\
		$(SOURCE_DIR)/dcc/fonts/cinecavB_type_03_20_aa.c
else
SKIP_BCM_SRC += 	$(SOURCE_DIR)/dcc/fonts/SFM_20_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SFM_24_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SFP_20_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SFP_24_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SSM_20_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SSM_24_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SSP_20_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SSP_24_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SCRIPT_20_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SCRIPT_24_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SC_20_aa.c \
		$(SOURCE_DIR)/dcc/fonts/SC_24_aa.c 
endif
else
ifeq (${NEW_FONT_SET},y)
CFLAGS += -DNEW_FONT_SET
SKIP_BCM_SRC +=  $(SOURCE_DIR)/dcc/fonts/cinecavB_casual_02_16_mono.c \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_casual_02_18_mono.c  \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_casual_02_20_mono.c  \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_mono_03_16_mono.c    \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_mono_03_18_mono.c    \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_mono_03_20_mono.c    \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_sans_02_16_mono.c    \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_sans_02_18_mono.c    \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_sans_02_20_mono.c    \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_sc_02_16_mono.c      \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_sc_02_18_mono.c      \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_sc_02_20_mono.c      \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_script_02_16_mono.c  \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_script_02_18_mono.c  \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_script_02_20_mono.c  \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_serif_02_16_mono.c   \
		$(SOURCE_DIR)/dcc/fonts/cinecavB_serif_02_18_mono.c	  \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_serif_02_20_mono.c   \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_type_03_16_mono.c    \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_type_03_18_mono.c    \
        $(SOURCE_DIR)/dcc/fonts/cinecavB_type_03_20_mono.c
else
SKIP_BCM_SRC += 	$(SOURCE_DIR)/dcc/fonts/SFM_20_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SFM_24_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SFP_24_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SFP_28_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SSM_20_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SSM_24_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SSP_24_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SSP_28_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SCRIPT_20_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SCRIPT_24_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SC_20_mono.c \
		$(SOURCE_DIR)/dcc/fonts/SC_24_mono.c
endif
endif
endif

ifeq ($(HAS_VBI),y)	## USED
	BCM_SRC += 	${BSEAV_DIR}/lib/scte_127/bapp_amol.c		\
			${BSEAV_DIR}/lib/scte_127/bapp_gs.c				\
			${BSEAV_DIR}/lib/scte_127/pes_scte_127.c		\
			${BSEAV_DIR}/lib/scte_127/pmt_desc_scte_127.c	\
			${BSEAV_DIR}/lib/scte_127/scte_127.c
	CFLAGS += -I$(BSEAV_DIR)/lib/scte_127 -DHAS_VBI -DBVBI_P_GEMSTAR_OPTIONS_STRUCT
endif
#
# Test modules
#
ifeq ($(CONFIG_BSD),y)		## N-U
BSD_DIR	= $(SOURCE_DIR)/bsd

CFLAGS += -I$(BSD_DIR) -DCONFIG_BSD
BCM_SRC += 	$(BSD_DIR)/BsdTest.c \
		$(BSD_DIR)/bsd.c \
		$(BSD_DIR)/bhsm_priv.c \
		$(BSD_DIR)/bxpt_rave_ihex.c \
		$(BSD_DIR)/bxpt_rom_api.c \
		$(BSD_DIR)/security_functions.c
endif

ifeq ($(CONFIG_MEM2MEM),y)		## N-U
MEM2MEM_DIR	= $(SOURCE_DIR)/mem2mem

CFLAGS += -I$(MEM2MEM_DIR) -DCONFIG_MEM2MEM
CFLAGS += -DCONFIG_MEM2MEM_TEST
BCM_SRC += 	$(MEM2MEM_DIR)/bxpt_rom_api.c \
		$(MEM2MEM_DIR)/bxpt_rave_ihex.c

endif

ifeq (${HAS_NOVCHIP_SD},y)		## N-U
CFLAGS += -DCONFIG_NOVCHIP_SD
endif
ifeq (${HAS_NOCC_SD},y)				## N-U
CFLAGS += -DCONFIG_NOCC_SD
endif


ifeq ($(ENABLE_UMESSAGE),y)		## N-U
CFLAGS += -I$(SOURCE_DIR)/udtam -DENABLE_UMESSAGE
endif

#
# Power management code
#
#BCM_SRC += bpwr.c birw.c

ifeq (${NTV_SIMULATOR},y)
CFLAGS += -DDISPLAY_NTSC=1
else
ifeq (${USE_NEXUS},n)
BCM_SRC += $(SOURCE_DIR)/gist/gist.c
CFLAGS += -I$(SOURCE_DIR)/gist -DDISPLAY_NTSC=1
else
CFLAGS += -DDISPLAY_NTSC=1
endif
endif

AOV_SDRAM_1G ?= n
ifeq (${AOV_SDRAM_1G},y)
CFLAGS += -DCONFIG_AOV_SDRAM_1G
endif

ifeq ($(HAS_VSB),y)	## USED

BVSB_CHIP := 3520

CFLAGS += -DCONFIG_VSB -I$(SOURCE_DIR)/settop_api/vsb
ifeq (${TUNER_TEST},y)
CFLAGS += -DCONFIG_TUNER_TEST
endif

NXP_TDA182I4 ?= y

ifeq (${NXP_TDA182I4},y)	## USED
CFLAGS += -DCONFIG_NXP_TDA182I4

CFLAGS += -I$(SOURCE_DIR)/settop_api/NXP_TDA182I4/inc
CFLAGS += -I$(SOURCE_DIR)/settop_api/NXP_TDA182I4/tmbslTDA182I4

BCM_SRC += \
	$(SOURCE_DIR)/settop_api/NXP_TDA182I4/tmbslTDA182I4/tmbslTDA182I4.c \
	$(SOURCE_DIR)/settop_api/NXP_TDA182I4/tmbslTDA182I4/tmbslTDA182I4_Instance.c\
	$(SOURCE_DIR)/settop_api/NXP_TDA182I4/tmbslTDA182I4/tmbslTDA182I4_RegDef.c 
endif

BCM_SRC += \
	$(SOURCE_DIR)/settop_api/bsettop_tuner_vsb.c \
	$(SOURCE_DIR)/settop_api/vsb/bcm3520ap_a1.c \
	$(SOURCE_DIR)/settop_api/vsb/bcm3520ap_b0.c
	
BCM_SRC += $(ROCKFORD_DIR)/bsp/bcm9$(BCHP_CHIP)/common/int1.c
CFLAGS += -I$(ROCKFORD_DIR)/bsp/bcm9$(BCHP_CHIP)/common

endif	#HAS_VSB

#
# ISDB-T tuner/demod support
#
ifeq ($(HAS_ISDBT),y)

CFLAGS += -DCONFIG_ISDB
# to debug the tuner only
ifeq (${TUNER_TEST},y)
CFLAGS += -DCONFIG_TUNER_TEST
endif

ifeq ($(ISDB_MY_FREQ),y)
	CFLAGS += -DCONFIG_ISDB_MY_FREQ
endif

BCM_SRC += \
    $(SOURCE_DIR)/settop_api/bsettop_tuner_isdb.c

BCM_SRC += $(ROCKFORD_DIR)/bsp/bcm9$(BCHP_CHIP)/common/int1.c
CFLAGS += -I$(ROCKFORD_DIR)/bsp/bcm9$(BCHP_CHIP)/common

endif   #HAS_ISDBT

#
# QAM tuner/demod support
#
ifeq ($(HAS_QAM),y)
	ifeq ($(USE_NEXUS),y)
		## don't include
	else
		BCM_SRC += $(SOURCE_DIR)/settop_api/bsettop_tuner.c
	endif
endif	#HAS_QAM

FCC_OBJS = $(FCC_DIR)/vprimer.o 
CFLAGS += -DCONFIG_AVC_FCC
FCC_OBJS += $(BSEAV_DIR)/lib/utils/bvlc.o
LIB_DIR = $(DTA_DIR)/lib
CFLAGS += -I$(BSEAV_DIR)/lib/utils

#
# Soft floating point
#
SOFT_FP_LIB = $(LIB_DIR)/soft-fp.a

#
#  PI Modules
#
CFLAGS += -DBSTD_CPU_ENDIAN=BSTD_ENDIAN_LITTLE

ifeq (${NTV_SIMULATOR},y)

### ifeq (${NTV_SIMULATOR},y)
else
ifeq (${OS},ucos_ii)

include ucos.mk
endif


ifeq (${BUILD_GP},y)		## N-U
CFLAGS += -DCONFIG_GP -DNEW_PAIR_GUI 
include gp.mk
else
# if don't have source, but still need header files
ifeq (${WITH_GP},y)			## N-U
CFLAGS += -DCONFIG_GP -DNEW_PAIR_GUI
include gp.mk
else
endif
endif

ifeq ($(USE_NEXUS),n)
include magnum.mk
endif ## ifeq ($(USE_NEXUS),n

ifeq (${HAS_LWIP},y)		## N-U
include lwip.mk
endif

### ifeq (${NTV_SIMULATOR},y)
endif

#
# Include path definitions
#

BCM_INCLUDE	= $(patsubst %,-I%,$(subst :, ,$(BCM_VPATH)))

#
# more CFLAG defines
#

CFLAGS += $(BCM_INCLUDE) -I./ -DMEMCOPY -DBKNI_TRACK_MALLOCS=0

#
# 3560 Driver obj files
#

BCM_OBJS = $(BCM_SRC:.c=.o)
BCM_ASM_OBJS += $(BCM_ASM_SRC:.S=.o)

ifeq (${ENABLE_APP},n)
	CFLAGS += -DDEBUG_APP
endif

BCM_LIB_OBJS = $(LIB_DIR)/libres.a

ifeq (${HAS_EIA_708},y)	## USED
SKIP_BCM_LIB_OBJS += $(LIB_DIR)/libdcc.a
endif

ifeq (${NTV_SIMULATOR},y)


else
ifeq (${OS},ucos_ii)
BCM_LIB_OBJS += $(LIB_DIR)/libucos_ii.a \
        $(LIB_DIR)/libfcc.a $(SOFT_FP_LIB) 
ifeq ($(USE_NEXUS),y)
BCM_LIB_OBJS += $(BCM_NLIB_OBJS)
else
BCM_LIB_OBJS += $(LIB_DIR)/libmagnum.a
endif

endif
ifeq (${HAS_LWIP},y)
BCM_LIB_OBJS += $(LIB_DIR)/liblwip.a
endif

ifeq ($(NEWLIB),y)	## N-U
BCM_LIB_OBJS += $(NEWLIB_DIR)/soft-float/el/libstdc++.a 
BCM_LIB_OBJS += $(NEWLIB_DIR)/soft-float/el/libc.a  
BCM_LIB_OBJS += $(NEWLIB_DIR)/soft-float/el/libgcc.a  
#BCM_LIB_OBJS += $(NEWLIB_DIR)/soft-float/el/libsupc++.a
LDFLAGS += -nodefaultlibs -nostartfiles -static -L$(NEWLIB_DIR)/soft-float/el
endif

ifeq (${HAS_MIPS_AUDIO},y)	## N-U
BCM_LIB_OBJS += ${AUDIO_LIB}
endif


ifeq (${BUILD_GP},y)	## N-U
BCM_LIB_GP_OBJS = $(LIB_DIR)/libgp.a $(GPLIBS)
LDFLAGS_GP = --no-whole-archive --start-group $(BCM_LIB_GP_OBJS) --end-group
else
ifeq (${WITH_GP},y)
BCM_LIB_GP_OBJS = $(LIB_DIR)/libgp.a $(GPLIBS)
LDFLAGS_GP = --no-whole-archive --start-group $(BCM_LIB_GP_OBJS) --end-group
endif
endif

### ifeq (${NTV_SIMULATOR},y)
endif

SYM_OBJ = $(SYM_SRC:%.c=%.o)
SYM_INC = $(SYM_SRC:%.c=%.inc)

BCM_DEPENDS := $(BCM_OBJS:.o=.d) $(BCM_ASM_OBJS:.o=.d)

${SYM_OBJ} : ${SYM_SRC} $(filter-out $(SYM_OBJ),$(BCM_OBJS) ${BCM_ASM_OBJS})
	${ECHO} Building symbol table $<
	${QUIET}# compile  empty sym-table and link with it
	${QUIET}${RM) ${SYM_INC}
	${QUIET}echo '/* */' >${SYM_INC}
	${QUIET}$(CC) $(CFLAGS) -I. -c $< -o $(notdir $@)
	${QUIET}$(LD) $(LDFLAGS) $(BCM_OBJS) $(BCM_ASM_OBJS) $(SOFT_FP_LIB) -o ${TARGET}.elf.sym
	${QUIET}# compile with real sym-table but possibly wrong offsets
	${QUIET}${RM) ${SYM_INC}
	${QUIET}${NM} -f bsd -n --defined-only ${TARGET}.elf.sym|grep -v "_ftext"|awk  '/.* [Tt] .*/ {printf "B_SYM(0x%su,%s)\n",$$1,$$3}' >${SYM_INC}
	$(QUIET)$(CC) $(CFLAGS) -I. -c $< -o $(notdir $@)
	${QUIET}${RM} ${SYM_INC}
	${QUIET}$(LD) -Map $(TARGET).map.sym $(LFLAGS) $(BCM_OBJS) $(BCM_ASM_OBJS) $(SOFT_FP_LIB) -o ${TARGET}.elf.sym
	${QUIET}# build real symtable and compile with it
	${QUIET}${NM} -f bsd -n --defined-only ${TARGET}.elf.sym|grep -v "_ftext"|awk  '/.* [Tt] .*/ {printf "B_SYM(0x%su,%s)\n",$$1,$$3}' >${SYM_INC}
	$(QUIET)$(CC) $(CFLAGS) -I. -c $< -o $(notdir $@)
	${QUIET}${MV} ${SYM_INC} $(SYM_INC:%.inc=%.sym)


$(PLATFORM)_sim: $(BCM_OBJS) $(BCM_LIB_OBJS)
	$(CC) $(CFLAGS) -o $@ $(BCM_OBJS) $(BCM_LIB_OBJS) `pkg-config --libs gtk+-2.0` -lpthread

ENTRY_SRC += dst_main.c
ENTRY_OBJS = $(ENTRY_SRC:.c=.o)

api:
	@echo Building nexus API  $(BCM_VARIABLES) 
	$(MAKE) $(BCM_VARIABLES) -C $(NEXUS_TOP)/build

nexus_clean:
	$(MAKE) $(BCM_VARIABLES) -C $(NEXUS_TOP)/build clean
	
$(PLATFORM)_dta_nexus: $(BCM_OBJS) $(BCM_LIB_OBJS) $(BCM_LIB_GP_OBJS)
	$(CC) $(CFLAGS) -lnexus -L${NEXUS_TOP}/bin -lpthread -lm -o $@ $(BCM_OBJS) $(LDFLAGS_GP) $(BCM_LIB_OBJS) 

$(TARGET).elf: $(BCM_OBJS) $(BCM_ASM_OBJS) $(BCM_LIB_OBJS) $(BCM_LIB_GP_OBJS) $(DST_LIB_OBJS) $(ENTRY_OBJS)
	${QUIET}$(LD) -Map $(TARGET).map $(LDFLAGS) $(BCM_ASM_OBJS) $(BCM_OBJS) $(LDFLAGS_GP) $(BCM_LIB_OBJS) $(DST_LIB_OBJS) $(ENTRY_OBJS) -o $@

$(TARGET).bin: $(TARGET).elf
	$(CROSS_COMPILE)objcopy -S -O binary $(TARGET).elf $(TARGET).bin
#	$(CROSS_COMPILE)objdump -D $(TARGET).elf > $(TARGET).dis


#%.o: %.cpp
#	$(ECHO) "[compile C++ $(notdir $<)]"
#	$(QUIET)$(CXX) $(CFLAGS) -c $< -o $@

%.o: %.c
	$(ECHO) "[compile C $(notdir $<)]"
	$(QUIET)$(CC) $(CFLAGS) -c $< -o $@

%.o: %.S
	$(ECHO) "[compile S $(notdir $<)]"
	$(QUIET)$(CC) $(ASFLAGS) -c $< -o $@

clean:  bootloader_clean flash_clean clean_dst
	$(RM) -f $(TARGET) *.gz *.o_* *.sym *.map *~ core *.elf *.bin *.dis *.lst $(BCM_OBJS) $(BCM_ASM_OBJS) $(BCM_DEPENDS)

# clean everything other than the libraries that the end user can't build
dist_clean: 
	$(RM) -f $(TARGET) *.gz *.o_* *.sym *.map *~ core *.elf *.bin *.dis *.lst $(BCM_OBJS) $(BCM_ASM_OBJS) $(BCM_DEPENDS) $(LIB_DIR)/libmagnum.a $(SOURCE_DIR)/bootloader7574/bootloader.bin
	$(QUIET)find $(TOP_DIR) \
		\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
		-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
		-o -name '.*.rej' -o -size 0 -o -name '*.elf' \
		-o -name '*%' -o -name '*.o' -o -name '*.d' -o -name 'tags' \) \
		-type f -print | xargs $(RM) -f

ifeq (${BUILD_MIPS_AC3},y)
	$(RM) -f ${AUDIO_FLAG}
endif

ifeq ($(BUILD_LIBFCC),y)
$(LIB_DIR)/libfcc.a : $(FCC_OBJS) $(foreach obj, $(FCC_OBJS), $(subst object,$(obj), $(LIB_DIR)/libfcc.a(object)))

clean_fcc :
	$(RM) -f $(LIB_DIR)/libfcc.a 

clean : clean_fcc

endif

JAR_BINARY = $(SOURCE_DIR)/jar/jar.bin

jar : $(JAR_BINARY) $(TARGET).gz $(TARGET)_jar.bin

$(TARGET).gz : $(TARGET).bin
# compress image and pad it to 0x40 byte boundary
	gzip -cn -9 $< | dd bs=64 conv=sync > $@
$(TARGET)_jar.bin : $(TARGET).gz
	cat $(JAR_BINARY) $< > $@
$(JAR_BINARY) :
	make -C $(SOURCE_DIR)/jar clean all

bootloader : $(SOURCE_DIR)/bootloader7574/bootloader.bin

ifeq ($(ENABLE_MEMSYSINIT),y)
BOOTLOADER_MAKEFILE = bootloader2.mk
else
BOOTLOADER_MAKEFILE = bootloader.mk
endif
$(SOURCE_DIR)/bootloader7574/bootloader.bin :
	make -C $(SOURCE_DIR)/bootloader7574 -f $(BOOTLOADER_MAKEFILE) HAS_STANDBY=$(HAS_STANDBY) USERIO_ID=$(USERIO_ID) ENABLE_AVS=$(ENABLE_AVS)

bootloader_clean : 
	make -C $(SOURCE_DIR)/bootloader7574 -f $(BOOTLOADER_MAKEFILE) clean

# To build comple flash we need to:
# - build bootloader stages 1 and 2
# - generate fake signature
# - pad bootloader to 192K
# - build compressed image
# - generate image headers
# - concatenate padded bootloader | image headers | comressed image | fake signature
flash$(PLATFORM).bin : bootloader-192k.bin $(TARGET).gz fake.sig
	python $(DTA_DIR)/src/bootloader7574/makeheaders.py 1 $(TARGET).gz
	cat bootloader-192k.bin bootheader.bin appheader.bin $(TARGET).gz fake.sig > $@
	
flash$(PLATFORM)_nexus.bin : bootloader-192k.bin $(TARGET).gz fake.sig
	python $(DTA_DIR)/src/bootloader7574/makeheaders.py 1 $(TARGET).gz
	cat bootloader-192k.bin bootheader.bin appheader.bin $(TARGET).gz fake.sig > $@

flash$(PLATFORM).gz : flash$(PLATFORM).bin
	gcc ../../../zas_dstar/candidates/bin2ts.cpp -o bin2ts.exe
	./bin2ts.exe $(MODEL_NAME) $(SW_VERSION) $< $<.ts
	rm -rf  bin2ts.exe
	rm -rf  cvt_*
	gcc ../../../zas_dstar/candidates/makeCVT.c -o makeCVT.exe
#	./makeCVT.exe DST N3KR  0  $(SW_FULL_VERSION) 0 639 2 3554 14 $<
#	./makeCVT.exe DST N3KR  0  $(SW_FULL_VERSION) 1 639 2 3554 14 $<
#	./makeCVT.exe DST N3KR  0  $(SW_FULL_VERSION) 2 639 2 3570 14 $<
	./makeCVT.exe DST N3KR  0  $(SW_FULL_VERSION) 2 513 2 8030 14 $<
	rm -rf  makeCVT.exe
	
	gcc ../../../zas_dstar/candidates/makeOTC.cpp -o makeOTC.exe
#	./makeOTC.exe cvt_ne_0.$(SW_FULL_VERSION) 3569 $< 3570 OTC_0.$(SW_FULL_VERSION).ts
	./makeOTC.exe cvt_ne_0.$(SW_FULL_VERSION) 7774 $< 8030 OTC_0.$(SW_FULL_VERSION).ts
	rm -rf  makeOTC.exe
	
#	gcc ../../../zas_dstar/candidates/tsmux.cpp -o tsmux.exe
#	./tsmux.exe $<.ts KBS.tp $<.kbs.ts
	gzip -cn -9 $< > $@

flash$(PLATFORM)_nexus.gz : flash$(PLATFORM)_nexus.bin
	gzip -cn -9 $< > $@

flash_clean :
	$(RM) -f flash$(PLATFORM).bin flash$(PLATFORM).gz

fake.sig: $(SOURCE_DIR)/bootloader7574/bootloader.bin
	dd if=$(SOURCE_DIR)/bootloader7574/bootloader.map of=$@ bs=256 count=1

bootloader-192k.bin : $(SOURCE_DIR)/bootloader7574/bootloader.bin
	dd if=$< of=$@ bs=192k count=1 conv=sync

bootloader.bin.gz : bootloader.bin
	gzip -c -9 $< > bootloader.bin.gz

bootloader_jflu.bin : ../src/jflu/jflu.bin bootloader.bin.gz
	cat $^ > $@

jflu : flash$(PLATFORM)_jflu.bin

flash$(PLATFORM)_jflu.bin : ../src/jflu/jflu.bin flash$(PLATFORM).gz
	cat $^ > $@


clean_all :	clean clean_res clean_dcc clean 
	@cd $(TOP_DIR)/;find . -name "*.d" |xargs rm;
	@cd $(TOP_DIR)/;find . -name "*.o" |xargs rm;
	@cd $(MAGNUM_DIR)/portinginterface/;rm ape -rf;tar xzf ape.tgz;
	@cd $(MAGNUM_DIR)/basemodules/;rm dsp -rf;tar xzf dsp.tgz;
	echo 'Clean All...'

ifeq ($(QUIET),@)
$(info =================================================================================)
$(info =   quite build mode. if you want build command, use "$ make Q_= .." command. )
$(info =================================================================================)
$(warning *** Warning:  BCHP_CHIP is  ($(BCHP_CHIP)))
endif

#
# Include all the depends
#
-include $(BCM_DEPENDS)
