http://downloads.netgear.com/files/GPL/GPL_Source_V361j_DM111PSP_series_consumer_rele...
[bcm963xx.git] / Makefile
old mode 100755 (executable)
new mode 100644 (file)
index a28d476..dd4da93
--- a/Makefile
+++ b/Makefile
@@ -40,14 +40,15 @@ TARGETS_DIR = $(BUILD_DIR)/targets
 DEFAULTCFG_DIR = $(TARGETS_DIR)/defaultcfg
 XCHANGE_DIR = $(BUILD_DIR)/xChange
 FSSRC_DIR = $(TARGETS_DIR)/fs.src
-CFE_FILE = $(TARGETS_DIR)/cfe/cfe$(BRCM_CHIP).bin
+BRCM_MODEL_NAME=$(PROFILE)
+CFE_FILE = $(TARGETS_DIR)/cfe/cfe6338_reset_192_168_0_1.bin
+SHARED_DIR = $(BUILD_DIR)/shared
 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
           else if [ -x /bin/bash ]; then echo /bin/bash; \
           else echo sh; fi ; fi)
 GENDEFCONFIG_CMD = $(HOSTTOOLS_DIR)/scripts/gendefconfig
 RUN_NOISE=0
-
-
+6510_REF_CODE=$(BUILD_DIR)/userapps/broadcom/6510refCode
 
 ###########################################
 #
@@ -60,14 +61,19 @@ ifeq ($(strip $(PROFILE)),)
 PROFILE=$(LAST_PROFILE)
 export PROFILE
 endif
+
 ifneq ($(strip $(PROFILE)),)
 include $(TARGETS_DIR)/$(PROFILE)/$(PROFILE)
 export BRCM_CHIP
+export BRCM_SDRAM_SIZE
+export BRCM_FLASH_SIZE
 export BRCM_FLASHPSI_SIZE
+export BRCM_MODEL_NAME
 export BRCM_DRIVER_WIRELESS_PCMCIA_DATASWAP BRCM_DRIVER_WIRELESS_EBI_DMA
 export BRCM_DRIVER_USB BRCM_DRIVER_ETHERNET_CONFIG
 export BRCM_DEFAULTCFG
 export BRCM_KERNEL_NF_FIREWALL BRCM_KERNEL_NF_MANGLE BRCM_KERNEL_NF_NAT
+export ODM_CFG_NO_BLOCK_DEVICE
 endif
 
 ###########################################
@@ -78,7 +84,7 @@ endif
 ifeq ($(strip $(BRCM_UCLIBC)),y)
 NTC=1
 ifeq ($(strip $(NTC)),1)
-TOOLCHAIN=/opt/toolchains/uclibc-crosstools
+TOOLCHAIN=/opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502
 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux-uclibc-
 else
 TOOLCHAIN=/opt/toolchains/uclibc
@@ -89,6 +95,8 @@ TOOLCHAIN=/usr/crossdev/mips
 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux-
 endif
 
+
+
 AR              = $(CROSS_COMPILE)ar
 AS              = $(CROSS_COMPILE)as
 LD              = $(CROSS_COMPILE)ld
@@ -113,41 +121,46 @@ LIBCDIR         = $(TOOLCHAIN)/mips-linux
 ###########################################
 INSTALL_DIR = $(TARGETS_DIR)/fs.src
 TARGET_FS = $(TARGETS_DIR)/$(PROFILE)/fs
+TARGET_FS2 = $(TARGETS_DIR)/$(PROFILE)/fs2
 PROFILE_DIR = $(TARGETS_DIR)/$(PROFILE)
 PROFILE_PATH = $(TARGETS_DIR)/$(PROFILE)/$(PROFILE)
-VENDOR_NAME = USR
+VENDOR_NAME = bcm
 FS_KERNEL_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_fs_kernel
 CFE_FS_KERNEL_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_cfe_fs_kernel
-FLASH_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_flash_image_$(BRCM_BOARD_ID)
+FLASH_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_flash_image
 INC_BRCMDRIVER_PUB_PATH=$(BRCMDRIVERS_DIR)/opensource/include
 INC_BRCMDRIVER_PRIV_PATH=$(BRCMDRIVERS_DIR)/broadcom/include
-INC_BRCMBOARDPARMS_PATH=$(TARGETS_DIR)/boardparms
 INC_ENDPOINT_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/endpoint/bcm9$(BRCM_CHIP)/inc
-#INC_ADSLDRV_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/adsl/bcm9$(BRCM_CHIP)
 INC_ADSLDRV_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/adsl/impl1
 BROADCOM_CFM_DIR=$(BROADCOM_DIR)/cfm
 INC_BRCMCFM_PATH=$(BROADCOM_CFM_DIR)/inc
-VENDOR_COUNTRY = ALL
+INC_BRCMSHARED_PUB_PATH=$(SHARED_DIR)/opensource/include
+INC_BRCMSHARED_PRIV_PATH=$(SHARED_DIR)/broadcom/include
+INC_BRCMBOARDPARMS_PATH=$(SHARED_DIR)/opensource/boardparms
+INC_FLASH_PATH=$(SHARED_DIR)/opensource/flash
 
+# Michael: this save current config to default config should be enable for every model
+export BRCM_CFG_XFER_TO_FACDEFLT=y
 
-ifeq ($(strip $(BRCM_APP_PHONE)),sip)
-export VOXXXLOAD=1
-export VOIPLOAD=1
-export SIPLOAD=1
-BRCM_RELEASETAG := $(BRCM_RELEASETAG).sip
-endif
 
-ifeq ($(strip $(BRCM_APP_PHONE)),mgcp)
-export VOXXXLOAD=1
-export VOIPLOAD=1
-export MGCPLOAD=1
-BRCM_RELEASETAG := $(BRCM_RELEASETAG).mgcp
+ifeq ($(strip $(BRCM_PROFILER_ENABLED)),y)
+export BRCM_PROFILER_TOOL=1
+else
+export BRCM_PROFILER_TOOL=0
 endif
 
 ifneq ($(strip $(BUILD_VODSL)),)
 export VOXXXLOAD=1
 endif
 
+ifeq ($(strip $(BRCM_VODSL_STUNC)),y)
+       export BRCM_VODSL_STUN_CLIENT=1
+endif
+
+ifeq ($(strip $(BRCM_VODSL_RANDOMP)),y)
+       export BRCM_VODSL_RANDOM_PORT=1
+endif
+
 BRCM_DSP_HAL := gw
 BRCM_DSP_HAL_EXTENSION :=
 XCHANGE_DSP_APP_EXTENSION :=
@@ -158,47 +171,151 @@ XCHANGE_DSP_APP := dspApp3341_tdm
 BRCM_DSP_HAL_EXTENSION := _pcm
 endif
 
-ifeq ($(strip $(BRCM_DSP_HYBRID)),y)
-XCHANGE_DSP_APP := dspApp3341_hybrid
-BRCM_DSP_HAL_EXTENSION := _hybrid
+ifeq ($(strip $(BRCM_DSP_PCM_G726)),y)
+XCHANGE_DSP_APP := dspApp3341_tdm_g726
+BRCM_DSP_HAL_EXTENSION := _pcm
 endif
 
-ifeq ($(strip $(BRCM_DSP_HYBRID_EXT)),y)
-BRCM_DSP_HAL_EXTENSION := _hybrid
-XCHANGE_DSP_APP := dspApp3341_hybrid
-XCHANGE_DSP_APP_EXTENSION := _ext
+ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y)
+XCHANGE_DSP_APP := dspApp3341_tdm_t38
+BRCM_DSP_HAL_EXTENSION := _pcm
 endif
 
-# APM application with FXO uses the hybrid HAL, as the FXO is provided by TDM port
-ifeq ($(strip $(BRCM_DSP_APM_FXO)),y)
+ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)),y)
 XCHANGE_DSP_APP := dspApp3341
 BRCM_DSP_HAL_EXTENSION := _hybrid
