#**************************************************************************** # # Copyright (c) 2001, 2002, 2003, 2004 Broadcom Corporation # All Rights Reserved # No portions of this material may be reproduced in any form without the # written permission of: # Broadcom Corporation # 16251 Laguna Canyon Road # Irvine, California 92618 # All information contained in this document is Broadcom Corporation # company private, proprietary, and trade secret. # #**************************************************************************** # Top-level Makefile for all commengine xDSL platforms include version.make BRCM_RELEASETAG=$(BRCM_VERSION).$(BRCM_RELEASE)L.$(BRCM_EXTRAVERSION) ########################################### # # Define Basic Variables # ########################################### BUILD_DIR = $(shell pwd) KERNEL_VER = 2.6 ifeq ($(strip $(KERNEL_VER)),2.6) INC_KERNEL_BASE = $(BUILD_DIR)/kernel ORIGINAL_KERNEL = linuxmips.tar.bz2 endif KERNEL_DIR = $(INC_KERNEL_BASE)/linux BRCMDRIVERS_DIR = $(BUILD_DIR)/bcmdrivers USERAPPS_DIR = $(BUILD_DIR)/userapps LINUXDIR = $(INC_KERNEL_BASE)/linux HOSTTOOLS_DIR = $(BUILD_DIR)/hostTools IMAGES_DIR = $(BUILD_DIR)/images TARGETS_DIR = $(BUILD_DIR)/targets DEFAULTCFG_DIR = $(TARGETS_DIR)/defaultcfg XCHANGE_DIR = $(BUILD_DIR)/xChange FSSRC_DIR = $(TARGETS_DIR)/fs.src 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 ########################################### # # Import Build Profiles # ########################################### BRCM_BOARD=bcm963xx LAST_PROFILE=$(shell find targets -name vmlinux | sed -e "s?targets/??" -e "s?/.*??" -e "q") 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 ########################################### # # Define Toolchain # ########################################### ifeq ($(strip $(BRCM_UCLIBC)),y) NTC=1 ifeq ($(strip $(NTC)),1) TOOLCHAIN=/opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux-uclibc- else TOOLCHAIN=/opt/toolchains/uclibc CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-uclibc- endif else TOOLCHAIN=/usr/crossdev/mips CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux- endif AR = $(CROSS_COMPILE)ar AS = $(CROSS_COMPILE)as LD = $(CROSS_COMPILE)ld CC = $(CROSS_COMPILE)gcc CXX = $(CROSS_COMPILE)g++ CPP = $(CROSS_COMPILE)cpp NM = $(CROSS_COMPILE)nm STRIP = $(CROSS_COMPILE)strip SSTRIP = $(CROSS_COMPILE)sstrip OBJCOPY = $(CROSS_COMPILE)objcopy OBJDUMP = $(CROSS_COMPILE)objdump RANLIB = $(CROSS_COMPILE)ranlib LIB_PATH = $(TOOLCHAIN)/mips-linux/lib LIBDIR = $(TOOLCHAIN)/mips-linux/lib LIBCDIR = $(TOOLCHAIN)/mips-linux ########################################### # # Application-specific settings # ########################################### 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 = 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 INC_BRCMDRIVER_PUB_PATH=$(BRCMDRIVERS_DIR)/opensource/include INC_BRCMDRIVER_PRIV_PATH=$(BRCMDRIVERS_DIR)/broadcom/include INC_ENDPOINT_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/endpoint/bcm9$(BRCM_CHIP)/inc INC_ADSLDRV_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/adsl/impl1 BROADCOM_CFM_DIR=$(BROADCOM_DIR)/cfm INC_BRCMCFM_PATH=$(BROADCOM_CFM_DIR)/inc 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_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 := export XCHANGE_DSP_APP=$(BRCM_DSP_CODEC) ifeq ($(strip $(BRCM_DSP_PCM)),y) XCHANGE_DSP_APP := dspApp3341_tdm BRCM_DSP_HAL_EXTENSION := _pcm endif ifeq ($(strip $(BRCM_DSP_PCM_G726)),y) XCHANGE_DSP_APP := dspApp3341_tdm_g726 BRCM_DSP_HAL_EXTENSION := _pcm endif ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y) XCHANGE_DSP_APP := dspApp3341_tdm_t38 BRCM_DSP_HAL_EXTENSION := _pcm endif ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)),y) XCHANGE_DSP_APP := dspApp3341 BRCM_DSP_HAL_EXTENSION := _hybrid 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) 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_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 # # 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 # If no codec is selected, build G.711 load. # Any XCHANGE_BUILD_APP directory would be OK # because G.711 is included with all the voice DSP images. ifneq ($(strip $(BUILD_VODSL)),) ifeq ($(strip $(XCHANGE_DSP_APP)),) export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)gw export XCHANGE_DSP_APP=g711 endif endif 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 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 endif endif ifeq ($(strip $(BRCM_VODSL_DUAL_3341)),y) BRCM_RELEASETAG := $(BRCM_RELEASETAG).dual3341 endif #Set up ADSL standard export ADSL=$(BRCM_ADSL_STANDARD) #Set up ADSL_PHY_MODE {file | obj} 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 # ########################################### 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)/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)/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 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)/wlenablectrl \ $(BROADCOM_DIR)/voicectl \ $(BROADCOM_DIR)/atmctl \ $(BROADCOM_DIR)/adslctl \ $(BROADCOM_DIR)/autoprovisionlan \ $(BROADCOM_DIR)/netctl \ $(BROADCOM_DIR)/dnsprobe \ $(BROADCOM_DIR)/igmp \ $(BROADCOM_DIR)/dhcpr \ $(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)/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 = 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 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 = openssl $(BROADCOM_APPS) $(OPENSOURCE_APPS) $(TOOLCHAIN_UTIL_APPS) $(LIBC_OPTIMIZATION) all: sanity_check profile_check kernelbuild modbuild app hosttools buildimage menuconfig: @cd $(INC_KERNEL_BASE); \ if [ ! -e linux/CREDITS ]; then \ echo Untarring original Linux kernel source...; \ (tar xkfj $(ORIGINAL_KERNEL) 2> /dev/null || true); \ fi $(MAKE) -C $(KERNEL_DIR)/scripts/lxdialog HOSTCC=gcc $(CONFIG_SHELL) $(HOSTTOOLS_DIR)/scripts/Menuconfig $(TARGETS_DIR)/config.in sanity_check: @if [ "$(PROFILE)" = "" ]; then \ echo You need to specify build profile name from $(TARGETS_DIR) using 'make PROFILE=...'; exit 1; \ fi profile_check: @if [ "$(LAST_PROFILE)" != "" ] && [ "$(LAST_PROFILE)" != "$(PROFILE)" ]; then \ echo "The specified profile, $(PROFILE), differs from the last one built, $(LAST_PROFILE)."; \ echo "The entire image must be rebuilt."; \ read -p "Press ENTER to rebuild the entire image or CTRL-C to abort. " ; \ $(MAKE) PROFILE=$(LAST_PROFILE) clean; \ $(MAKE) PROFILE=$(PROFILE); \ echo "Ignore the make exit error, Error 1"; \ exit 1; \ fi $(KERNEL_DIR)/vmlinux: $(GENDEFCONFIG_CMD) $(PROFILE_PATH) cd $(KERNEL_DIR); \ cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config; \ $(MAKE) oldconfig; $(MAKE); $(MAKE) modules_install kernelbuild: ifeq ($(wildcard $(KERNEL_DIR)/vmlinux),) @cd $(INC_KERNEL_BASE); \ if [ ! -e linux/CREDITS ]; then \ echo Untarring original Linux kernel source...; \ (tar xkfj $(ORIGINAL_KERNEL) 2> /dev/null || true); \ fi $(GENDEFCONFIG_CMD) $(PROFILE_PATH) cd $(KERNEL_DIR); \ cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config; \ $(MAKE) oldconfig; $(MAKE) else cd $(KERNEL_DIR); $(MAKE) endif kernel: profile_check kernelbuild hosttools buildimage ifeq ($(strip $(VOXXXLOAD)),1) modbuild: touch_voice_files cd $(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install else modbuild: cd $(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install endif modules: profile_check modbuild hosttools buildimage app: profile_check prebuild $(BRCMAPPS) hosttools buildimage prebuild: mkdir -p $(INSTALL_DIR)/bin $(INSTALL_DIR)/lib # touch_voice_files doesn't clean up voice, just enables incremental build of voice code touch_voice_files: find bcmdrivers/broadcom/char/endpoint/ \( -name '*.o' -o -name '*.a' -o -name '*.lib' -o -name '*.ko' -o -name '*.cmd' -o -name '.*.cmd' -o -name '*.c' -o -name '*.mod' \) -print -exec rm -f "{}" ";" rm -rf kernel/linux/.tmp_versions/endpointdd.mod rm -rf kernel/linux/arch/mips/defconfig rm -rf kernel/linux/include/config/bcm/endpoint/ rm -rf kernel/linux/include/asm-mips/offset.h rm -rf kernel/linux/include/asm-mips/reg.h find kernel/linux/lib/ -name '*.o' -print -exec rm -f "{}" ";" find kernel/linux/lib/ -name '*.lib' -print -exec rm -f "{}" ";" # Build user applications depending on if they are # specified in the profile ifneq ($(strip $(BUILD_PVC2684CTL)),) export BUILD_PVC2684D=$(BUILD_PVC2684CTL) pvc2684d: pvc2684ctl: $(MAKE) -C $(OPENSOURCE_DIR)/atm2684/pvc2684ctl $(BUILD_PVC2684CTL) else pvc2684d: pvc2684ctl: endif ifneq ($(strip $(BUILD_BRCTL)),) brctl: cd $(OPENSOURCE_DIR); (tar xkfj bridge-utils.tar.bz2 2> /dev/null || true) $(MAKE) -C $(OPENSOURCE_DIR)/bridge-utils $(BUILD_BRCTL) else brctl: endif ifneq ($(strip $(BUILD_VCONFIG)),) export BUILD_VCONFIG=y endif ifneq ($(strip $(BUILD_CFM)),) ifneq ($(strip $(BUILD_CFM_MENU)),) 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: endif # iptables is dependent on kernel netfilter modules ifneq ($(strip $(BRCM_KERNEL_NETFILTER)),) ifneq ($(strip $(BUILD_IPTABLES)),) iptables: cd $(OPENSOURCE_DIR); (tar xkfj iptables.tar.bz2 2> /dev/null || true) $(MAKE) -C $(OPENSOURCE_DIR)/iptables $(BUILD_IPTABLES) iptables-build: cd $(OPENSOURCE_DIR); (tar xkfj iptables.tar.bz2 2> /dev/null || true) $(MAKE) -C $(OPENSOURCE_DIR)/iptables static else iptables: endif else iptables: @echo Warning: You need to enable netfilter in the kernel !!!!! endif ifneq ($(strip $(BUILD_EBTABLES)),) ebtables: cd $(OPENSOURCE_DIR); (tar xkfj ebtables.tar.bz2 2> /dev/null || true) $(MAKE) -C $(OPENSOURCE_DIR)/ebtables $(BUILD_EBTABLES) else ebtables: endif ifneq ($(strip $(BUILD_PPPD)),) pppd: $(MAKE) -C $(OPENSOURCE_DIR)/ppp/pppoe $(BUILD_PPPD) else pppd: endif ifneq ($(strip $(BUILD_REAIM)),) reaim: cd $(OPENSOURCE_DIR); (tar xkfj reaim.tar.bz2 2> /dev/null || true) $(MAKE) -C $(OPENSOURCE_DIR)/reaim $(BUILD_REAIM) 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: install -m 755 $(TOOLCHAIN)/mips-linux-uclibc/target-apps/usr/bin/gdbserver $(INSTALL_DIR)/bin $(STRIP) $(INSTALL_DIR)/bin/gdbserver else gdbserver: endif ifneq ($(strip $(BUILD_ETHWAN)),) export BUILD_ETHWAN=y endif ifneq ($(strip $(BUILD_UDHCP)),) udhcp: $(MAKE) -C $(OPENSOURCE_DIR)/udhcp $(BUILD_UDHCP) else udhcp: endif # UPNP is dependent on iptables ifneq ($(strip $(BUILD_IPTABLES)),) ifneq ($(strip $(BUILD_UPNP)),) upnp: iptables-build $(MAKE) -C $(BROADCOM_DIR)/upnp/router/upnp $(BUILD_UPNP) else upnp: endif else 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 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 SNMP_SET=1 else export SNMP_SET=0 endif ifneq ($(strip $(BUILD_SNMP_ADSL_MIB)),) export SNMP_ADSL_MIB=1 else export SNMP_ADSL_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_ATM_MIB)),) export SNMP_ATM_MIB=1 else export SNMP_ATM_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_AT_MIB)),) export SNMP_AT_MIB=1 else export SNMP_AT_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_SYSOR_MIB)),) export SNMP_SYSOR_MIB=1 else export SNMP_SYSOR_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_TCP_MIB)),) export SNMP_TCP_MIB=1 else export SNMP_TCP_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_UDP_MIB)),) export SNMP_UDP_MIB=1 else export SNMP_UDP_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_IP_MIB)),) export SNMP_IP_MIB=1 else export SNMP_IP_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_ICMP_MIB)),) export SNMP_ICMP_MIB=1 else export SNMP_ICMP_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_SNMP_MIB)),) export SNMP_SNMP_MIB=1 else export SNMP_SNMP_MIB=0 endif ifneq ($(strip $(BUILD_SNMP_ATMFORUM_MIB)),) export SNMP_ATMFORUM_MIB=1 else 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) $(MAKE) -C $(BROADCOM_DIR)/ilmi $(BUILD_ILMI) else ilmi: endif 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 ifneq ($(strip $(BUILD_SOAP)),) ifeq ($(strip $(BUILD_SOAP_VER)),2) soapserver: $(MAKE) -C $(BROADCOM_DIR)/SoapToolkit/SoapServer $(BUILD_SOAP) else soap: $(MAKE) -C $(BROADCOM_DIR)/soap $(BUILD_SOAP) endif else soap: 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: #add hotplug here, for nas use only hotplug: 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 ifneq ($(strip $(BUILD_DNSPROBE)),) dnsprobe: $(MAKE) -C $(BROADCOM_DIR)/dnsprobe $(BUILD_DNSPROBE) else dnsprobe: endif ifneq ($(strip $(BUILD_IGMP)),) igmp: $(MAKE) -C $(BROADCOM_DIR)/igmp $(BUILD_IGMP) else igmp: endif ifneq ($(strip $(BUILD_DHCPR)),) dhcpr: $(MAKE) -C $(BROADCOM_DIR)/dhcpr $(BUILD_DHCPR) else dhcpr: endif ifneq ($(strip $(BUILD_ZEBRA)),) zebra: cd $(OPENSOURCE_DIR); (tar xkfj zebra.tar.bz2 2> /dev/null || true) $(MAKE) -C $(OPENSOURCE_DIR)/zebra $(BUILD_ZEBRA) 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) else atmctl: endif ifneq ($(strip $(BUILD_ADSLCTL)),) adslctl: $(MAKE) -C $(BROADCOM_DIR)/adslctl $(BUILD_ADSLCTL) else adslctl: endif ifeq ($(strip $(BUILD_CFM_CLI)),y) ifneq ($(strip $(BUILD_NETCTL)),) netctl: $(MAKE) -C $(BROADCOM_DIR)/netctl $(BUILD_NETCTL) else netctl: endif else netctl: endif ifneq ($(strip $(BUILD_BUSYBOX)),) busybox: cd $(OPENSOURCE_DIR); (tar xkfj busybox.tar.bz2 2> /dev/null || true) # $(MAKE) -C $(OPENSOURCE_DIR)/busybox $(BUILD_BUSYBOX) cd $(OPENSOURCE_DIR)/busybox; cp -f brcm.config .config $(MAKE) -C $(OPENSOURCE_DIR)/busybox install else busybox: endif ifneq ($(strip $(BUILD_LIBCREDUCTION)),) libcreduction: $(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) else diagapp: endif ifneq ($(strip $(BUILD_FTPD)),) bftpd: cd $(OPENSOURCE_DIR); (tar xkfj ftpd.tar.bz2 2> /dev/null || true) $(MAKE) -C $(OPENSOURCE_DIR)/ftpd $(BUILD_FTPD) 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) else ddnsd: endif ifneq ($(strip $(BUILD_SNTP)),) sntp: $(MAKE) -C $(BROADCOM_DIR)/sntp $(BUILD_SNTP) else sntp: endif ifneq ($(strip $(ODM_CFESETUP)),) cfesetup: $(MAKE) -C $(BROADCOM_DIR)/cfesetup all else cfesetup: endif ifneq ($(strip $(BUILD_IPPD)),) ippd: $(MAKE) -C $(BROADCOM_DIR)/ippd $(BUILD_IPPD) else ippd: endif # Start: Andy porting from 2.21.5, 2005/04/14 ifneq ($(strip $(BUILD_DPROXY)),) dproxy: $(MAKE) -C $(OPENSOURCE_DIR)/dproxy $(BUILD_DPROXY) else dproxy: endif # End: Andy porting from 2.21.5, 2005/04/14 #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 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 else ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),cramfs) # $(HOSTTOOLS_DIR)/mkcramfs -r -g $(TARGET_FS) $(PROFILE_DIR)/rootfs.img $(HOSTTOOLS_DIR)/mkcramfs -r $(TARGET_FS) $(PROFILE_DIR)/rootfs.img else ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),jffs2) $(HOSTTOOLS_DIR)/mkfs.jffs2 -b -p -e $(BRCM_FLASHBLK_SIZE) -r $(TARGET_FS) -o $(PROFILE_DIR)/rootfs.img endif endif endif ifneq ($(strip $(BRCM_KERNEL_ROOTFS)),nfs) cd $(PROFILE_DIR); \ cp $(KERNEL_DIR)/vmlinux . ; \ $(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) --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 . ; \ $(STRIP) --remove-section=.note --remove-section=.comment vmlinux @echo @echo -e "\t=== Following the below steps to start your NFS root file system on host ===" @echo -e "Step 1: Copy $(PROFILE_DIR)/vmlinux to your TFTP server boot directory, such as /tftpboot" @echo -e "Step 2: Add \"$(PROFILE_DIR)/fs *(rw,no_root_squash)\" to /etc/exports" @echo -e "Step 3: Become root and restart your nfs server, such as \"service nfs restart\"" @echo -e "Step 4: Reboot your board and break into CFE bootloader, choose h on \"Run from flash/host\" and vmlinux on \"Default host run file name\"" 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 remove_6510_support rm -f .tmpconfig* fssrc_clean: rm -fr $(INSTALL_DIR)/bin rm -fr $(INSTALL_DIR)/sbin rm -fr $(INSTALL_DIR)/lib rm -fr $(INSTALL_DIR)/upnp rm -fr $(INSTALL_DIR)/webs rm -fr $(INSTALL_DIR)/usr rm -fr $(INSTALL_DIR)/linuxrc 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 app_clean: sanity_check fssrc_clean $(MAKE) subdirs TGT=clean rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxUser rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxUser target_clean: sanity_check fssrc_clean rm -f $(PROFILE_DIR)/rootfs.img rm -f $(PROFILE_DIR)/vmlinux rm -f $(PROFILE_DIR)/vmlinux.bin rm -f $(PROFILE_DIR)/vmlinux.lz rm -f $(PROFILE_DIR)/$(FS_KERNEL_IMAGE_NAME) 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 ################################################################################################ # # 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