1 #****************************************************************************
3 # Copyright (c) 2001, 2002, 2003, 2004 Broadcom Corporation
5 # No portions of this material may be reproduced in any form without the
6 # written permission of:
8 # 16251 Laguna Canyon Road
9 # Irvine, California 92618
10 # All information contained in this document is Broadcom Corporation
11 # company private, proprietary, and trade secret.
13 #****************************************************************************
15 # Top-level Makefile for all commengine xDSL platforms
19 BRCM_RELEASETAG=$(BRCM_VERSION).$(BRCM_RELEASE)L.$(BRCM_EXTRAVERSION)
22 ###########################################
24 # Define Basic Variables
26 ###########################################
27 BUILD_DIR = $(shell pwd)
29 ifeq ($(strip $(KERNEL_VER)),2.6)
30 INC_KERNEL_BASE = $(BUILD_DIR)/kernel
31 ORIGINAL_KERNEL = linuxmips.tar.bz2
33 KERNEL_DIR = $(INC_KERNEL_BASE)/linux
34 BRCMDRIVERS_DIR = $(BUILD_DIR)/bcmdrivers
35 USERAPPS_DIR = $(BUILD_DIR)/userapps
36 LINUXDIR = $(INC_KERNEL_BASE)/linux
37 HOSTTOOLS_DIR = $(BUILD_DIR)/hostTools
38 IMAGES_DIR = $(BUILD_DIR)/images
39 TARGETS_DIR = $(BUILD_DIR)/targets
40 DEFAULTCFG_DIR = $(TARGETS_DIR)/defaultcfg
41 XCHANGE_DIR = $(BUILD_DIR)/xChange
42 FSSRC_DIR = $(TARGETS_DIR)/fs.src
43 BRCM_MODEL_NAME=$(PROFILE)
44 CFE_FILE = $(TARGETS_DIR)/cfe/cfe6338_reset_192_168_0_1.bin
45 SHARED_DIR = $(BUILD_DIR)/shared
46 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
47 else if [ -x /bin/bash ]; then echo /bin/bash; \
48 else echo sh; fi ; fi)
49 GENDEFCONFIG_CMD = $(HOSTTOOLS_DIR)/scripts/gendefconfig
51 6510_REF_CODE=$(BUILD_DIR)/userapps/broadcom/6510refCode
53 ###########################################
55 # Import Build Profiles
57 ###########################################
59 LAST_PROFILE=$(shell find targets -name vmlinux | sed -e "s?targets/??" -e "s?/.*??" -e "q")
60 ifeq ($(strip $(PROFILE)),)
61 PROFILE=$(LAST_PROFILE)
65 ifneq ($(strip $(PROFILE)),)
66 include $(TARGETS_DIR)/$(PROFILE)/$(PROFILE)
68 export BRCM_SDRAM_SIZE
69 export BRCM_FLASH_SIZE
70 export BRCM_FLASHPSI_SIZE
71 export BRCM_MODEL_NAME
72 export BRCM_DRIVER_WIRELESS_PCMCIA_DATASWAP BRCM_DRIVER_WIRELESS_EBI_DMA
73 export BRCM_DRIVER_USB BRCM_DRIVER_ETHERNET_CONFIG
74 export BRCM_DEFAULTCFG
75 export BRCM_KERNEL_NF_FIREWALL BRCM_KERNEL_NF_MANGLE BRCM_KERNEL_NF_NAT
76 export ODM_CFG_NO_BLOCK_DEVICE
79 ###########################################
83 ###########################################
84 ifeq ($(strip $(BRCM_UCLIBC)),y)
86 ifeq ($(strip $(NTC)),1)
87 TOOLCHAIN=/opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502
88 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux-uclibc-
90 TOOLCHAIN=/opt/toolchains/uclibc
91 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-uclibc-
94 TOOLCHAIN=/usr/crossdev/mips
95 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux-
100 AR = $(CROSS_COMPILE)ar
101 AS = $(CROSS_COMPILE)as
102 LD = $(CROSS_COMPILE)ld
103 CC = $(CROSS_COMPILE)gcc
104 CXX = $(CROSS_COMPILE)g++
105 CPP = $(CROSS_COMPILE)cpp
106 NM = $(CROSS_COMPILE)nm
107 STRIP = $(CROSS_COMPILE)strip
108 SSTRIP = $(CROSS_COMPILE)sstrip
109 OBJCOPY = $(CROSS_COMPILE)objcopy
110 OBJDUMP = $(CROSS_COMPILE)objdump
111 RANLIB = $(CROSS_COMPILE)ranlib
113 LIB_PATH = $(TOOLCHAIN)/mips-linux/lib
114 LIBDIR = $(TOOLCHAIN)/mips-linux/lib
115 LIBCDIR = $(TOOLCHAIN)/mips-linux
117 ###########################################
119 # Application-specific settings
121 ###########################################
122 INSTALL_DIR = $(TARGETS_DIR)/fs.src
123 TARGET_FS = $(TARGETS_DIR)/$(PROFILE)/fs
124 TARGET_FS2 = $(TARGETS_DIR)/$(PROFILE)/fs2
125 PROFILE_DIR = $(TARGETS_DIR)/$(PROFILE)
126 PROFILE_PATH = $(TARGETS_DIR)/$(PROFILE)/$(PROFILE)
128 FS_KERNEL_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_fs_kernel
129 CFE_FS_KERNEL_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_cfe_fs_kernel
130 FLASH_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_flash_image
131 INC_BRCMDRIVER_PUB_PATH=$(BRCMDRIVERS_DIR)/opensource/include
132 INC_BRCMDRIVER_PRIV_PATH=$(BRCMDRIVERS_DIR)/broadcom/include
133 INC_ENDPOINT_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/endpoint/bcm9$(BRCM_CHIP)/inc
134 INC_ADSLDRV_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/adsl/impl1
135 BROADCOM_CFM_DIR=$(BROADCOM_DIR)/cfm
136 INC_BRCMCFM_PATH=$(BROADCOM_CFM_DIR)/inc
137 INC_BRCMSHARED_PUB_PATH=$(SHARED_DIR)/opensource/include
138 INC_BRCMSHARED_PRIV_PATH=$(SHARED_DIR)/broadcom/include
139 INC_BRCMBOARDPARMS_PATH=$(SHARED_DIR)/opensource/boardparms
140 INC_FLASH_PATH=$(SHARED_DIR)/opensource/flash
142 # Michael: this save current config to default config should be enable for every model
143 export BRCM_CFG_XFER_TO_FACDEFLT=y
146 ifeq ($(strip $(BRCM_PROFILER_ENABLED)),y)
147 export BRCM_PROFILER_TOOL=1
149 export BRCM_PROFILER_TOOL=0
152 ifneq ($(strip $(BUILD_VODSL)),)
156 ifeq ($(strip $(BRCM_VODSL_STUNC)),y)
157 export BRCM_VODSL_STUN_CLIENT=1
160 ifeq ($(strip $(BRCM_VODSL_RANDOMP)),y)
161 export BRCM_VODSL_RANDOM_PORT=1
165 BRCM_DSP_HAL_EXTENSION :=
166 XCHANGE_DSP_APP_EXTENSION :=
167 export XCHANGE_DSP_APP=$(BRCM_DSP_CODEC)
169 ifeq ($(strip $(BRCM_DSP_PCM)),y)
170 XCHANGE_DSP_APP := dspApp3341_tdm
171 BRCM_DSP_HAL_EXTENSION := _pcm
174 ifeq ($(strip $(BRCM_DSP_PCM_G726)),y)
175 XCHANGE_DSP_APP := dspApp3341_tdm_g726
176 BRCM_DSP_HAL_EXTENSION := _pcm
179 ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y)
180 XCHANGE_DSP_APP := dspApp3341_tdm_t38
181 BRCM_DSP_HAL_EXTENSION := _pcm
184 ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)),y)
185 XCHANGE_DSP_APP := dspApp3341
186 BRCM_DSP_HAL_EXTENSION := _hybrid
187 XCHANGE_DSP_APP_EXTENSION := _fxo_ext
190 ifeq ($(strip $(BUILD_VDSL)),y)
193 ifneq ($(strip $(CPE_ANNEX_B)),)
194 CPE_MODEM="cpe_annex_b.bin"
196 CPE_MODEM="cpe_annex_a.bin"
198 ifeq ($(strip $(VCOPE_TYPE)),CO)
199 VMODEM_BIN="co_modem.bin"
201 ifeq ($(strip $(VCOPE_TYPE)),CPE)
202 VMODEM_BIN=$(CPE_MODEM)
208 # Warning here, we do re-assign some of the variables defined earlier:
209 # BRCM_DSP_HAL and BRCM_DSP_HAL_EXTENSION for example, in order to pickup
210 # the correct board HAL application.
214 ifeq ($(strip $(BRCM_SLIC_LE9502)),y)
215 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9502
216 BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9502
217 BRCM_DSP_HAL := _Le9502
218 BRCM_DSP_HAL_EXTENSION :=
219 export BRCM_SLIC_LE9502
223 ifeq ($(strip $(BRCM_DSP_FXO)),y)
224 ifeq ($(strip $(BRCM_SLIC_LE9502)),y)
225 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9502FXO
226 BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9502
227 BRCM_DSP_HAL := _Le9502FXO
228 BRCM_DSP_HAL_EXTENSION :=
229 export BRCM_SLIC_LE9502
231 ifeq ($(strip $(BRCM_SLIC_LE9500)),y)
232 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9500FXO
233 BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9500
234 BRCM_DSP_HAL := _Le9500FXO
235 BRCM_DSP_HAL_EXTENSION :=
236 export BRCM_SLIC_LE9500
243 # DSP codec flags definition. To be used throughout the application (for configuration and vodsl)
246 BRCM_DSP_CODEC_DEFINES := -DXCFG_G711_SUPPORT=1
248 ifeq ($(strip $(BRCM_DSP_CODEC_G723)),y)
249 BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
252 ifeq ($(strip $(BRCM_DSP_CODEC_G726)),y)
253 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
256 ifeq ($(strip $(BRCM_DSP_CODEC_G729)),y)
257 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
260 ifeq ($(strip $(BRCM_DSP_CODEC_G7xx)),y)
261 BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
262 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
263 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
266 ifeq ($(strip $(BRCM_DSP_PCM)),y)
267 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
270 ifeq ($(strip $(BRCM_DSP_PCM_G726)),y)
271 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
272 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
275 ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y)
276 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
279 ifeq ($(strip $(BRCM_DSP_CODEC_T38_EXT)),y)
280 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
281 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
282 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
285 ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)),y)
286 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
287 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
288 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
291 ifeq ($(strip $(BRCM_DSP_CODEC)),all)
292 BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
293 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
294 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
295 BRCM_DSP_CODEC_DEFINES += -DXCFG_BV16_SUPPORT=1
296 BRCM_DSP_CODEC_DEFINES += -DXCFG_ILBC_SUPPORT=1
297 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
302 # Definition of the number of voice channels supported based on the specific
303 # application being created.
306 ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)), y)
307 BRCM_DSP_CHAN_DEFINES = -DNUM_APM_VOICE_CHANNELS=2 -DNUM_TDM_VOICE_CHANNELS=0 -DNUM_FXO_CHANNELS=1
309 BRCM_DSP_CHAN_DEFINES = -DNUM_APM_VOICE_CHANNELS=0 -DNUM_TDM_VOICE_CHANNELS=0 -DNUM_FXO_CHANNELS=0
312 export BRCM_DSP_CODEC_DEFINES
313 export BRCM_DSP_CHAN_DEFINES
316 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)$(BRCM_DSP_HAL)$(BRCM_DSP_HAL_EXTENSION)
317 export XCHANGE_DSP_APP_EXTENSION
318 export BRCM_DSP_HAL_EXTENSION
320 # If no codec is selected, build G.711 load.
321 # Any XCHANGE_BUILD_APP directory would be OK
322 # because G.711 is included with all the voice DSP images.
323 ifneq ($(strip $(BUILD_VODSL)),)
324 ifeq ($(strip $(XCHANGE_DSP_APP)),)
325 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)gw
326 export XCHANGE_DSP_APP=g711
329 BRCM_RELEASETAG := $(BRCM_RELEASETAG).$(XCHANGE_DSP_APP)
331 ifeq ($(strip $(BRCM_CHIP)),6358)
332 ifeq ($(strip $(BRCM_6358_G729_FXO)),y)
333 BRCM_DSP_HAL := vw_fxo
334 BRCM_DSP_CHAN_DEFINES = -DNUM_FXO_CHANNELS=1
335 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
336 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
337 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
338 export BRCM_6358_G729_FXO
339 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw_fxo
340 export BRCM_DSP_CODEC_DEFINES
342 ifeq ($(strip $(BRCM_6358_G729_4FXS)),y)
343 BRCM_DSP_HAL := vw_4fxs
344 export BRCM_6358_G729_4FXS
345 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw_4fxs
347 ifeq ($(strip $(BRCM_6358_G729_2FXS_LEGERITY)),y)
348 BRCM_DSP_HAL := vw_legerity
349 export BRCM_6358_G729_2FXS_LEGERITY
350 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw_legerity
352 ifeq ($(strip $(BRCM_6358_G729_FXO_LEGERITY)),y)
353 BRCM_DSP_HAL := vw_fxo_legerity
354 BRCM_DSP_CHAN_DEFINES = -DNUM_FXO_CHANNELS=1
355 export BRCM_6358_G729_FXO_LEGERITY
356 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw_fxo_legerity
359 export BRCM_6358_G729
360 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw
367 ifeq ($(strip $(BRCM_VODSL_DUAL_3341)),y)
368 BRCM_RELEASETAG := $(BRCM_RELEASETAG).dual3341
371 #Set up ADSL standard
372 export ADSL=$(BRCM_ADSL_STANDARD)
374 #Set up ADSL_PHY_MODE {file | obj}
375 export ADSL_PHY_MODE=file
377 #Set up ADSL_SELF_TEST
378 export ADSL_SELF_TEST=$(BRCM_ADSL_SELF_TEST)
380 #Set up ADSL_PLN_TEST
381 export ADSL_PLN_TEST=$(BUILD_TR69_XBRCM)
384 ifneq ($(strip $(BUILD_MIMO)),)
391 #export compile option
392 #Set up ADSL supporting line modes
393 export BRCM_DSL_MODE_GDMT
394 export BRCM_DSL_MODE_GLITE
395 export BRCM_DSL_MODE_T1413
396 export BRCM_DSL_MODE_ADSL2
397 export BRCM_DSL_MODE_READSL2
398 export BRCM_DSL_MODE_ADSL2PLUS
399 export BRCM_DSL_MODE_ANNEXM
400 export BRCM_DSL_MODE_BITSWAP
401 export BRCM_DSL_MODE_SRA
404 export ADSL_VERSION=$(BRCM_ADSL_VERSION)
406 export DSL_START_IN_KERNEL
407 export WAN_LED_BLINKING
408 export CHT_PPP_AS_WAN_LED
409 export ODM_PPP_AS_PSTN_LED
411 export Comtest_Lab_Only
412 export Impulse_Test_Telestra_Approval
413 export POWER_SAVING_DG
414 export CHT_OAM_RES_WAIT_TIME_6
417 export DEFAULT_WLAN_SSID=$(BRCM_Default_WLAN_SSID)
418 export DEFAULT_WLAN_ESSID
419 export BACKUP_WLAN_SPROM=$(BRCM_BACKUP_SPROM_4306)
420 export DEFAULT_WLAN_WEP128
421 export DEFAULT_WLAN_FRAMEBURST
422 export DEFAULT_WLAN_AFTERBURNER
423 export WIRELESS_MAIN_ANTENNA
424 export WIRELESS_AUX_ANTENNA
425 export WIRELESS_AUTO_ANTENNA
426 export COUNTRY_ISRAEL
427 export WLAN_ENABLE_CTRL_BUTTON
428 export WLAN_DISABLE_FEM
431 export DAA_OFFHOOK_CMD
432 export CONFIG_ATM_EOP_MONITORING
433 export VOICE_SYS_CLOCK_50MHZ
437 export NEWZEALAND_FXO
442 #Use chipId to decide what the ADSL config option on html
443 export CHIP_ADSL_VERSION=$(BRCM_ADSL_DRIVER)
445 ###########################################
447 # Complete list of applications
449 ###########################################
450 export OPENSOURCE_DIR=$(USERAPPS_DIR)/opensource
451 SUBDIRS_OPENSOURCE = $(OPENSOURCE_DIR)/atm2684/pvc2684ctl \
452 $(OPENSOURCE_DIR)/openssl \
453 $(OPENSOURCE_DIR)/ipsec-tools \
454 $(OPENSOURCE_DIR)/bridge-utils \
455 $(OPENSOURCE_DIR)/ppp/pppoe \
456 $(OPENSOURCE_DIR)/udhcp \
457 $(OPENSOURCE_DIR)/iptables \
458 $(OPENSOURCE_DIR)/ebtables \
459 $(OPENSOURCE_DIR)/reaim \
460 $(OPENSOURCE_DIR)/iproute2 \
461 $(OPENSOURCE_DIR)/libosip2 \
462 $(OPENSOURCE_DIR)/siproxd \
463 $(OPENSOURCE_DIR)/zebra \
464 $(OPENSOURCE_DIR)/net-snmp \
465 $(OPENSOURCE_DIR)/ftpd \
466 $(OPENSOURCE_DIR)/libcreduction \
467 $(OPENSOURCE_DIR)/busybox \
468 $(OPENSOURCE_DIR)/dproxy \
469 $(OPENSOURCE_DIR)/lpd \
470 $(OPENSOURCE_DIR)/httpc \
471 $(OPENSOURCE_DIR)/mpd
473 # Start Andy porting from 3.02.02, 2006/05/23
474 export BROADCOM_DIR=$(USERAPPS_DIR)/broadcom
476 NEED_CHG_ACCESSREMOTE = "0"
477 ifneq ($(strip $(BRCM_LANG_EN)),)
478 NEED_CHG_ACCESSREMOTE = "1"
480 HTML_DIR = $(BROADCOM_DIR)/cfm/html
485 export HTML_DIR NEED_MOVE NEED_CHG_ACCESSREMOTE NEED_MOVE_CH
486 export LOGO_DIR = $(BROADCOM_DIR)/cfm/logo
487 export WEB_LOGO_CHOICE = $(BRCM_WEB_LOGO_CHOICE)
488 # End Andy porting from 3.02.02, 2006/05/23
490 #In future, we need to add soap when it
491 #is decoupled from cli
493 export BROADCOM_DIR=$(USERAPPS_DIR)/broadcom
494 SUBDIRS_BROADCOM = $(BROADCOM_DIR)/nvram \
495 $(BROADCOM_DIR)/cfm \
496 $(BROADCOM_DIR)/cfesetup \
497 $(BROADCOM_DIR)/upnp/router/upnp \
498 $(BROADCOM_DIR)/nas \
499 $(BROADCOM_DIR)/wlctl \
500 $(BROADCOM_DIR)/wlenablectrl \
501 $(BROADCOM_DIR)/voicectl \
502 $(BROADCOM_DIR)/atmctl \
503 $(BROADCOM_DIR)/adslctl \
504 $(BROADCOM_DIR)/autoprovisionlan \
505 $(BROADCOM_DIR)/netctl \
506 $(BROADCOM_DIR)/dnsprobe \
507 $(BROADCOM_DIR)/igmp \
508 $(BROADCOM_DIR)/dhcpr \
509 $(BROADCOM_DIR)/sntp \
510 $(BROADCOM_DIR)/ippd \
511 $(BROADCOM_DIR)/ddnsd \
512 $(BROADCOM_DIR)/iappd \
513 $(BROADCOM_DIR)/ethctl \
514 $(BROADCOM_DIR)/hotplug \
515 $(BROADCOM_DIR)/wav2rtp \
516 $(BROADCOM_DIR)/epittcp \
517 $(BROADCOM_DIR)/snmp \
518 $(BROADCOM_DIR)/tr69c \
519 $(BROADCOM_DIR)/ses \
520 $(BROADCOM_DIR)/relayCtl \
521 $(BROADCOM_DIR)/vdslctl \
522 $(BROADCOM_DIR)/hostCode
524 SUBDIRS_APP = $(SUBDIRS_BROADCOM) $(SUBDIRS_OPENSOURCE)
525 SUBDIRS = $(foreach dir, $(SUBDIRS_APP), $(shell if [ -d "$(dir)" ]; then echo $(dir); fi))
527 OPENSOURCE_APPS = ipsec-tools pvc2684ctl pvc2684d brctl pppd udhcp iptables ebtables mpd \
528 reaim libosip2 siproxd snmp zebra bftpd busybox dproxy iproute2 httpc lpd
530 BROADCOM_APPS = nvram cfesetup cfm upnp nas wlctl wlenablectrl voicectl atmctl adslctl netctl dnsprobe wav2rtp \
531 igmp dhcpr diagapp sntp ddnsd ilmi ippd hotplug ethctl epittcp snmp ses \
532 hmi2proxy relayctl vdslctl autoprovisionlan iappd
534 ifneq ($(findstring rvsip,$(BRCM_APP_PHONE)),)
535 SUBDIRS_BROADCOM += $(BROADCOM_DIR)/rvsip
536 BROADCOM_APPS += rvsip
538 ifneq ($(strip $(BUILD_VODSL)),)
539 SUBDIRS_BROADCOM += $(BROADCOM_DIR)/vodsl
540 BROADCOM_APPS += vodsl
544 ifneq ($(strip $(BUILD_SIGNATURE)),)
545 export BUILD_SIGNATURE
548 ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
549 export BUILD_SIGNATURE_RSA
552 LIBC_OPTIMIZATION = libcreduction
554 ifneq ($(strip $(BUILD_GDBSERVER)),)
555 TOOLCHAIN_UTIL_APPS = gdbserver
558 ifneq ($(strip $(BUILD_PPP_AUTH_LIMIT)),)
559 export BUILD_PPP_AUTH_LIMIT
562 # Start Andy porting from 3.02.02 (2006/05/23)
563 ifneq ($(strip $(ODM_MULTI_LANG)),)
564 ifneq ($(strip $(MULTI_LANG_EN)),)
565 export MULTI_LANG_EN=y
567 ifneq ($(strip $(MULTI_LANG_DE)),)
568 export MULTI_LANG_DE=y
570 ifneq ($(strip $(MULTI_LANG_TR)),)
571 export MULTI_LANG_TR=y
574 # End Andy porting from 3.02.02 (2006/05/23)
576 BUSYBOX_DIR = $(OPENSOURCE_DIR)/busybox
578 BRCMAPPS = openssl $(BROADCOM_APPS) $(OPENSOURCE_APPS) $(TOOLCHAIN_UTIL_APPS) $(LIBC_OPTIMIZATION)
580 all: sanity_check profile_check kernelbuild modbuild app hosttools buildimage
583 @cd $(INC_KERNEL_BASE); \
584 if [ ! -e linux/CREDITS ]; then \
585 echo Untarring original Linux kernel source...; \
586 (tar xkfj $(ORIGINAL_KERNEL) 2> /dev/null || true); \
588 $(MAKE) -C $(KERNEL_DIR)/scripts/lxdialog HOSTCC=gcc
589 $(CONFIG_SHELL) $(HOSTTOOLS_DIR)/scripts/Menuconfig $(TARGETS_DIR)/config.in
592 @if [ "$(PROFILE)" = "" ]; then \
593 echo You need to specify build profile name from $(TARGETS_DIR) using 'make PROFILE=<profile name>...'; exit 1; \
597 @if [ "$(LAST_PROFILE)" != "" ] && [ "$(LAST_PROFILE)" != "$(PROFILE)" ]; then \
598 echo "The specified profile, $(PROFILE), differs from the last one built, $(LAST_PROFILE)."; \
599 echo "The entire image must be rebuilt."; \
600 read -p "Press ENTER to rebuild the entire image or CTRL-C to abort. " ; \
601 $(MAKE) PROFILE=$(LAST_PROFILE) clean; \
602 $(MAKE) PROFILE=$(PROFILE); \
603 echo "Ignore the make exit error, Error 1"; \
607 $(KERNEL_DIR)/vmlinux:
608 $(GENDEFCONFIG_CMD) $(PROFILE_PATH)
610 cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config; \
611 $(MAKE) oldconfig; $(MAKE); $(MAKE) modules_install
614 ifeq ($(wildcard $(KERNEL_DIR)/vmlinux),)
615 @cd $(INC_KERNEL_BASE); \
616 if [ ! -e linux/CREDITS ]; then \
617 echo Untarring original Linux kernel source...; \
618 (tar xkfj $(ORIGINAL_KERNEL) 2> /dev/null || true); \
620 $(GENDEFCONFIG_CMD) $(PROFILE_PATH)
622 cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config; \
623 $(MAKE) oldconfig; $(MAKE)
625 cd $(KERNEL_DIR); $(MAKE)
628 kernel: profile_check kernelbuild hosttools buildimage
630 ifeq ($(strip $(VOXXXLOAD)),1)
631 modbuild: touch_voice_files
632 cd $(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install
635 cd $(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install
638 modules: profile_check modbuild hosttools buildimage
640 app: profile_check prebuild $(BRCMAPPS) hosttools buildimage
643 mkdir -p $(INSTALL_DIR)/bin $(INSTALL_DIR)/lib
645 # touch_voice_files doesn't clean up voice, just enables incremental build of voice code
647 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 "{}" ";"
648 rm -rf kernel/linux/.tmp_versions/endpointdd.mod
649 rm -rf kernel/linux/arch/mips/defconfig
650 rm -rf kernel/linux/include/config/bcm/endpoint/
651 rm -rf kernel/linux/include/asm-mips/offset.h
652 rm -rf kernel/linux/include/asm-mips/reg.h
653 find kernel/linux/lib/ -name '*.o' -print -exec rm -f "{}" ";"
654 find kernel/linux/lib/ -name '*.lib' -print -exec rm -f "{}" ";"
656 # Build user applications depending on if they are
657 # specified in the profile
658 ifneq ($(strip $(BUILD_PVC2684CTL)),)
659 export BUILD_PVC2684D=$(BUILD_PVC2684CTL)
662 $(MAKE) -C $(OPENSOURCE_DIR)/atm2684/pvc2684ctl $(BUILD_PVC2684CTL)
668 ifneq ($(strip $(BUILD_BRCTL)),)
670 cd $(OPENSOURCE_DIR); (tar xkfj bridge-utils.tar.bz2 2> /dev/null || true)
671 $(MAKE) -C $(OPENSOURCE_DIR)/bridge-utils $(BUILD_BRCTL)
676 ifneq ($(strip $(BUILD_VCONFIG)),)
677 export BUILD_VCONFIG=y
680 ifneq ($(strip $(BUILD_CFM)),)
682 ifneq ($(strip $(BUILD_CFM_MENU)),)
683 export BUILD_CFM_MENU=y
687 ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
688 $(MAKE) -C $(BROADCOM_DIR)/cfm/web/sigmak
690 $(MAKE) -C $(BROADCOM_DIR)/cfm $(BUILD_CFM)
695 # iptables is dependent on kernel netfilter modules
696 ifneq ($(strip $(BRCM_KERNEL_NETFILTER)),)
697 ifneq ($(strip $(BUILD_IPTABLES)),)
699 cd $(OPENSOURCE_DIR); (tar xkfj iptables.tar.bz2 2> /dev/null || true)
700 $(MAKE) -C $(OPENSOURCE_DIR)/iptables $(BUILD_IPTABLES)
702 cd $(OPENSOURCE_DIR); (tar xkfj iptables.tar.bz2 2> /dev/null || true)
703 $(MAKE) -C $(OPENSOURCE_DIR)/iptables static
709 @echo Warning: You need to enable netfilter in the kernel !!!!!
712 ifneq ($(strip $(BUILD_EBTABLES)),)
714 cd $(OPENSOURCE_DIR); (tar xkfj ebtables.tar.bz2 2> /dev/null || true)
715 $(MAKE) -C $(OPENSOURCE_DIR)/ebtables $(BUILD_EBTABLES)
720 ifneq ($(strip $(BUILD_PPPD)),)
722 $(MAKE) -C $(OPENSOURCE_DIR)/ppp/pppoe $(BUILD_PPPD)
727 ifneq ($(strip $(BUILD_REAIM)),)
729 cd $(OPENSOURCE_DIR); (tar xkfj reaim.tar.bz2 2> /dev/null || true)
730 $(MAKE) -C $(OPENSOURCE_DIR)/reaim $(BUILD_REAIM)
735 ifneq ($(strip $(BRCM_KERNEL_NETQOS)),)
737 cd $(OPENSOURCE_DIR); (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
738 $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
741 ifneq ($(strip $(BRCM_KERNEL_DN_IPQOS)),)
743 cd $(OPENSOURCE_DIR); (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
744 $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
747 ifneq ($(strip $(BUILD_POLICY_ROUTING)),)
749 cd $(OPENSOURCE_DIR); (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
750 $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
753 endif#BUILD_POLICY_ROUTING
755 endif#BRCM_KERNEL_DN_IPQOS
757 endif#BRCM_KERNEL_NETQOS
760 ifneq ($(strip $(BUILD_GDBSERVER)),)
762 install -m 755 $(TOOLCHAIN)/mips-linux-uclibc/target-apps/usr/bin/gdbserver $(INSTALL_DIR)/bin
763 $(STRIP) $(INSTALL_DIR)/bin/gdbserver
768 ifneq ($(strip $(BUILD_ETHWAN)),)
769 export BUILD_ETHWAN=y
772 ifneq ($(strip $(BUILD_UDHCP)),)
774 $(MAKE) -C $(OPENSOURCE_DIR)/udhcp $(BUILD_UDHCP)
779 # UPNP is dependent on iptables
780 ifneq ($(strip $(BUILD_IPTABLES)),)
781 ifneq ($(strip $(BUILD_UPNP)),)
783 $(MAKE) -C $(BROADCOM_DIR)/upnp/router/upnp $(BUILD_UPNP)
789 @echo Warning: You need to build iptables first !!!!!
792 ifneq ($(strip $(BUILD_IPSEC_TOOLS)),)
794 cd $(OPENSOURCE_DIR); (tar xkfj ipsec-tools.tar.bz2 2> /dev/null || true)
795 $(MAKE) -C $(OPENSOURCE_DIR)/ipsec-tools $(BUILD_IPSEC_TOOLS)
800 ifneq ($(strip $(BUILD_CERT)),)
802 cd $(OPENSOURCE_DIR); (tar xkfj openssl.tar.bz2 2> /dev/null || true)
803 $(MAKE) -C $(OPENSOURCE_DIR)/openssl dynamic
809 ifneq ($(strip $(BUILD_SIPROXD)),)
811 cd $(OPENSOURCE_DIR); (tar xkfj siproxd.tar.bz2 2> /dev/null || true)
812 $(MAKE) -C $(OPENSOURCE_DIR)/siproxd $(BUILD_SIPROXD)
814 cd $(OPENSOURCE_DIR); (tar xkfj libosip2.tar.bz2 2> /dev/null || true)
815 $(MAKE) -C $(OPENSOURCE_DIR)/libosip2
823 ifneq ($(strip $(BUILD_SNMP)),)
825 ifneq ($(strip $(BUILD_SNMP_SET)),)
831 ifneq ($(strip $(BUILD_SNMP_ADSL_MIB)),)
832 export SNMP_ADSL_MIB=1
834 export SNMP_ADSL_MIB=0
837 ifneq ($(strip $(BUILD_SNMP_ATM_MIB)),)
838 export SNMP_ATM_MIB=1
840 export SNMP_ATM_MIB=0
843 ifneq ($(strip $(BUILD_SNMP_AT_MIB)),)
849 ifneq ($(strip $(BUILD_SNMP_SYSOR_MIB)),)
850 export SNMP_SYSOR_MIB=1
852 export SNMP_SYSOR_MIB=0
855 ifneq ($(strip $(BUILD_SNMP_TCP_MIB)),)
856 export SNMP_TCP_MIB=1
858 export SNMP_TCP_MIB=0
861 ifneq ($(strip $(BUILD_SNMP_UDP_MIB)),)
862 export SNMP_UDP_MIB=1
864 export SNMP_UDP_MIB=0
867 ifneq ($(strip $(BUILD_SNMP_IP_MIB)),)
873 ifneq ($(strip $(BUILD_SNMP_ICMP_MIB)),)
874 export SNMP_ICMP_MIB=1
876 export SNMP_ICMP_MIB=0
879 ifneq ($(strip $(BUILD_SNMP_SNMP_MIB)),)
880 export SNMP_SNMP_MIB=1
882 export SNMP_SNMP_MIB=0
885 ifneq ($(strip $(BUILD_SNMP_ATMFORUM_MIB)),)
886 export SNMP_ATMFORUM_MIB=1
888 export SNMP_ATMFORUM_MIB=0
891 ifneq ($(strip $(BRCM_SNMP)),)
893 ifneq ($(strip $(BUILD_SNMP_CHINA_TELECOM_CPE_MIB)),)
894 export SNMP_CHINA_TELECOM_CPE_MIB=1
898 ifneq ($(strip $(BUILD_SNMP_UDP)),)
902 ifneq ($(strip $(BUILD_SNMP_EOC)),)
906 ifneq ($(strip $(BUILD_SNMP_AAL5)),)
910 ifneq ($(strip $(BUILD_SNMP_AUTO)),)
914 ifneq ($(strip $(BUILD_SNMP_DEBUG)),)
918 ifneq ($(strip $(BUILD_SNMP_TRANSPORT_DEBUG)),)
919 export SNMP_TRANSPORT_DEBUG=1
922 ifneq ($(strip $(BUILD_SNMP_LAYER_DEBUG)),)
923 export SNMP_LAYER_DEBUG=1
928 ifneq ($(strip $(BRCM_SNMP)),)
929 ## $(MAKE) -C $(BROADCOM_DIR)/snmp $(BUILD_SNMP)
931 cd $(OPENSOURCE_DIR); (tar xkfj net-snmp.tar.bz2 2> /dev/null || true)
932 $(MAKE) -C $(OPENSOURCE_DIR)/net-snmp $(BUILD_SNMP)
938 ifneq ($(strip $(BUILD_4_LEVEL_QOS)),)
939 export BUILD_4_LEVEL_QOS=y
942 ifneq ($(strip $(BUILD_ILMI)),)
944 cd $(OPENSOURCE_DIR); (tar xkfj net-snmp.tar.bz2 2> /dev/null || true)
945 $(MAKE) -C $(BROADCOM_DIR)/ilmi $(BUILD_ILMI)
950 ifneq ($(findstring rvsip,$(BRCM_APP_PHONE)),)
952 $(MAKE) -C $(BROADCOM_DIR)/rvsip/bos
953 $(MAKE) -C $(BROADCOM_DIR)/rvsip all install
956 ifneq ($(strip $(BUILD_VODSL)),)
957 $(MAKE) -C $(BROADCOM_DIR)/vodsl $(BUILD_VODSL)
961 # Leave it for the future when soap server is decoupled from cfm
962 ifneq ($(strip $(BUILD_SOAP)),)
963 ifeq ($(strip $(BUILD_SOAP_VER)),2)
965 $(MAKE) -C $(BROADCOM_DIR)/SoapToolkit/SoapServer $(BUILD_SOAP)
968 $(MAKE) -C $(BROADCOM_DIR)/soap $(BUILD_SOAP)
974 ifneq ($(strip $(BUILD_NAS)),)
977 if [ -e $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/nas ]; then \
978 rm -rf $(BROADCOM_DIR)/nas/*; \
979 cp -pRdf $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/nas/* $(BROADCOM_DIR)/nas; \
981 $(MAKE) -C $(BROADCOM_DIR)/nas $(BUILD_NAS)
983 #add hotplug here, for nas use only
985 $(MAKE) -C $(BROADCOM_DIR)/hotplug $(BUILD_NAS)
990 #add hotplug here, for nas use only
994 ifneq ($(strip $(BUILD_WLCTL)),)
997 if [ -e $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/wlctl ]; then \
998 rm -rf $(BROADCOM_DIR)/wlctl/*; \
999 cp -pRdf $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/wlctl/* $(BROADCOM_DIR)/wlctl; \
1001 $(MAKE) -C $(BROADCOM_DIR)/wlctl $(BUILD_WLCTL)
1007 ifneq ($(strip $(BUILD_EPITTCP)),)
1009 $(MAKE) -C $(BROADCOM_DIR)/epittcp $(BUILD_EPITTCP)
1014 ifneq ($(strip $(WLAN_ENABLE_CTRL_BUTTON)),)
1016 $(MAKE) -C $(BROADCOM_DIR)/wlenablectrl dynamic
1021 ifneq ($(strip $(VOICECTL_APP)),)
1023 $(MAKE) -C $(BROADCOM_DIR)/voicectl dynamic
1028 ifneq ($(strip $(BUILD_SES)),)
1030 if [ -e $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/ses ]; then \
1031 rm -rf $(BROADCOM_DIR)/ses/*; \
1032 cp -pRdf $(BRCMDRIVERS_DIR)/broadcom/net/wl/impl$(WLAN_IMPL)/ses/* $(BROADCOM_DIR)/ses; \
1034 $(MAKE) -C $(BROADCOM_DIR)/ses $(BUILD_SES)
1039 ifneq ($(strip $(BUILD_NVRAM)),)
1041 $(MAKE) -C $(BROADCOM_DIR)/nvram $(BUILD_NVRAM)
1046 #Always compile Ethernet control utility
1048 $(MAKE) -C $(BROADCOM_DIR)/ethctl dynamic
1050 ifneq ($(strip $(BUILD_DNSPROBE)),)
1052 $(MAKE) -C $(BROADCOM_DIR)/dnsprobe $(BUILD_DNSPROBE)
1057 ifneq ($(strip $(BUILD_IGMP)),)
1059 $(MAKE) -C $(BROADCOM_DIR)/igmp $(BUILD_IGMP)
1064 ifneq ($(strip $(BUILD_DHCPR)),)
1066 $(MAKE) -C $(BROADCOM_DIR)/dhcpr $(BUILD_DHCPR)
1071 ifneq ($(strip $(BUILD_ZEBRA)),)
1073 cd $(OPENSOURCE_DIR); (tar xkfj zebra.tar.bz2 2> /dev/null || true)
1074 $(MAKE) -C $(OPENSOURCE_DIR)/zebra $(BUILD_ZEBRA)
1079 ifneq ($(strip $(ODM_AUTO_PROVISION_LAN)),)
1081 $(MAKE) -C $(BROADCOM_DIR)/autoprovisionlan dynamic
1086 ifneq ($(strip $(BUILD_ATMCTL)),)
1088 $(MAKE) -C $(BROADCOM_DIR)/atmctl $(BUILD_ATMCTL)
1093 ifneq ($(strip $(BUILD_ADSLCTL)),)
1095 $(MAKE) -C $(BROADCOM_DIR)/adslctl $(BUILD_ADSLCTL)
1100 ifeq ($(strip $(BUILD_CFM_CLI)),y)
1101 ifneq ($(strip $(BUILD_NETCTL)),)
1103 $(MAKE) -C $(BROADCOM_DIR)/netctl $(BUILD_NETCTL)
1111 ifneq ($(strip $(BUILD_BUSYBOX)),)
1113 cd $(OPENSOURCE_DIR); (tar xkfj busybox.tar.bz2 2> /dev/null || true)
1114 # $(MAKE) -C $(OPENSOURCE_DIR)/busybox $(BUILD_BUSYBOX)
1115 cd $(OPENSOURCE_DIR)/busybox; cp -f brcm.config .config
1116 $(MAKE) -C $(OPENSOURCE_DIR)/busybox install
1121 ifneq ($(strip $(BUILD_LIBCREDUCTION)),)
1123 $(MAKE) -C $(OPENSOURCE_DIR)/libcreduction install
1128 ###########################################
1130 # VOIP Call Waitting Function
1132 ###########################################
1133 ifneq ($(strip $(BUILD_WAV2RTP)),)
1135 $(MAKE) -C $(BROADCOM_DIR)/wav2rtp dynamic
1140 ifneq ($(strip $(BUILD_DIAGAPP)),)
1142 $(MAKE) -C $(BROADCOM_DIR)/diagapp $(BUILD_DIAGAPP)
1147 ifneq ($(strip $(BUILD_FTPD)),)
1149 cd $(OPENSOURCE_DIR); (tar xkfj ftpd.tar.bz2 2> /dev/null || true)
1150 $(MAKE) -C $(OPENSOURCE_DIR)/ftpd $(BUILD_FTPD)
1155 ifneq ($(strip $(BUILD_HTTPC)),)
1157 $(MAKE) -C $(OPENSOURCE_DIR)/httpc $(BUILD_HTTPC)
1162 ifneq ($(strip $(BUILD_MPD)),)
1164 $(MAKE) -C $(OPENSOURCE_DIR)/mpd $(BUILD_MPD)
1169 ifneq ($(strip $(BUILD_DDNSD)),)
1171 $(MAKE) -C $(BROADCOM_DIR)/ddnsd $(BUILD_DDNSD)
1176 ifneq ($(strip $(BUILD_SNTP)),)
1178 $(MAKE) -C $(BROADCOM_DIR)/sntp $(BUILD_SNTP)
1183 ifneq ($(strip $(ODM_CFESETUP)),)
1185 $(MAKE) -C $(BROADCOM_DIR)/cfesetup all
1191 ifneq ($(strip $(BUILD_IPPD)),)
1193 $(MAKE) -C $(BROADCOM_DIR)/ippd $(BUILD_IPPD)
1198 # Start: Andy porting from 2.21.5, 2005/04/14
1199 ifneq ($(strip $(BUILD_DPROXY)),)
1201 $(MAKE) -C $(OPENSOURCE_DIR)/dproxy $(BUILD_DPROXY)
1205 # End: Andy porting from 2.21.5, 2005/04/14
1207 #Paul porting from 2.21.5, 7/24/2006
1208 ifneq ($(strip $(BUILD_PRINTSERVER)),)
1210 $(MAKE) -C $(BROADCOM_DIR)/iappd dynamic
1212 $(MAKE) -C $(OPENSOURCE_DIR)/lpd dynamic
1219 #ifneq ($(strip $(BUILD_PORT_MIRRORING)),)
1220 #export BUILD_PORT_MIRRORING=1
1222 #export BUILD_PORT_MIRRORING=0
1225 ifneq ($(strip $(BUILD_HOSTMGR)),)
1226 hmi2proxy: vdsl_processing
1227 $(MAKE) -C $(BROADCOM_DIR)/hostCode/hostMgr $(BUILD_HOSTMGR) TARGET=$@ PHY=memap6348
1232 ifneq ($(strip $(BUILD_RELAYCONTROL)),)
1234 $(MAKE) -C $(BROADCOM_DIR)/relayCtl/relay6348 $(BUILD_RELAYCONTROL) TARGET=$@
1239 ifneq ($(strip $(BUILD_VDSLCTL)),)
1241 $(MAKE) -C $(BROADCOM_DIR)/vdslctl/vdslctl $(BUILD_VDSLCTL) TARGET=$@
1247 ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
1248 $(MAKE) -C $(HOSTTOOLS_DIR)/sigmak
1250 $(MAKE) -C $(HOSTTOOLS_DIR)
1252 vdsl_processing: add_6510_support vdsl_modem vdsl_modem_file
1255 @echo "************* VDSL Housekeeping **************************************"
1256 @echo "VCOPE_BOARD=$(VCOPE_BOARD) HMI_VERSION=$(HMI_VERSION)"
1257 @echo "VCOPE_TYPE=$(VCOPE_TYPE) VCOPE_LINE_NUMBER=$(VCOPE_LINE_NUMBER)"
1258 @echo "**********************************************************************"
1261 - cmp -s $(FSSRC_DIR)/images/modem.bin $(6510_REF_CODE)/images/$(VMODEM_BIN); \
1262 if [ ! $$? -eq 0 ]; then \
1263 echo "VCOPE: different type - need clean up"; \
1264 find userapps/broadcom/hostCode/ -name *.[oa] | xargs rm; \
1265 find userapps/broadcom/hostCode/ -name *.depend | xargs rm; \
1266 find userapps/broadcom/relayCtl/ -name *.[oa] | xargs rm; \
1267 find userapps/broadcom/relayCtl/ -name *.depend | xargs rm; \
1268 find userapps/broadcom/vdslctl/ -name *.[oa] | xargs rm; \
1269 find userapps/broadcom/vdslctl/ -name *.depend | xargs rm; \
1271 @echo "$(FSSRC_DIR)/images/: Creating \"modem.bin\" out of $(VMODEM_BIN)"
1272 cp -f $(6510_REF_CODE)/images/$(VMODEM_BIN) $(FSSRC_DIR)/images/modem.bin;
1273 cp -f $(6510_REF_CODE)/images/$(VBOOT_BIN) $(FSSRC_DIR)/images/boot.bin;
1275 buildimage: $(KERNEL_DIR)/vmlinux
1276 su --command="cd $(TARGETS_DIR); ./buildFS"
1277 # find $(TARGET_FS) -name CVS | xargs rm -rf
1278 ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),squashfs)
1279 #$(HOSTTOOLS_DIR)/mksquashfs $(TARGET_FS) $(PROFILE_DIR)/rootfs.img -noappend -be -always-use-fragments -gzip
1280 $(HOSTTOOLS_DIR)/mksquashfs $(TARGET_FS) $(PROFILE_DIR)/rootfs.img -noappend -be -lzma -no-fragments -noI
1282 ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),cramfs)
1283 # $(HOSTTOOLS_DIR)/mkcramfs -r -g $(TARGET_FS) $(PROFILE_DIR)/rootfs.img
1284 $(HOSTTOOLS_DIR)/mkcramfs -r $(TARGET_FS) $(PROFILE_DIR)/rootfs.img
1286 ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),jffs2)
1287 $(HOSTTOOLS_DIR)/mkfs.jffs2 -b -p -e $(BRCM_FLASHBLK_SIZE) -r $(TARGET_FS) -o $(PROFILE_DIR)/rootfs.img
1292 ifneq ($(strip $(BRCM_KERNEL_ROOTFS)),nfs)
1293 cd $(PROFILE_DIR); \
1294 cp $(KERNEL_DIR)/vmlinux . ; \
1295 $(STRIP) --remove-section=.note --remove-section=.comment vmlinux; \
1296 $(OBJCOPY) -O binary vmlinux vmlinux.bin; \
1297 $(HOSTTOOLS_DIR)/cmplzma -k -2 vmlinux vmlinux.bin vmlinux.lz;\
1298 $(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; \
1299 mkdir -p $(IMAGES_DIR)
1300 cp $(PROFILE_DIR)/$(FS_KERNEL_IMAGE_NAME) $(IMAGES_DIR)/$(FS_KERNEL_IMAGE_NAME)_$(BRCM_RELEASETAG)-$(shell date '+%y%m%d_%H%M')
1302 echo -e "Done! Image $(PROFILE) has been built in $(IMAGES_DIR)."
1304 cd $(PROFILE_DIR); \
1305 cp $(KERNEL_DIR)/vmlinux . ; \
1306 $(STRIP) --remove-section=.note --remove-section=.comment vmlinux
1308 @echo -e "\t=== Following the below steps to start your NFS root file system on host ==="
1309 @echo -e "Step 1: Copy $(PROFILE_DIR)/vmlinux to your TFTP server boot directory, such as /tftpboot"
1310 @echo -e "Step 2: Add \"$(PROFILE_DIR)/fs *(rw,no_root_squash)\" to /etc/exports"
1311 @echo -e "Step 3: Become root and restart your nfs server, such as \"service nfs restart\""
1312 @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\""
1316 ###########################################
1318 # System code clean-up
1320 ###########################################
1322 subdirs: $(patsubst %, _dir_%, $(SUBDIRS))
1324 $(patsubst %, _dir_%, $(SUBDIRS)) :
1325 $(MAKE) -C $(patsubst _dir_%, %, $@) $(TGT)
1327 clean: target_clean app_clean kernel_clean hosttools_clean remove_6510_support
1331 rm -fr $(INSTALL_DIR)/bin
1332 rm -fr $(INSTALL_DIR)/sbin
1333 rm -fr $(INSTALL_DIR)/lib
1334 rm -fr $(INSTALL_DIR)/upnp
1335 rm -fr $(INSTALL_DIR)/webs
1336 rm -fr $(INSTALL_DIR)/usr
1337 rm -fr $(INSTALL_DIR)/linuxrc
1339 kernel_clean: sanity_check
1340 $(MAKE) -C $(KERNEL_DIR) mrproper
1341 rm -f $(KERNEL_DIR)/arch/mips/defconfig
1342 rm -f $(HOSTTOOLS_DIR)/lzma/decompress/*.o
1343 rm -f $(TARGETS_DIR)/*.o $(TARGETS_DIR)/.*.flags $(TARGETS_DIR)/.depend
1344 rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxKernel
1345 rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxKernel
1347 app_clean: sanity_check fssrc_clean
1348 $(MAKE) subdirs TGT=clean
1349 rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxUser
1350 rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxUser
1352 target_clean: sanity_check fssrc_clean
1353 rm -f $(PROFILE_DIR)/rootfs.img
1354 rm -f $(PROFILE_DIR)/vmlinux
1355 rm -f $(PROFILE_DIR)/vmlinux.bin
1356 rm -f $(PROFILE_DIR)/vmlinux.lz
1357 rm -f $(PROFILE_DIR)/$(FS_KERNEL_IMAGE_NAME)
1358 rm -f $(PROFILE_DIR)/$(CFE_FS_KERNEL_IMAGE_NAME)
1359 rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME)
1360 rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME).w
1361 rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME).bin
1362 rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME).ice
1363 rm -fr $(PROFILE_DIR)/modules
1364 find targets -name vmlinux -print -exec rm -f "{}" ";"
1365 su --command="rm -fr $(TARGET_FS)"
1368 $(MAKE) -C $(HOSTTOOLS_DIR) clean
1371 $(6510_REF_CODE)/add6510support DYMMY_HMI_VERSON $(6510_REF_CODE)
1373 remove_6510_support:
1374 rm -fr $(BROADCOM_DIR)/hostCode
1375 rm -fr $(BROADCOM_DIR)/relayCtl
1376 rm -fr $(BROADCOM_DIR)/vdslctl
1379 find userapps/broadcom/hostCode/ -name *.[oa] | xargs rm
1380 find userapps/broadcom/hostCode/ -name *.depend | xargs rm
1381 find userapps/broadcom/relayCtl/ -name *.[oa] | xargs rm
1382 find userapps/broadcom/relayCtl/ -name *.depend | xargs rm
1383 find userapps/broadcom/vdslctl/ -name *.[oa] | xargs rm
1384 find userapps/broadcom/vdslctl/ -name *.depend | xargs rm
1387 find bcmdrivers/broadcom/char/endpoint -name '*.o' -exec rm -f "{}" ";"
1388 find userapps/broadcom/cfm -name '*.o' -exec rm -f "{}" ";"
1389 find userapps/broadcom/vodsl -name '*.o' -exec rm -f "{}" ";"
1390 rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxKernel
1391 rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxUser
1393 ###########################################
1395 # System-wide exported variables
1396 # (in alphabetical order)
1398 ###########################################
1403 ODM_AUTO_PROVISION_LAN \
1410 BRCM_DRIVER_WIRELESS \
1413 BRCM_DSP_APM_FXO_EXT \
1414 BRCM_DSP_CODEC_G711 \
1415 BRCM_DSP_CODEC_G723 \
1416 BRCM_DSP_CODEC_G726 \
1417 BRCM_DSP_CODEC_G729 \
1418 BRCM_DSP_CODEC_G7xx \
1419 BRCM_DSP_CODEC_T38_EXT \
1420 BRCM_DSP_CODEC_T38_INT \
1422 BRCM_DSP_HAL_EXTENSION \
1425 BRCM_DSP_PCM_T38_EXT \
1427 BRCM_KERNEL_NETQOS \
1428 BRCM_KERNEL_ROOTFS \
1430 BRCM_MIPS_ONLY_BUILD \
1431 BRCM_MIPS_ONLY_BUILD \
1439 BRCM_VODSL_DUAL_3341 \
1440 BRCM_VOICE_COUNTRY_JAPAN \
1441 BRCM_VOICE_GLOBAL_CFLAGS \
1445 BUILD_AUTO_PROVISION_ON_WAN\
1473 BUILD_PORT_MIRRORING \
1474 BUILD_PPP_DOMAIN_SUFFIX \
1478 BUILD_REMOVE_PPPOE_PASS_THROUGH \
1487 BUILD_SSHD_MIPS_GENKEY \
1510 INC_BRCMBOARDPARMS_PATH \
1512 INC_BRCMDRIVER_PRIV_PATH \
1513 INC_BRCMDRIVER_PUB_PATH \
1514 INC_BRCMSHARED_PRIV_PATH \
1515 INC_BRCMSHARED_PUB_PATH \
1540 XCHANGE_DSP_APP_EXTENSION \
1547 #Start Andy porting from 3.02.02 (2006/05/23)
1548 export ODM_MULTI_LANG BUILD_STATIC_DNS BUILD_MTU_LAN_PPP BUILD_PPP_IPEXTENSION SUPPORT_XML_API SUPPORT_XML_API_FOR_NETGEAR
1549 export BUILD_DOMAIN_LOCK ODM_LANG_LLL BUILD_PPP_ALWAYS_RETRY BUILD_MERDEFAULT_GW BUILD_PPPDEFAULT_GW BRCM_DEFAULT_HOST_NAME
1550 export BRCM_KERNEL_DN_IPQOS BRCM_KERNEL_ATMQOS ODM_VOICE_QOS BUILD_MPD BUILD_PARTCONF BRCM_KERNEL_NF_NAT_ALG_SIP
1551 export STRIP_USERNAME_PASSWORD SIP_SUPPORT_VMWI SIP_SUPPORT_CFW SIP_SUPPORT_DNS_SRV_RR
1552 export SIP_SUPPORT_KEYPAD_EU SIP_SUPPORT_FLASHKEY_EU
1553 #End Andy porting from 3.02.02 (2006/05/23)
1554 export DISABLE_IGMP_SNOOPING_OPTION
1555 export BUILD_PRINTSERVER
1556 export BUILD_USER_ACCOUNT BUILD_USER_ACCOUNT_QSWV BUILD_USER_ACCOUNT_Q BUILD_USER_ACCOUNT_S BUILD_USER_ACCOUNT_W BUILD_USER_ACCOUNT_V \
1557 BUILD_USER_ACCOUNT_QSW BUILD_USER_ACCOUNT_QSV BUILD_USER_ACCOUNT_SWV BUILD_USER_ACCOUNT_QWV BUILD_USER_ACCOUNT_QS \
1558 BUILD_USER_ACCOUNT_QW BUILD_USER_ACCOUNT_QV BUILD_USER_ACCOUNT_SW BUILD_USER_ACCOUNT_SV BUILD_USER_ACCOUNT_WV
1560 export CONFIG_NET_SCH_CBQ CONFIG_NET_SCH_CSZ CONFIG_NET_SCH_HPFQ CONFIG_NET_SCH_HFCS CONFIG_NET_SCH_ATM \
1561 CONFIG_NET_SCH_PRIO CONFIG_NET_SCH_RED CONFIG_NET_SCH_SFQ CONFIG_NET_SCH_TEQL CONFIG_NET_SCH_TBF \
1562 CONFIG_NET_SCH_GRED CONFIG_NET_SCH_DSMARK CONFIG_NET_SCH_INGRESS CONFIG_NET_QOS CONFIG_NET_ESTIMATOR \
1563 CONFIG_NET_CLS CONFIG_NET_CLS_TCINDEX CONFIG_NET_CLS_ROUTE4 CONFIG_NET_CLS_ROUTE CONFIG_NET_CLS_FW \
1564 CONFIG_NET_CLS_U32 CONFIG_NET_CLS_RSVP CONFIG_NET_CLS_RSVP6 CONFIG_NET_CLS_POLICE ODM_LANG_NETGEAR \
1565 IPTV_SUPPORT_FOR_TI BUILD_BLOCK_MULTICAST_FLOOD
1567 export BUILD_NSASOFT_TRAFFIC_EMULATOR
1568 export BUILD_AUTO_DETECT_DEFAULT_PVC SUPPORT_SERVICE_MODE
1569 export BUILD_POLICY_ROUTING BUILD_SUPPORT_PPPDBG_SYSLOG
1571 ################################################################################################
1573 # VOIP releated exported variables
1575 ################################################################################################
1578 ODM_ONLY_G729_G711A \
1579 ODM_SIP_HASH2NUMBER \
1580 ODM_IGNORE_FMTP_MAP \
1581 ODM_TELSTRA_APPROVAL \
1582 ODM_RESERVE_OFF_HOOK \
1583 ODM_SWITCH_PORT1_PORT2 \
1584 ODM_PSTN_ONLY_PORT1_NO_FXO \
1585 BRCM_RETURN_ONE_CODEC \
1588 FIND_TRANSACTION_WITHOUT_VIA_BRANCH \
1589 SIP_PROXY_FAIL_RECOVER \
1592 SIP_SESSION_TIMER_ENABLE \
1593 VOIP_DIAL_MAP_TIMER \
1594 VOIP_INTER_DIGIT_TIMER