-XCHANGE_DSP_APP_EXTENSION := _fxo
+XCHANGE_DSP_APP_EXTENSION := _fxo_ext
+endif
+
+ifeq ($(strip $(BUILD_VDSL)),y)
+export BUILD_VDSL=y
+VBOOT_BIN="boot.bin"
+ifneq ($(strip $(CPE_ANNEX_B)),)
+  CPE_MODEM="cpe_annex_b.bin"
+else
+  CPE_MODEM="cpe_annex_a.bin"
+endif
+ifeq ($(strip $(VCOPE_TYPE)),CO)
+  VMODEM_BIN="co_modem.bin"
+endif
+ifeq ($(strip $(VCOPE_TYPE)),CPE)
+  VMODEM_BIN=$(CPE_MODEM)
+endif
+
+endif
+
+#
+#  Warning here, we do re-assign some of the variables defined earlier:
+#  BRCM_DSP_HAL and BRCM_DSP_HAL_EXTENSION for example, in order to pickup
+#  the correct board HAL application.
+#
+
+#swda add,06/27/2005
+ifeq ($(strip $(BRCM_SLIC_LE9502)),y)
+export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9502
+BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9502
+BRCM_DSP_HAL := _Le9502
+BRCM_DSP_HAL_EXTENSION :=
+export BRCM_SLIC_LE9502
+endif
+#swda add end
+
+ifeq ($(strip $(BRCM_DSP_FXO)),y)
+ifeq ($(strip $(BRCM_SLIC_LE9502)),y)
+export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9502FXO
+BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9502
+BRCM_DSP_HAL := _Le9502FXO
+BRCM_DSP_HAL_EXTENSION :=
+export BRCM_SLIC_LE9502
+else
+ifeq ($(strip $(BRCM_SLIC_LE9500)),y)
+export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9500FXO
+BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9500
+BRCM_DSP_HAL := _Le9500FXO
+BRCM_DSP_HAL_EXTENSION :=
+export BRCM_SLIC_LE9500
+endif
+endif
+endif
+
+
+#
+# DSP codec flags definition.  To be used throughout the application (for configuration and vodsl)
+#
+
+BRCM_DSP_CODEC_DEFINES := -DXCFG_G711_SUPPORT=1
+
+ifeq ($(strip $(BRCM_DSP_CODEC_G723)),y)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
+endif
+
+ifeq ($(strip $(BRCM_DSP_CODEC_G726)),y)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
+endif
+
+ifeq ($(strip $(BRCM_DSP_CODEC_G729)),y)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
+endif
+
+ifeq ($(strip $(BRCM_DSP_CODEC_G7xx)),y)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
+endif
+
+ifeq ($(strip $(BRCM_DSP_PCM)),y)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
+endif
+
+ifeq ($(strip $(BRCM_DSP_PCM_G726)),y)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
+endif
+
+ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
+endif
+
+ifeq ($(strip $(BRCM_DSP_CODEC_T38_EXT)),y)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
 endif
 
 ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)),y)
-XCHANGE_DSP_APP := dspApp3341
-BRCM_DSP_HAL_EXTENSION := _hybrid
-XCHANGE_DSP_APP_EXTENSION := _fxo_ext
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
 endif
 
-ifeq ($(strip $(BRCM_DSP_HYBRID_FXO)),y)
-XCHANGE_DSP_APP := dspApp3341_hybrid
-BRCM_DSP_HAL_EXTENSION := _hybrid
-XCHANGE_DSP_APP_EXTENSION := _fxo
+ifeq ($(strip $(BRCM_DSP_CODEC)),all)
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_BV16_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_ILBC_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
 endif
 
-ifeq ($(strip $(BRCM_DSP_HYBRID_FXO_EXT)),y)
-XCHANGE_DSP_APP := dspApp3341_hybrid
-BRCM_DSP_HAL_EXTENSION := _fxo
-XCHANGE_DSP_APP_EXTENSION := _fxo_ext
+
+#
+#  Definition of the number of voice channels supported based on the specific
+#  application being created.
+#
+
+ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)), y)
+BRCM_DSP_CHAN_DEFINES = -DNUM_APM_VOICE_CHANNELS=2 -DNUM_TDM_VOICE_CHANNELS=0 -DNUM_FXO_CHANNELS=1
+else
+BRCM_DSP_CHAN_DEFINES = -DNUM_APM_VOICE_CHANNELS=0 -DNUM_TDM_VOICE_CHANNELS=0 -DNUM_FXO_CHANNELS=0
 endif
 
+export BRCM_DSP_CODEC_DEFINES
+export BRCM_DSP_CHAN_DEFINES
 export BRCM_DSP_FXO
+export PSTN_SUPPORT
 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)$(BRCM_DSP_HAL)$(BRCM_DSP_HAL_EXTENSION)
 export XCHANGE_DSP_APP_EXTENSION
 export BRCM_DSP_HAL_EXTENSION
-BRCM_RELEASETAG := $(BRCM_RELEASETAG).$(XCHANGE_DSP_APP)
 
 # If no codec is selected, build G.711 load.
 # Any XCHANGE_BUILD_APP directory would be OK
@@ -207,24 +324,50 @@ ifneq ($(strip $(BUILD_VODSL)),)
 ifeq ($(strip $(XCHANGE_DSP_APP)),)
 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)gw
 export XCHANGE_DSP_APP=g711
-BRCM_RELEASETAG := $(BRCM_RELEASETAG).g711
 endif
 endif
-                                                                                
-ifeq ($(strip $(XCHG_LE9502_SLIC)),y)
-ifeq ($(strip $(BRCM_DSP_FXO)),y)
-export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9502FXO
-BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9502
-BRCM_DSP_HAL := LE9502_FXO
+BRCM_RELEASETAG := $(BRCM_RELEASETAG).$(XCHANGE_DSP_APP)
+
+ifeq ($(strip $(BRCM_CHIP)),6358)
+ifeq ($(strip $(BRCM_6358_G729_FXO)),y)
+BRCM_DSP_HAL := vw_fxo
+BRCM_DSP_CHAN_DEFINES = -DNUM_FXO_CHANNELS=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
+BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
+export BRCM_6358_G729_FXO
+export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw_fxo
+export BRCM_DSP_CODEC_DEFINES
 else
-export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9502
-BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9502
-BRCM_DSP_HAL := LE9502
+ifeq ($(strip $(BRCM_6358_G729_4FXS)),y)
+BRCM_DSP_HAL := vw_4fxs
+export BRCM_6358_G729_4FXS
+export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw_4fxs
+else
+ifeq ($(strip $(BRCM_6358_G729_2FXS_LEGERITY)),y)
+BRCM_DSP_HAL := vw_legerity
+export BRCM_6358_G729_2FXS_LEGERITY
+export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw_legerity
+else
+ifeq ($(strip $(BRCM_6358_G729_FXO_LEGERITY)),y)
+BRCM_DSP_HAL := vw_fxo_legerity
+BRCM_DSP_CHAN_DEFINES = -DNUM_FXO_CHANNELS=1
+export BRCM_6358_G729_FXO_LEGERITY
+export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw_fxo_legerity
+else
+BRCM_DSP_HAL := vw
+export BRCM_6358_G729
+export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw
+endif
+endif
 endif
-export XCHG_LE9502_SLIC
 endif
-                                                                                
-                                                                                
+endif
+
+ifeq ($(strip $(BRCM_VODSL_DUAL_3341)),y)
+BRCM_RELEASETAG := $(BRCM_RELEASETAG).dual3341
+endif
+
 #Set up ADSL standard
 export ADSL=$(BRCM_ADSL_STANDARD)
 
@@ -234,6 +377,71 @@ export ADSL_PHY_MODE=file
 #Set up ADSL_SELF_TEST
 export ADSL_SELF_TEST=$(BRCM_ADSL_SELF_TEST)
 
+#Set up ADSL_PLN_TEST
+export ADSL_PLN_TEST=$(BUILD_TR69_XBRCM)
+
+#WLan support
+ifneq ($(strip $(BUILD_MIMO)),)
+WLAN_IMPL=2
+else
+WLAN_IMPL=1
+endif
+export BUILD_MIMO
+
+#export compile option
+#Set up ADSL supporting line modes
+export BRCM_DSL_MODE_GDMT
+export BRCM_DSL_MODE_GLITE
+export BRCM_DSL_MODE_T1413
+export BRCM_DSL_MODE_ADSL2
+export BRCM_DSL_MODE_READSL2
+export BRCM_DSL_MODE_ADSL2PLUS
+export BRCM_DSL_MODE_ANNEXM
+export BRCM_DSL_MODE_BITSWAP
+export BRCM_DSL_MODE_SRA
+
+#Set up ADSL version
+export ADSL_VERSION=$(BRCM_ADSL_VERSION)
+
+export DSL_START_IN_KERNEL
+export WAN_LED_BLINKING
+export CHT_PPP_AS_WAN_LED
+export ODM_PPP_AS_PSTN_LED
+export ODM_PSTN_LED
+export Comtest_Lab_Only
+export Impulse_Test_Telestra_Approval
+export POWER_SAVING_DG
+export CHT_OAM_RES_WAIT_TIME_6
+export CHT_EOC
+
+export DEFAULT_WLAN_SSID=$(BRCM_Default_WLAN_SSID)
+export DEFAULT_WLAN_ESSID
+export BACKUP_WLAN_SPROM=$(BRCM_BACKUP_SPROM_4306)
+export DEFAULT_WLAN_WEP128
+export DEFAULT_WLAN_FRAMEBURST
+export DEFAULT_WLAN_AFTERBURNER
+export WIRELESS_MAIN_ANTENNA
+export WIRELESS_AUX_ANTENNA
+export WIRELESS_AUTO_ANTENNA
+export COUNTRY_ISRAEL
+export WLAN_ENABLE_CTRL_BUTTON
+export WLAN_DISABLE_FEM
+export LLL_TEST_LED
+export WESTELL_GPIO
+export DAA_OFFHOOK_CMD
+export CONFIG_ATM_EOP_MONITORING
+export VOICE_SYS_CLOCK_50MHZ
+export IAD_VDSL_6358
+export IAD_GPON_6358
+export ODM_BOTH_ETH
+export NEWZEALAND_FXO
+export VOICECTL_APP
+#export FXO_GAIN_CMD
+
+#michael add
+#Use chipId to decide what the ADSL config option on html
+export CHIP_ADSL_VERSION=$(BRCM_ADSL_DRIVER)
+
 ###########################################
 #
 # Complete list of applications
@@ -241,19 +449,43 @@ export ADSL_SELF_TEST=$(BRCM_ADSL_SELF_TEST)
 ###########################################
 export OPENSOURCE_DIR=$(USERAPPS_DIR)/opensource
 SUBDIRS_OPENSOURCE = $(OPENSOURCE_DIR)/atm2684/pvc2684ctl \
+        $(OPENSOURCE_DIR)/openssl \
+        $(OPENSOURCE_DIR)/ipsec-tools \
         $(OPENSOURCE_DIR)/bridge-utils \
         $(OPENSOURCE_DIR)/ppp/pppoe \
         $(OPENSOURCE_DIR)/udhcp \
         $(OPENSOURCE_DIR)/iptables \
         $(OPENSOURCE_DIR)/ebtables \
         $(OPENSOURCE_DIR)/reaim  \
-        $(OPENSOURCE_DIR)/gdbserver  \
+        $(OPENSOURCE_DIR)/iproute2  \
+        $(OPENSOURCE_DIR)/libosip2 \
         $(OPENSOURCE_DIR)/siproxd \
         $(OPENSOURCE_DIR)/zebra  \
         $(OPENSOURCE_DIR)/net-snmp  \
         $(OPENSOURCE_DIR)/ftpd \
         $(OPENSOURCE_DIR)/libcreduction \
-        $(OPENSOURCE_DIR)/busybox
+        $(OPENSOURCE_DIR)/busybox \
+        $(OPENSOURCE_DIR)/dproxy \
+        $(OPENSOURCE_DIR)/lpd \
+        $(OPENSOURCE_DIR)/httpc \
+        $(OPENSOURCE_DIR)/mpd
+
+# Start Andy porting from 3.02.02, 2006/05/23
+export BROADCOM_DIR=$(USERAPPS_DIR)/broadcom
+NEED_MOVE = "1"
+NEED_CHG_ACCESSREMOTE = "0"
+ifneq ($(strip $(BRCM_LANG_EN)),)
+       NEED_CHG_ACCESSREMOTE = "1"
+endif
+       HTML_DIR = $(BROADCOM_DIR)/cfm/html
+       NEED_MOVE = "0"
+
+NEED_MOVE_CH = "0"
+
+export HTML_DIR NEED_MOVE NEED_CHG_ACCESSREMOTE NEED_MOVE_CH
+export LOGO_DIR = $(BROADCOM_DIR)/cfm/logo
+export  WEB_LOGO_CHOICE = $(BRCM_WEB_LOGO_CHOICE)
+# End Andy porting from 3.02.02, 2006/05/23
 
 #In future, we need to add soap when it
 #is decoupled from cli
@@ -261,12 +493,15 @@ SUBDIRS_OPENSOURCE = $(OPENSOURCE_DIR)/atm2684/pvc2684ctl \
 export BROADCOM_DIR=$(USERAPPS_DIR)/broadcom
 SUBDIRS_BROADCOM = $(BROADCOM_DIR)/nvram \
        $(BROADCOM_DIR)/cfm \
+       $(BROADCOM_DIR)/cfesetup \
         $(BROADCOM_DIR)/upnp/router/upnp \
         $(BROADCOM_DIR)/nas \
         $(BROADCOM_DIR)/wlctl \
-        $(BROADCOM_DIR)/vodsl \
+       $(BROADCOM_DIR)/wlenablectrl \
+       $(BROADCOM_DIR)/voicectl \
         $(BROADCOM_DIR)/atmctl \
         $(BROADCOM_DIR)/adslctl \
+       $(BROADCOM_DIR)/autoprovisionlan \
         $(BROADCOM_DIR)/netctl \
         $(BROADCOM_DIR)/dnsprobe \
         $(BROADCOM_DIR)/igmp \
@@ -274,24 +509,73 @@ SUBDIRS_BROADCOM = $(BROADCOM_DIR)/nvram \
        $(BROADCOM_DIR)/sntp \
        $(BROADCOM_DIR)/ippd \
        $(BROADCOM_DIR)/ddnsd \
+       $(BROADCOM_DIR)/iappd \
        $(BROADCOM_DIR)/ethctl \
         $(BROADCOM_DIR)/hotplug \
+        $(BROADCOM_DIR)/wav2rtp \
         $(BROADCOM_DIR)/epittcp \
-        $(BROADCOM_DIR)/ses 
+        $(BROADCOM_DIR)/snmp \
+        $(BROADCOM_DIR)/tr69c \
+        $(BROADCOM_DIR)/ses \
+        $(BROADCOM_DIR)/relayCtl \
+        $(BROADCOM_DIR)/vdslctl \
+        $(BROADCOM_DIR)/hostCode
 
 SUBDIRS_APP = $(SUBDIRS_BROADCOM) $(SUBDIRS_OPENSOURCE)
 SUBDIRS = $(foreach dir, $(SUBDIRS_APP), $(shell if [ -d "$(dir)" ]; then echo $(dir); fi))
 
-OPENSOURCE_APPS = pvc2684ctl pvc2684d brctl pppd udhcp iptables ebtables \
-                  reaim siproxd snmp zebra bftpd busybox gdbserver
+OPENSOURCE_APPS = ipsec-tools pvc2684ctl pvc2684d brctl pppd udhcp iptables ebtables mpd \
+                  reaim libosip2 siproxd snmp zebra bftpd busybox dproxy iproute2 httpc lpd
+
+BROADCOM_APPS = nvram cfesetup cfm upnp nas wlctl wlenablectrl voicectl atmctl adslctl netctl dnsprobe wav2rtp \
+                igmp dhcpr diagapp sntp ddnsd ilmi ippd hotplug ethctl epittcp snmp ses \
+                hmi2proxy relayctl vdslctl autoprovisionlan iappd
+
+ifneq ($(findstring rvsip,$(BRCM_APP_PHONE)),)
+    SUBDIRS_BROADCOM += $(BROADCOM_DIR)/rvsip
+    BROADCOM_APPS += rvsip
+else
+  ifneq ($(strip $(BUILD_VODSL)),)
+    SUBDIRS_BROADCOM += $(BROADCOM_DIR)/vodsl
+    BROADCOM_APPS += vodsl
+  endif
+endif
+
+ifneq ($(strip $(BUILD_SIGNATURE)),)
+   export BUILD_SIGNATURE
+endif
+
+ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
+   export BUILD_SIGNATURE_RSA
+endif
 
-BROADCOM_APPS = nvram cfm upnp nas wlctl vodsl atmctl adslctl netctl dnsprobe \
-                igmp dhcpr diagapp sntp ddnsd ilmi ippd hotplug ethctl epittcp ses
 LIBC_OPTIMIZATION = libcreduction
 
+ifneq ($(strip $(BUILD_GDBSERVER)),)
+TOOLCHAIN_UTIL_APPS = gdbserver
+endif
+
+ifneq ($(strip $(BUILD_PPP_AUTH_LIMIT)),)
+   export BUILD_PPP_AUTH_LIMIT
+endif
+
+# Start Andy porting from 3.02.02 (2006/05/23)
+ifneq ($(strip $(ODM_MULTI_LANG)),)
+ifneq ($(strip $(MULTI_LANG_EN)),)
+  export MULTI_LANG_EN=y
+endif
+ifneq ($(strip $(MULTI_LANG_DE)),)
+  export MULTI_LANG_DE=y
+endif
+ifneq ($(strip $(MULTI_LANG_TR)),)
+  export MULTI_LANG_TR=y
+endif
+endif
+# End Andy porting from 3.02.02 (2006/05/23)
+
 BUSYBOX_DIR = $(OPENSOURCE_DIR)/busybox
 
-BRCMAPPS = $(BROADCOM_APPS) $(OPENSOURCE_APPS) $(LIBC_OPTIMIZATION)
+BRCMAPPS = openssl $(BROADCOM_APPS) $(OPENSOURCE_APPS) $(TOOLCHAIN_UTIL_APPS) $(LIBC_OPTIMIZATION)
 
 all: sanity_check profile_check kernelbuild modbuild app hosttools buildimage
 
@@ -377,6 +661,7 @@ pvc2684d:
 pvc2684ctl:
        $(MAKE) -C $(OPENSOURCE_DIR)/atm2684/pvc2684ctl $(BUILD_PVC2684CTL)
 else
+pvc2684d:
 pvc2684ctl:
 endif
 
@@ -399,6 +684,9 @@ export BUILD_CFM_MENU=y
 endif
 
 cfm:
+ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
+       $(MAKE) -C $(BROADCOM_DIR)/cfm/web/sigmak
+endif
        $(MAKE) -C $(BROADCOM_DIR)/cfm $(BUILD_CFM)
 else
 cfm:
@@ -444,9 +732,35 @@ else
 reaim:
 endif
 
+ifneq ($(strip $(BRCM_KERNEL_NETQOS)),)
+iproute2:
+       cd $(OPENSOURCE_DIR);   (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
+       $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
+else
+
+ifneq ($(strip $(BRCM_KERNEL_DN_IPQOS)),)
+iproute2:
+       cd $(OPENSOURCE_DIR);   (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
+       $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
+else
+
+ifneq ($(strip $(BUILD_POLICY_ROUTING)),)
+iproute2:
+       cd $(OPENSOURCE_DIR);   (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
+       $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
+else
+iproute2:
+endif#BUILD_POLICY_ROUTING
+
+endif#BRCM_KERNEL_DN_IPQOS
+
+endif#BRCM_KERNEL_NETQOS
+
+
 ifneq ($(strip $(BUILD_GDBSERVER)),)
 gdbserver:
-       $(MAKE) -C $(OPENSOURCE_DIR)/gdbserver dynamic
+       install -m 755 $(TOOLCHAIN)/mips-linux-uclibc/target-apps/usr/bin/gdbserver $(INSTALL_DIR)/bin
+       $(STRIP) $(INSTALL_DIR)/bin/gdbserver
 else
 gdbserver:
 endif
@@ -475,91 +789,156 @@ upnp:
        @echo Warning: You need to build iptables first !!!!!
 endif
 
+ifneq ($(strip $(BUILD_IPSEC_TOOLS)),)
+ipsec-tools:
+       cd $(OPENSOURCE_DIR);   (tar xkfj ipsec-tools.tar.bz2 2> /dev/null || true)
+       $(MAKE) -C $(OPENSOURCE_DIR)/ipsec-tools $(BUILD_IPSEC_TOOLS)
+else
+ipsec-tools:
+endif
+
+ifneq ($(strip $(BUILD_CERT)),)
+openssl:
+       cd $(OPENSOURCE_DIR);   (tar xkfj openssl.tar.bz2 2> /dev/null || true)
+       $(MAKE) -C $(OPENSOURCE_DIR)/openssl dynamic
+else
+openssl:
+endif
+
 
 ifneq ($(strip $(BUILD_SIPROXD)),)
 siproxd:
-       cd $(OPENSOURCE_DIR);   (tar xkfj libosip2.tar.bz2 2> /dev/null || true)
        cd $(OPENSOURCE_DIR);   (tar xkfj siproxd.tar.bz2 2> /dev/null || true)
        $(MAKE) -C $(OPENSOURCE_DIR)/siproxd $(BUILD_SIPROXD)
+libosip2:
+       cd $(OPENSOURCE_DIR);   (tar xkfj libosip2.tar.bz2 2> /dev/null || true)
+       $(MAKE) -C $(OPENSOURCE_DIR)/libosip2
 else
 siproxd:
+
+libosip2:
+
 endif
 
 ifneq ($(strip $(BUILD_SNMP)),)
 
 ifneq ($(strip $(BUILD_SNMP_SET)),)
-export BUILD_SNMP_SET=1
+export SNMP_SET=1
 else
-export BUILD_SNMP_SET=0
+export SNMP_SET=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_ADSL_MIB)),)
-export BUILD_SNMP_ADSL_MIB=1
+export SNMP_ADSL_MIB=1
 else
-export BUILD_SNMP_ADSL_MIB=0
+export SNMP_ADSL_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_ATM_MIB)),)
-export BUILD_SNMP_ATM_MIB=1
+export SNMP_ATM_MIB=1
 else
-export BUILD_SNMP_ATM_MIB=0
+export SNMP_ATM_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_AT_MIB)),)
-export BUILD_SNMP_AT_MIB=1
+export SNMP_AT_MIB=1
 else
-export BUILD_SNMP_AT_MIB=0
+export SNMP_AT_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_SYSOR_MIB)),)
-export BUILD_SNMP_SYSOR_MIB=1
+export SNMP_SYSOR_MIB=1
 else
-export BUILD_SNMP_SYSOR_MIB=0
+export SNMP_SYSOR_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_TCP_MIB)),)
-export BUILD_SNMP_TCP_MIB=1
+export SNMP_TCP_MIB=1
 else
-export BUILD_SNMP_TCP_MIB=0
+export SNMP_TCP_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_UDP_MIB)),)
-export BUILD_SNMP_UDP_MIB=1
+export SNMP_UDP_MIB=1
 else
-export BUILD_SNMP_UDP_MIB=0
+export SNMP_UDP_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_IP_MIB)),)
-export BUILD_SNMP_IP_MIB=1
+export SNMP_IP_MIB=1
 else
-export BUILD_SNMP_IP_MIB=0
+export SNMP_IP_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_ICMP_MIB)),)
-export BUILD_SNMP_ICMP_MIB=1
+export SNMP_ICMP_MIB=1
 else
-export BUILD_SNMP_ICMP_MIB=0
+export SNMP_ICMP_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_SNMP_MIB)),)
-export BUILD_SNMP_SNMP_MIB=1
+export SNMP_SNMP_MIB=1
 else
-export BUILD_SNMP_SNMP_MIB=0
+export SNMP_SNMP_MIB=0
 endif
 
 ifneq ($(strip $(BUILD_SNMP_ATMFORUM_MIB)),)
-export BUILD_SNMP_ATMFORUM_MIB=1
+export SNMP_ATMFORUM_MIB=1
 else
-export BUILD_SNMP_ATMFORUM_MIB=0
+export SNMP_ATMFORUM_MIB=0
+endif
+
+ifneq ($(strip $(BRCM_SNMP)),)
+
+ifneq ($(strip $(BUILD_SNMP_CHINA_TELECOM_CPE_MIB)),)
+export SNMP_CHINA_TELECOM_CPE_MIB=1
+export SNMP_MIB2=1
+endif
+
+ifneq ($(strip $(BUILD_SNMP_UDP)),)
+export SNMP_UDP=1
+endif
+
+ifneq ($(strip $(BUILD_SNMP_EOC)),)
+export SNMP_EOC=1
+endif
+
+ifneq ($(strip $(BUILD_SNMP_AAL5)),)
+export SNMP_AAL5=1
+endif
+
+ifneq ($(strip $(BUILD_SNMP_AUTO)),)
+export SNMP_AUTO=1
+endif
+
+ifneq ($(strip $(BUILD_SNMP_DEBUG)),)
+export SNMP_DEBUG=1
+endif
+
+ifneq ($(strip $(BUILD_SNMP_TRANSPORT_DEBUG)),)
+export SNMP_TRANSPORT_DEBUG=1
+endif
+
+ifneq ($(strip $(BUILD_SNMP_LAYER_DEBUG)),)
+export SNMP_LAYER_DEBUG=1
+endif
 endif
 
 snmp:
+ifneq ($(strip $(BRCM_SNMP)),)
+##     $(MAKE) -C $(BROADCOM_DIR)/snmp $(BUILD_SNMP)
+else
        cd $(OPENSOURCE_DIR);   (tar xkfj net-snmp.tar.bz2 2> /dev/null || true)
        $(MAKE) -C $(OPENSOURCE_DIR)/net-snmp $(BUILD_SNMP)
+endif
 else
 snmp:
 endif
 
+ifneq ($(strip $(BUILD_4_LEVEL_QOS)),)
+export BUILD_4_LEVEL_QOS=y
+endif
+
 ifneq ($(strip $(BUILD_ILMI)),)
 ilmi:
        cd $(OPENSOURCE_DIR);   (tar xkfj net-snmp.tar.bz2 2> /dev/null || true)
@@ -568,11 +947,15 @@ else
 ilmi:
 endif
 
-ifneq ($(strip $(BUILD_VODSL)),)
-vodsl:
-       $(MAKE) -C $(BROADCOM_DIR)/vodsl $(BUILD_VODSL)
+ifneq ($(findstring rvsip,$(BRCM_APP_PHONE)),)
+rvsip:
+       $(MAKE) -C $(BROADCOM_DIR)/rvsip/bos
+       $(MAKE) -C $(BROADCOM_DIR)/rvsip all install
 else
 vodsl:
+  ifneq ($(strip $(BUILD_VODSL)),)
+       $(MAKE) -C $(BROADCOM_DIR)/vodsl $(BUILD_VODSL)
+  endif
 endif
 
 # Leave it for the future when soap server is decoupled from cfm
@@ -591,12 +974,16 @@ endif
 ifneq ($(strip $(BUILD_NAS)),)
 export WIRELESS=1
 nas:
+       if [ -e $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/nas ]; then \
+         rm -rf $(BROADCOM_DIR)/nas/*; \
+         cp -pRdf $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/nas/* $(BROADCOM_DIR)/nas; \
+       fi
        $(MAKE) -C $(BROADCOM_DIR)/nas $(BUILD_NAS)
 
 #add hotplug here, for nas use only
 hotplug:
        $(MAKE) -C $(BROADCOM_DIR)/hotplug $(BUILD_NAS)
-       
+
 else
 export WIRELESS=0
 nas:
@@ -607,12 +994,55 @@ endif
 ifneq ($(strip $(BUILD_WLCTL)),)
 export WIRELESS=1
 wlctl:
+       if [ -e $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/wlctl ]; then \
+         rm -rf $(BROADCOM_DIR)/wlctl/*; \
+         cp -pRdf $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/wlctl/* $(BROADCOM_DIR)/wlctl; \
+       fi
        $(MAKE) -C $(BROADCOM_DIR)/wlctl $(BUILD_WLCTL)
 else
 export WIRELESS=0
 wlctl:
 endif
 
+ifneq ($(strip $(BUILD_EPITTCP)),)
+epittcp:
+       $(MAKE) -C $(BROADCOM_DIR)/epittcp $(BUILD_EPITTCP)
+else
+epittcp:
+endif
+
+ifneq ($(strip $(WLAN_ENABLE_CTRL_BUTTON)),)
+wlenablectrl:
+       $(MAKE) -C $(BROADCOM_DIR)/wlenablectrl dynamic
+else
+wlenablectrl:
+endif
+
+ifneq ($(strip $(VOICECTL_APP)),)
+voicectl:
+       $(MAKE) -C $(BROADCOM_DIR)/voicectl dynamic
+else
+voicectl:
+endif
+
+ifneq ($(strip $(BUILD_SES)),)
+ses:
+       if [ -e $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/ses ]; then \
+         rm -rf $(BROADCOM_DIR)/ses/*; \
+         cp -pRdf $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/ses/* $(BROADCOM_DIR)/ses; \
+       fi
+       $(MAKE) -C $(BROADCOM_DIR)/ses $(BUILD_SES)
+else
+ses:
+endif
+
+ifneq ($(strip $(BUILD_NVRAM)),)
+nvram:
+       $(MAKE) -C $(BROADCOM_DIR)/nvram $(BUILD_NVRAM)
+else
+nvram:
+endif
+
 #Always compile Ethernet control utility
 ethctl:
        $(MAKE) -C $(BROADCOM_DIR)/ethctl dynamic
@@ -646,6 +1076,13 @@ else
 zebra:
 endif
 
+ifneq ($(strip $(ODM_AUTO_PROVISION_LAN)),)
+autoprovisionlan:
+       $(MAKE) -C $(BROADCOM_DIR)/autoprovisionlan dynamic
+else
+autoprovisionlan:
+endif
+
 ifneq ($(strip $(BUILD_ATMCTL)),)
 atmctl:
        $(MAKE) -C $(BROADCOM_DIR)/atmctl $(BUILD_ATMCTL)
@@ -683,12 +1120,23 @@ endif
 
 ifneq ($(strip $(BUILD_LIBCREDUCTION)),)
 libcreduction:
-       mkdir -p $(OPENSOURCE_DIR)/libcreduction/uclibc
        $(MAKE) -C $(OPENSOURCE_DIR)/libcreduction install
 else
 libcreduction:
 endif
 
+###########################################
+#
+# VOIP Call Waitting Function
+#
+###########################################
+ifneq ($(strip $(BUILD_WAV2RTP)),)
+wav2rtp:
+       $(MAKE) -C $(BROADCOM_DIR)/wav2rtp dynamic
+else
+wav2rtp:
+endif
+
 ifneq ($(strip $(BUILD_DIAGAPP)),)
 diagapp:
        $(MAKE) -C $(BROADCOM_DIR)/diagapp $(BUILD_DIAGAPP)
@@ -704,6 +1152,20 @@ else
 bftpd:
 endif
 
+ifneq ($(strip $(BUILD_HTTPC)),)
+httpc:
+       $(MAKE) -C $(OPENSOURCE_DIR)/httpc $(BUILD_HTTPC)
+else
+httpc:
+endif
+
+ifneq ($(strip $(BUILD_MPD)),)
+mpd:
+       $(MAKE) -C $(OPENSOURCE_DIR)/mpd $(BUILD_MPD)
+else
+mpd:
+endif
+
 ifneq ($(strip $(BUILD_DDNSD)),)
 ddnsd:
        $(MAKE) -C $(BROADCOM_DIR)/ddnsd $(BUILD_DDNSD)
@@ -718,40 +1180,101 @@ else
 sntp:
 endif
 
-ifneq ($(strip $(BUILD_EPITTCP)),)
-epittcp:
-       $(MAKE) -C $(BROADCOM_DIR)/epittcp $(BUILD_EPITTCP)
+ifneq ($(strip $(ODM_CFESETUP)),)
+cfesetup:
+       $(MAKE) -C $(BROADCOM_DIR)/cfesetup all
 else
-epittcp:
+cfesetup:
 endif
 
-ifneq ($(strip $(BUILD_SES)),)
-ses:
-       $(MAKE) -C $(BROADCOM_DIR)/ses $(BUILD_SES)
+
+ifneq ($(strip $(BUILD_IPPD)),)
+ippd:
+       $(MAKE) -C $(BROADCOM_DIR)/ippd $(BUILD_IPPD)
 else
-ses:
+ippd:
 endif
 
-ifneq ($(strip $(BUILD_NVRAM)),)
-nvram:
-       $(MAKE) -C $(BROADCOM_DIR)/nvram $(BUILD_NVRAM)
+# Start: Andy porting from 2.21.5, 2005/04/14
+ifneq ($(strip $(BUILD_DPROXY)),)
+dproxy:
+       $(MAKE) -C $(OPENSOURCE_DIR)/dproxy $(BUILD_DPROXY)
 else
-nvram:
+dproxy:
 endif
+# End: Andy porting from 2.21.5, 2005/04/14
 
-ifneq ($(strip $(BUILD_IPPD)),)
-ippd:
-       $(MAKE) -C $(BROADCOM_DIR)/ippd $(BUILD_IPPD)
+#Paul porting from 2.21.5, 7/24/2006
+ifneq ($(strip $(BUILD_PRINTSERVER)),)
+iappd:
+       $(MAKE) -C $(BROADCOM_DIR)/iappd dynamic
+lpd:
+       $(MAKE) -C $(OPENSOURCE_DIR)/lpd dynamic
 else
-ippd:
+iappd:
+lpd:
+endif
+#Paul porting end
+
+#ifneq ($(strip $(BUILD_PORT_MIRRORING)),)
+#export BUILD_PORT_MIRRORING=1
+#else
+#export BUILD_PORT_MIRRORING=0
+#endif
+
+ifneq ($(strip $(BUILD_HOSTMGR)),)
+hmi2proxy: vdsl_processing
+       $(MAKE) -C $(BROADCOM_DIR)/hostCode/hostMgr $(BUILD_HOSTMGR) TARGET=$@ PHY=memap6348
+else
+hmi2proxy:
+endif
+
+ifneq ($(strip $(BUILD_RELAYCONTROL)),)
+relayctl:
+       $(MAKE) -C $(BROADCOM_DIR)/relayCtl/relay6348 $(BUILD_RELAYCONTROL) TARGET=$@
+else
+relayctl:
+endif
+
+ifneq ($(strip $(BUILD_VDSLCTL)),)
+vdslctl:
+       $(MAKE) -C $(BROADCOM_DIR)/vdslctl/vdslctl $(BUILD_VDSLCTL) TARGET=$@
+else
+vdslctl:
 endif
 
 hosttools:
+ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
+       $(MAKE) -C $(HOSTTOOLS_DIR)/sigmak
+endif
        $(MAKE) -C $(HOSTTOOLS_DIR)
 
+vdsl_processing: add_6510_support vdsl_modem vdsl_modem_file
+
+vdsl_modem_file:
+       @echo "************* VDSL Housekeeping **************************************"
+       @echo   "VCOPE_BOARD=$(VCOPE_BOARD) HMI_VERSION=$(HMI_VERSION)"
+       @echo "VCOPE_TYPE=$(VCOPE_TYPE) VCOPE_LINE_NUMBER=$(VCOPE_LINE_NUMBER)"
+       @echo "**********************************************************************"
+
+vdsl_modem:
+       - cmp -s $(FSSRC_DIR)/images/modem.bin $(6510_REF_CODE)/images/$(VMODEM_BIN); \
+       if [ ! $$? -eq 0 ]; then \
+               echo "VCOPE: different type - need clean up"; \
+               find userapps/broadcom/hostCode/ -name *.[oa]   | xargs rm; \
+               find userapps/broadcom/hostCode/ -name *.depend | xargs rm; \
+               find userapps/broadcom/relayCtl/ -name *.[oa]   | xargs rm; \
+               find userapps/broadcom/relayCtl/ -name *.depend | xargs rm; \
+               find userapps/broadcom/vdslctl/  -name *.[oa]   | xargs rm; \
+               find userapps/broadcom/vdslctl/  -name *.depend | xargs rm; \
+       fi
+       @echo "$(FSSRC_DIR)/images/: Creating \"modem.bin\" out of $(VMODEM_BIN)"
+       cp -f $(6510_REF_CODE)/images/$(VMODEM_BIN) $(FSSRC_DIR)/images/modem.bin;
+       cp -f $(6510_REF_CODE)/images/$(VBOOT_BIN) $(FSSRC_DIR)/images/boot.bin;
 
 buildimage: $(KERNEL_DIR)/vmlinux
        su --command="cd $(TARGETS_DIR); ./buildFS"
+#      find $(TARGET_FS) -name CVS | xargs rm -rf
 ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),squashfs)
        #$(HOSTTOOLS_DIR)/mksquashfs $(TARGET_FS) $(PROFILE_DIR)/rootfs.img -noappend -be -always-use-fragments -gzip
        $(HOSTTOOLS_DIR)/mksquashfs $(TARGET_FS) $(PROFILE_DIR)/rootfs.img -noappend -be -lzma -no-fragments -noI
@@ -772,14 +1295,11 @@ ifneq ($(strip $(BRCM_KERNEL_ROOTFS)),nfs)
        $(STRIP) --remove-section=.note --remove-section=.comment vmlinux; \
        $(OBJCOPY) -O binary vmlinux vmlinux.bin; \
        $(HOSTTOOLS_DIR)/cmplzma -k -2 vmlinux vmlinux.bin vmlinux.lz;\
-       $(HOSTTOOLS_DIR)/bcmImageBuilder --output $(FS_KERNEL_IMAGE_NAME) --chip $(BRCM_CHIP) --board $(BRCM_BOARD_ID) --blocksize $(BRCM_FLASHBLK_SIZE) --cfefile $(CFE_FILE) --rootfsfile rootfs.img --kernelfile vmlinux.lz; \
-       $(HOSTTOOLS_DIR)/bcmImageBuilder --output $(CFE_FS_KERNEL_IMAGE_NAME) --chip $(BRCM_CHIP) --board $(BRCM_BOARD_ID) --blocksize $(BRCM_FLASHBLK_SIZE) --cfefile $(CFE_FILE) --rootfsfile rootfs.img --kernelfile vmlinux.lz --include-cfe; \
-       $(HOSTTOOLS_DIR)/createimg -b $(BRCM_BOARD_ID) -n $(BRCM_NUM_MAC_ADDRESSES) -m $(BRCM_BASE_MAC_ADDRESS) -i $(CFE_FS_KERNEL_IMAGE_NAME) -o $(FLASH_IMAGE_NAME) -l $(VENDOR_COUNTRY); \
-       $(HOSTTOOLS_DIR)/addvtoken $(FLASH_IMAGE_NAME) $(FLASH_IMAGE_NAME).w
-       @mkdir -p $(IMAGES_DIR)
-       @cp $(PROFILE_DIR)/$(FS_KERNEL_IMAGE_NAME) $(IMAGES_DIR)/$(FS_KERNEL_IMAGE_NAME)_$(BRCM_RELEASETAG)-$(shell date '+%y%m%d_%H%M')
-       @echo
-       @echo -e "Done! Image $(PROFILE) has been built in $(IMAGES_DIR)."
+       $(HOSTTOOLS_DIR)/bcmImageBuilder --output $(FS_KERNEL_IMAGE_NAME) --board $(BRCM_BOARD_ID) --blocksize $(BRCM_FLASHBLK_SIZE) --cfefile $(CFE_FILE) --rootfsfile rootfs.img --kernelfile vmlinux.lz; \
+       mkdir -p $(IMAGES_DIR)
+       cp $(PROFILE_DIR)/$(FS_KERNEL_IMAGE_NAME) $(IMAGES_DIR)/$(FS_KERNEL_IMAGE_NAME)_$(BRCM_RELEASETAG)-$(shell date '+%y%m%d_%H%M')
+       echo
+       echo -e "Done! Image $(PROFILE) has been built in $(IMAGES_DIR)."
 else
        cd $(PROFILE_DIR); \
        cp $(KERNEL_DIR)/vmlinux . ; \
@@ -797,14 +1317,14 @@ endif
 #
 # System code clean-up
 #
-###########################################    
-       
+###########################################
+
 subdirs: $(patsubst %, _dir_%, $(SUBDIRS))
 
 $(patsubst %, _dir_%, $(SUBDIRS)) :
        $(MAKE) -C $(patsubst _dir_%, %, $@) $(TGT)
 
-clean: target_clean app_clean kernel_clean hosttools_clean
+clean: target_clean app_clean kernel_clean hosttools_clean  remove_6510_support
        rm -f .tmpconfig*
 
 fssrc_clean:
@@ -812,7 +1332,6 @@ fssrc_clean:
        rm -fr $(INSTALL_DIR)/sbin
        rm -fr $(INSTALL_DIR)/lib
        rm -fr $(INSTALL_DIR)/upnp
-       rm -fr $(INSTALL_DIR)/docs
        rm -fr $(INSTALL_DIR)/webs
        rm -fr $(INSTALL_DIR)/usr
        rm -fr $(INSTALL_DIR)/linuxrc
@@ -821,6 +1340,7 @@ kernel_clean: sanity_check
        $(MAKE) -C $(KERNEL_DIR) mrproper
        rm -f $(KERNEL_DIR)/arch/mips/defconfig
        rm -f $(HOSTTOOLS_DIR)/lzma/decompress/*.o
+       rm -f $(TARGETS_DIR)/*.o $(TARGETS_DIR)/.*.flags $(TARGETS_DIR)/.depend
        rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxKernel
        rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxKernel
 
@@ -829,7 +1349,7 @@ app_clean: sanity_check fssrc_clean
        rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxUser
        rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxUser
 
-target_clean: sanity_check
+target_clean: sanity_check fssrc_clean
        rm -f $(PROFILE_DIR)/rootfs.img
        rm -f $(PROFILE_DIR)/vmlinux
        rm -f $(PROFILE_DIR)/vmlinux.bin
@@ -838,29 +1358,237 @@ target_clean: sanity_check
        rm -f $(PROFILE_DIR)/$(CFE_FS_KERNEL_IMAGE_NAME)
        rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME)
        rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME).w
+       rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME).bin
+       rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME).ice
        rm -fr $(PROFILE_DIR)/modules
        find targets -name vmlinux -print -exec rm -f "{}" ";"
        su --command="rm -fr $(TARGET_FS)"
 
 hosttools_clean:
        $(MAKE) -C $(HOSTTOOLS_DIR) clean
-       
+
+add_6510_support:
+       $(6510_REF_CODE)/add6510support DYMMY_HMI_VERSON $(6510_REF_CODE)
+
+remove_6510_support:
+       rm -fr $(BROADCOM_DIR)/hostCode
+       rm -fr $(BROADCOM_DIR)/relayCtl
+       rm -fr $(BROADCOM_DIR)/vdslctl
+
+clean_6510:
+       find userapps/broadcom/hostCode/ -name *.[oa]   | xargs rm
+       find userapps/broadcom/hostCode/ -name *.depend | xargs rm
+       find userapps/broadcom/relayCtl/ -name *.[oa]   | xargs rm
+       find userapps/broadcom/relayCtl/ -name *.depend | xargs rm
+       find userapps/broadcom/vdslctl/  -name *.[oa]   | xargs rm
+       find userapps/broadcom/vdslctl/  -name *.depend | xargs rm
+
+voice_clean:
+       find bcmdrivers/broadcom/char/endpoint -name '*.o' -exec rm -f "{}" ";"
+       find userapps/broadcom/cfm -name '*.o' -exec rm -f "{}" ";"
+       find userapps/broadcom/vodsl -name '*.o' -exec rm -f "{}" ";"
+       rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxKernel
+       rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxUser
+
 ###########################################
 #
 # System-wide exported variables
+# (in alphabetical order)
+#
+###########################################
+
+export \
+AR                         \
+AS                         \
+ODM_AUTO_PROVISION_LAN   \
+ODM_LANG_NETGEAR         \
+BRCM_APP_PHONE             \
+BRCMAPPS                   \
+BRCM_BOARD                 \
+BRCM_DRIVER_PCI            \
+BRCMDRIVERS_DIR            \
+BRCM_DRIVER_WIRELESS       \
+BRCM_DRIVER_PHONE          \
+BRCM_DSP_APM_FXO           \
+BRCM_DSP_APM_FXO_EXT       \
+BRCM_DSP_CODEC_G711        \
+BRCM_DSP_CODEC_G723        \
+BRCM_DSP_CODEC_G726        \
+BRCM_DSP_CODEC_G729        \
+BRCM_DSP_CODEC_G7xx        \
+BRCM_DSP_CODEC_T38_EXT     \
+BRCM_DSP_CODEC_T38_INT     \
+BRCM_DSP_HAL               \
+BRCM_DSP_HAL_EXTENSION     \
+BRCM_DSP_PCM               \
+BRCM_DSP_PCM_G726          \
+BRCM_DSP_PCM_T38_EXT       \
+BRCM_EXTRAVERSION          \
+BRCM_KERNEL_NETQOS         \
+BRCM_KERNEL_ROOTFS         \
+BRCM_LDX_APP               \
+BRCM_MIPS_ONLY_BUILD       \
+BRCM_MIPS_ONLY_BUILD       \
+BRCM_PSI_VERSION           \
+BRCM_PTHREADS              \
+BRCM_RELEASE               \
+BRCM_RELEASETAG            \
+BRCM_SNMP                  \
+BRCM_UCLIBC                \
+BRCM_VERSION               \
+BRCM_VODSL_DUAL_3341       \
+BRCM_VOICE_COUNTRY_JAPAN   \
+BRCM_VOICE_GLOBAL_CFLAGS   \
+BROADCOM_CFM_DIR           \
+BUILD_ADSLCTL              \
+BUILD_ATMCTL               \
+BUILD_AUTO_PROVISION_ON_WAN\
+BUILD_BR2684CTL            \
+BUILD_BRCM_VLAN            \
+BUILD_BRCTL                \
+BUILD_BUSYBOX              \
+BUILD_CERT                 \
+BUILD_CFM                  \
+BUILD_CFM_CLI              \
+BUILD_CFM_SSHD             \
+BUILD_CFM_TELNETD          \
+BUILD_DDNSD                \
+BUILD_DHCPR                \
+BUILD_DIAGAPP              \
+BUILD_DIR                  \
+BUILD_DNSPROBE             \
+BUILD_EBTABLES             \
+BUILD_EPITTCP              \
+BUILD_ETHWAN               \
+BUILD_FTPD                 \
+BUILD_GDBSERVER            \
+BUILD_HTTPC                \
+BUILD_IGMP                 \
+BUILD_IPPD                 \
+BUILD_IPSEC_TOOLS          \
+BUILD_IPTABLES             \
+BUILD_NAS                  \
+BUILD_NETCTL               \
+BUILD_NVRAM                \
+BUILD_PORT_MIRRORING      \
+BUILD_PPP_DOMAIN_SUFFIX    \
+BUILD_PPPD                 \
+BUILD_PVC2684CTL           \
+BUILD_REAIM                \
+BUILD_REMOVE_PPPOE_PASS_THROUGH \
+BUILD_RT2684D              \
+BUILD_SES                  \
+BUILD_SIPROXD              \
+BUILD_SLACTEST             \
+BUILD_SNMP                 \
+BUILD_SNTP                 \
+BUILD_SOAP                 \
+BUILD_SOAP_VER             \
+BUILD_SSHD_MIPS_GENKEY     \
+BUILD_SYS_ALG              \
+BUILD_SYS_SIP_ALG          \
+BUILD_SYS_VPN_ALG          \
+BUILD_TOD                  \
+BUILD_TR69C                \
+BUILD_TR69C_SSL            \
+BUILD_TR69_XBRCM           \
+BUILD_UDHCP                \
+BUILD_UPNP                 \
+BUILD_VCONFIG              \
+BUILD_VCONFIG              \
+BUILD_VODSL                \
+BUILD_WLCTL                \
+BUILD_ZEBRA                \
+BUSYBOX_DIR                \
+CC                         \
+CROSS_COMPILE              \
+CXX                        \
+DEFAULTCFG_DIR             \
+FSSRC_DIR                  \
+HOSTTOOLS_DIR              \
+INC_ADSLDRV_PATH           \
+INC_BRCMBOARDPARMS_PATH    \
+INC_BRCMCFM_PATH           \
+INC_BRCMDRIVER_PRIV_PATH   \
+INC_BRCMDRIVER_PUB_PATH    \
+INC_BRCMSHARED_PRIV_PATH   \
+INC_BRCMSHARED_PUB_PATH    \
+INC_FLASH_PATH             \
+INC_ENDPOINT_PATH          \
+INC_KERNEL_BASE            \
+INSTALL_DIR                \
+JTAG_KERNEL_DEBUG          \
+KERNEL_DIR                 \
+LD                         \
+LIBCDIR                    \
+LIBDIR                     \
+LIB_PATH                   \
+LINUXDIR                   \
+NM                         \
+OBJCOPY                    \
+OBJDUMP                    \
+PROFILE_DIR                \
+RANLIB                     \
+RUN_NOISE                  \
+SSTRIP                     \
+STRIP                      \
+TARGETS_DIR                \
+TOOLCHAIN                  \
+USERAPPS_DIR               \
+WEB_POPUP                  \
+XCHANGE_DIR                \
+XCHANGE_DSP_APP_EXTENSION  \
+VCOPE_TYPE                 \
+VCOPE_BOARD                \
+VCOPE_LINE_NUMBER          \
+DEFAULT_USB_PID            \
+BUILD_DPROXY            \
+
+#Start Andy porting from 3.02.02 (2006/05/23)
+export ODM_MULTI_LANG BUILD_STATIC_DNS BUILD_MTU_LAN_PPP BUILD_PPP_IPEXTENSION SUPPORT_XML_API SUPPORT_XML_API_FOR_NETGEAR
+export BUILD_DOMAIN_LOCK ODM_LANG_LLL BUILD_PPP_ALWAYS_RETRY BUILD_MERDEFAULT_GW BUILD_PPPDEFAULT_GW BRCM_DEFAULT_HOST_NAME
+export BRCM_KERNEL_DN_IPQOS BRCM_KERNEL_ATMQOS ODM_VOICE_QOS BUILD_MPD BUILD_PARTCONF BRCM_KERNEL_NF_NAT_ALG_SIP
+export STRIP_USERNAME_PASSWORD SIP_SUPPORT_VMWI SIP_SUPPORT_CFW SIP_SUPPORT_DNS_SRV_RR
+export SIP_SUPPORT_KEYPAD_EU SIP_SUPPORT_FLASHKEY_EU
+#End Andy porting from 3.02.02 (2006/05/23)
+export DISABLE_IGMP_SNOOPING_OPTION
+export BUILD_PRINTSERVER
+export BUILD_USER_ACCOUNT BUILD_USER_ACCOUNT_QSWV BUILD_USER_ACCOUNT_Q BUILD_USER_ACCOUNT_S BUILD_USER_ACCOUNT_W BUILD_USER_ACCOUNT_V \
+       BUILD_USER_ACCOUNT_QSW BUILD_USER_ACCOUNT_QSV BUILD_USER_ACCOUNT_SWV BUILD_USER_ACCOUNT_QWV BUILD_USER_ACCOUNT_QS \
+       BUILD_USER_ACCOUNT_QW BUILD_USER_ACCOUNT_QV BUILD_USER_ACCOUNT_SW BUILD_USER_ACCOUNT_SV BUILD_USER_ACCOUNT_WV
+
+export CONFIG_NET_SCH_CBQ CONFIG_NET_SCH_CSZ CONFIG_NET_SCH_HPFQ CONFIG_NET_SCH_HFCS CONFIG_NET_SCH_ATM \
+       CONFIG_NET_SCH_PRIO CONFIG_NET_SCH_RED CONFIG_NET_SCH_SFQ CONFIG_NET_SCH_TEQL CONFIG_NET_SCH_TBF \
+       CONFIG_NET_SCH_GRED CONFIG_NET_SCH_DSMARK CONFIG_NET_SCH_INGRESS CONFIG_NET_QOS CONFIG_NET_ESTIMATOR \
+       CONFIG_NET_CLS CONFIG_NET_CLS_TCINDEX CONFIG_NET_CLS_ROUTE4 CONFIG_NET_CLS_ROUTE CONFIG_NET_CLS_FW \
+       CONFIG_NET_CLS_U32 CONFIG_NET_CLS_RSVP CONFIG_NET_CLS_RSVP6 CONFIG_NET_CLS_POLICE ODM_LANG_NETGEAR \
+       IPTV_SUPPORT_FOR_TI BUILD_BLOCK_MULTICAST_FLOOD
+
+export BUILD_NSASOFT_TRAFFIC_EMULATOR
+export BUILD_AUTO_DETECT_DEFAULT_PVC SUPPORT_SERVICE_MODE
+export BUILD_POLICY_ROUTING BUILD_SUPPORT_PPPDBG_SYSLOG
+
+################################################################################################
 #
-###########################################    
-
-export  BRCM_VERSION BRCM_RELEASE BRCM_EXTRAVERSION BRCM_RELEASETAG BRCM_BOARD RUN_NOISE \
-       INC_KERNEL_BASE KERNEL_DIR BRCMDRIVERS_DIR USERAPPS_DIR HOSTTOOLS_DIR TARGETS_DIR DEFAULTCFG_DIR XCHANGE_DIR FSSRC_DIR BUSYBOX_DIR \
-       PROFILE_DIR INSTALL_DIR LINUXDIR INC_BRCMDRIVER_PUB_PATH INC_BRCMDRIVER_PRIV_PATH INC_BRCMBOARDPARMS_PATH INC_ENDPOINT_PATH INC_ADSLDRV_PATH BROADCOM_CFM_DIR INC_BRCMCFM_PATH BRCM_KERNEL_ROOTFS BRCMAPPS \
-       BRCM_UCLIBC CROSS_COMPILE TOOLCHAIN AS LD CC CXX AR NM STRIP SSTRIP OBJCOPY OBJDUMP RANLIB LIB_PATH LIBCDIR LIBDIR  \
-       BUILD_BR2684CTL BUILD_PVC2684CTL BUILD_RT2684D BUILD_BRCTL BUILD_CFM BUILD_CFM_CLI BUILD_IPTABLES BUILD_EBTABLES BUILD_VODSL BUILD_SIPROXD \
-       BRCM_APP_PHONE BUILD_SOAP BUILD_SOAP_VER BRCM_DSP_CODEC_G711 BRCM_DSP_CODEC_G723 BRCM_DSP_CODEC_G726 BRCM_DSP_CODEC_G729 \
-   BRCM_DSP_CODEC_G7xx BRCM_DSP_PCM BRCM_DSP_HYBRID BRCM_DSP_HYBRID_EXT BRCM_DSP_APM_FXO BRCM_DSP_APM_FXO_EXT BRCM_DSP_HYBRID_FXO \
-   BRCM_DSP_HYBRID_FXO_EXT BRCM_DSP_CODEC_T38_EXT BRCM_DSP_CODEC_T38_INT BRCM_DSP_HAL BRCM_DSP_HAL_EXTENSION  XCHANGE_DSP_APP_EXTENSION BRCM_VOICE_COUNTRY_JAPAN BRCM_VOICE_GLOBAL_CFLAGS \
-       BUILD_PPPD BUILD_REAIM BUILD_GDBSERVER BUILD_UDHCP BUILD_DHCPR BUILD_UPNP BUILD_SNMP BUILD_NAS BUILD_WLCTL BUILD_BUSYBOX BUILD_DNSPROBE BUILD_SLACTEST BUILD_VCONFIG BUILD_ETHWAN \
-       BUILD_ZEBRA BUILD_ATMCTL BUILD_ADSLCTL BUILD_NETCTL BUILD_IGMP BRCM_PTHREADS BUILD_DIAGAPP \
-       BUILD_CFM_TELNETD BUILD_CFM_SSHD BUILD_SSHD_MIPS_GENKEY BUILD_FTPD BRCM_DRIVER_PCI \
-       BRCM_PSI_VERSION WEB_POPUP BUILD_DIR BUILD_DDNSD BUILD_SNTP BUILD_TOD BUILD_IPPD BUILD_VCONFIG JTAG_KERNEL_DEBUG \
-       BUILD_EPITTCP BUILD_NVRAM BUILD_SES
+# VOIP releated exported variables
+# 
+################################################################################################
+export \
+ODM_VOIP_NO_RELAY                 \
+ODM_ONLY_G729_G711A               \
+ODM_SIP_HASH2NUMBER               \
+ODM_IGNORE_FMTP_MAP               \
+ODM_TELSTRA_APPROVAL              \
+ODM_RESERVE_OFF_HOOK              \
+ODM_SWITCH_PORT1_PORT2            \
+ODM_PSTN_ONLY_PORT1_NO_FXO        \
+BRCM_RETURN_ONE_CODEC               \
+BUILD_WAV2RTP                       \
+BUILD_SIP_REALM                     \
+FIND_TRANSACTION_WITHOUT_VIA_BRANCH \
+SIP_PROXY_FAIL_RECOVER              \
+SIP_RTP_MONITOR                     \
+SIP_MIN_SE_ENABLE                   \
+SIP_SESSION_TIMER_ENABLE            \
+VOIP_DIAL_MAP_TIMER                 \
+VOIP_INTER_DIGIT_TIMER