dd4da939dec967ca2ff4aa1378a04d822dc1bd2c
[bcm963xx.git] / Makefile
1 #****************************************************************************
2 #
3 #  Copyright (c) 2001, 2002, 2003, 2004  Broadcom Corporation
4 #  All Rights Reserved
5 #  No portions of this material may be reproduced in any form without the
6 #  written permission of:
7 #          Broadcom Corporation
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.
12 #
13 #****************************************************************************
14
15 # Top-level Makefile for all commengine xDSL platforms
16
17 include version.make
18
19 BRCM_RELEASETAG=$(BRCM_VERSION).$(BRCM_RELEASE)L.$(BRCM_EXTRAVERSION)
20
21
22 ###########################################
23 #
24 # Define Basic Variables
25 #
26 ###########################################
27 BUILD_DIR = $(shell pwd)
28 KERNEL_VER = 2.6
29 ifeq ($(strip $(KERNEL_VER)),2.6)
30 INC_KERNEL_BASE = $(BUILD_DIR)/kernel
31 ORIGINAL_KERNEL = linuxmips.tar.bz2
32 endif
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
50 RUN_NOISE=0
51 6510_REF_CODE=$(BUILD_DIR)/userapps/broadcom/6510refCode
52
53 ###########################################
54 #
55 # Import Build Profiles
56 #
57 ###########################################
58 BRCM_BOARD=bcm963xx
59 LAST_PROFILE=$(shell find targets -name vmlinux | sed -e "s?targets/??" -e "s?/.*??" -e "q")
60 ifeq ($(strip $(PROFILE)),)
61 PROFILE=$(LAST_PROFILE)
62 export PROFILE
63 endif
64
65 ifneq ($(strip $(PROFILE)),)
66 include $(TARGETS_DIR)/$(PROFILE)/$(PROFILE)
67 export BRCM_CHIP
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
77 endif
78
79 ###########################################
80 #
81 # Define Toolchain
82 #
83 ###########################################
84 ifeq ($(strip $(BRCM_UCLIBC)),y)
85 NTC=1
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-
89 else
90 TOOLCHAIN=/opt/toolchains/uclibc
91 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-uclibc-
92 endif
93 else
94 TOOLCHAIN=/usr/crossdev/mips
95 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux-
96 endif
97
98
99
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
112
113 LIB_PATH        = $(TOOLCHAIN)/mips-linux/lib
114 LIBDIR          = $(TOOLCHAIN)/mips-linux/lib
115 LIBCDIR         = $(TOOLCHAIN)/mips-linux
116
117 ###########################################
118 #
119 # Application-specific settings
120 #
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)
127 VENDOR_NAME = bcm
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
141
142 # Michael: this save current config to default config should be enable for every model
143 export BRCM_CFG_XFER_TO_FACDEFLT=y
144
145
146 ifeq ($(strip $(BRCM_PROFILER_ENABLED)),y)
147 export BRCM_PROFILER_TOOL=1
148 else
149 export BRCM_PROFILER_TOOL=0
150 endif
151
152 ifneq ($(strip $(BUILD_VODSL)),)
153 export VOXXXLOAD=1
154 endif
155
156 ifeq ($(strip $(BRCM_VODSL_STUNC)),y)
157         export BRCM_VODSL_STUN_CLIENT=1
158 endif
159
160 ifeq ($(strip $(BRCM_VODSL_RANDOMP)),y)
161         export BRCM_VODSL_RANDOM_PORT=1
162 endif
163
164 BRCM_DSP_HAL := gw
165 BRCM_DSP_HAL_EXTENSION :=
166 XCHANGE_DSP_APP_EXTENSION :=
167 export XCHANGE_DSP_APP=$(BRCM_DSP_CODEC)
168
169 ifeq ($(strip $(BRCM_DSP_PCM)),y)
170 XCHANGE_DSP_APP := dspApp3341_tdm
171 BRCM_DSP_HAL_EXTENSION := _pcm
172 endif
173
174 ifeq ($(strip $(BRCM_DSP_PCM_G726)),y)
175 XCHANGE_DSP_APP := dspApp3341_tdm_g726
176 BRCM_DSP_HAL_EXTENSION := _pcm
177 endif
178
179 ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y)
180 XCHANGE_DSP_APP := dspApp3341_tdm_t38
181 BRCM_DSP_HAL_EXTENSION := _pcm
182 endif
183
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
188 endif
189
190 ifeq ($(strip $(BUILD_VDSL)),y)
191 export BUILD_VDSL=y
192 VBOOT_BIN="boot.bin"
193 ifneq ($(strip $(CPE_ANNEX_B)),)
194   CPE_MODEM="cpe_annex_b.bin"
195 else
196   CPE_MODEM="cpe_annex_a.bin"
197 endif
198 ifeq ($(strip $(VCOPE_TYPE)),CO)
199   VMODEM_BIN="co_modem.bin"
200 endif
201 ifeq ($(strip $(VCOPE_TYPE)),CPE)
202   VMODEM_BIN=$(CPE_MODEM)
203 endif
204
205 endif
206
207 #
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.
211 #
212
213 #swda add,06/27/2005
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
220 endif
221 #swda add end
222
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
230 else
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
237 endif
238 endif
239 endif
240
241
242 #
243 # DSP codec flags definition.  To be used throughout the application (for configuration and vodsl)
244 #
245
246 BRCM_DSP_CODEC_DEFINES := -DXCFG_G711_SUPPORT=1
247
248 ifeq ($(strip $(BRCM_DSP_CODEC_G723)),y)
249 BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
250 endif
251
252 ifeq ($(strip $(BRCM_DSP_CODEC_G726)),y)
253 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
254 endif
255
256 ifeq ($(strip $(BRCM_DSP_CODEC_G729)),y)
257 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
258 endif
259
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
264 endif
265
266 ifeq ($(strip $(BRCM_DSP_PCM)),y)
267 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
268 endif
269
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
273 endif
274
275 ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y)
276 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
277 endif
278
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
283 endif
284
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
289 endif
290
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
298 endif
299
300
301 #
302 #  Definition of the number of voice channels supported based on the specific
303 #  application being created.
304 #
305
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
308 else
309 BRCM_DSP_CHAN_DEFINES = -DNUM_APM_VOICE_CHANNELS=0 -DNUM_TDM_VOICE_CHANNELS=0 -DNUM_FXO_CHANNELS=0
310 endif
311
312 export BRCM_DSP_CODEC_DEFINES
313 export BRCM_DSP_CHAN_DEFINES
314 export BRCM_DSP_FXO
315 export PSTN_SUPPORT
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
319
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
327 endif
328 endif
329 BRCM_RELEASETAG := $(BRCM_RELEASETAG).$(XCHANGE_DSP_APP)
330
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
341 else
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
346 else
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
351 else
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
357 else
358 BRCM_DSP_HAL := vw
359 export BRCM_6358_G729
360 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)vw
361 endif
362 endif
363 endif
364 endif
365 endif
366
367 ifeq ($(strip $(BRCM_VODSL_DUAL_3341)),y)
368 BRCM_RELEASETAG := $(BRCM_RELEASETAG).dual3341
369 endif
370
371 #Set up ADSL standard
372 export ADSL=$(BRCM_ADSL_STANDARD)
373
374 #Set up ADSL_PHY_MODE  {file | obj}
375 export ADSL_PHY_MODE=file
376
377 #Set up ADSL_SELF_TEST
378 export ADSL_SELF_TEST=$(BRCM_ADSL_SELF_TEST)
379
380 #Set up ADSL_PLN_TEST
381 export ADSL_PLN_TEST=$(BUILD_TR69_XBRCM)
382
383 #WLan support
384 ifneq ($(strip $(BUILD_MIMO)),)
385 WLAN_IMPL=2
386 else
387 WLAN_IMPL=1
388 endif
389 export BUILD_MIMO
390
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
402
403 #Set up ADSL version
404 export ADSL_VERSION=$(BRCM_ADSL_VERSION)
405
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
410 export ODM_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
415 export CHT_EOC
416
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
429 export LLL_TEST_LED
430 export WESTELL_GPIO
431 export DAA_OFFHOOK_CMD
432 export CONFIG_ATM_EOP_MONITORING
433 export VOICE_SYS_CLOCK_50MHZ
434 export IAD_VDSL_6358
435 export IAD_GPON_6358
436 export ODM_BOTH_ETH
437 export NEWZEALAND_FXO
438 export VOICECTL_APP
439 #export FXO_GAIN_CMD
440
441 #michael add
442 #Use chipId to decide what the ADSL config option on html
443 export CHIP_ADSL_VERSION=$(BRCM_ADSL_DRIVER)
444
445 ###########################################
446 #
447 # Complete list of applications
448 #
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
472
473 # Start Andy porting from 3.02.02, 2006/05/23
474 export BROADCOM_DIR=$(USERAPPS_DIR)/broadcom
475 NEED_MOVE = "1"
476 NEED_CHG_ACCESSREMOTE = "0"
477 ifneq ($(strip $(BRCM_LANG_EN)),)
478         NEED_CHG_ACCESSREMOTE = "1"
479 endif
480         HTML_DIR = $(BROADCOM_DIR)/cfm/html
481         NEED_MOVE = "0"
482
483 NEED_MOVE_CH = "0"
484
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
489
490 #In future, we need to add soap when it
491 #is decoupled from cli
492
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
523
524 SUBDIRS_APP = $(SUBDIRS_BROADCOM) $(SUBDIRS_OPENSOURCE)
525 SUBDIRS = $(foreach dir, $(SUBDIRS_APP), $(shell if [ -d "$(dir)" ]; then echo $(dir); fi))
526
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
529
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
533
534 ifneq ($(findstring rvsip,$(BRCM_APP_PHONE)),)
535     SUBDIRS_BROADCOM += $(BROADCOM_DIR)/rvsip
536     BROADCOM_APPS += rvsip
537 else
538   ifneq ($(strip $(BUILD_VODSL)),)
539     SUBDIRS_BROADCOM += $(BROADCOM_DIR)/vodsl
540     BROADCOM_APPS += vodsl
541   endif
542 endif
543
544 ifneq ($(strip $(BUILD_SIGNATURE)),)
545    export BUILD_SIGNATURE
546 endif
547
548 ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
549    export BUILD_SIGNATURE_RSA
550 endif
551
552 LIBC_OPTIMIZATION = libcreduction
553
554 ifneq ($(strip $(BUILD_GDBSERVER)),)
555 TOOLCHAIN_UTIL_APPS = gdbserver
556 endif
557
558 ifneq ($(strip $(BUILD_PPP_AUTH_LIMIT)),)
559    export BUILD_PPP_AUTH_LIMIT
560 endif
561
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
566 endif
567 ifneq ($(strip $(MULTI_LANG_DE)),)
568   export MULTI_LANG_DE=y
569 endif
570 ifneq ($(strip $(MULTI_LANG_TR)),)
571   export MULTI_LANG_TR=y
572 endif
573 endif
574 # End Andy porting from 3.02.02 (2006/05/23)
575
576 BUSYBOX_DIR = $(OPENSOURCE_DIR)/busybox
577
578 BRCMAPPS = openssl $(BROADCOM_APPS) $(OPENSOURCE_APPS) $(TOOLCHAIN_UTIL_APPS) $(LIBC_OPTIMIZATION)
579
580 all: sanity_check profile_check kernelbuild modbuild app hosttools buildimage
581
582 menuconfig:
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); \
587         fi
588         $(MAKE) -C $(KERNEL_DIR)/scripts/lxdialog HOSTCC=gcc
589         $(CONFIG_SHELL) $(HOSTTOOLS_DIR)/scripts/Menuconfig $(TARGETS_DIR)/config.in
590
591 sanity_check:
592         @if [ "$(PROFILE)" = "" ]; then \
593           echo You need to specify build profile name from $(TARGETS_DIR) using 'make PROFILE=<profile name>...'; exit 1; \
594         fi
595
596 profile_check:
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"; \
604                 exit 1; \
605         fi
606
607 $(KERNEL_DIR)/vmlinux:
608         $(GENDEFCONFIG_CMD) $(PROFILE_PATH)
609         cd $(KERNEL_DIR); \
610         cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config; \
611         $(MAKE) oldconfig; $(MAKE); $(MAKE) modules_install
612
613 kernelbuild:
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); \
619         fi
620         $(GENDEFCONFIG_CMD) $(PROFILE_PATH)
621         cd $(KERNEL_DIR); \
622         cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config; \
623         $(MAKE) oldconfig; $(MAKE)
624 else
625         cd $(KERNEL_DIR); $(MAKE)
626 endif
627
628 kernel: profile_check kernelbuild hosttools buildimage
629
630 ifeq ($(strip $(VOXXXLOAD)),1)
631 modbuild: touch_voice_files
632         cd $(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install
633 else
634 modbuild:
635         cd $(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install
636 endif
637
638 modules: profile_check modbuild hosttools buildimage
639
640 app: profile_check prebuild $(BRCMAPPS) hosttools buildimage
641
642 prebuild:
643         mkdir -p $(INSTALL_DIR)/bin $(INSTALL_DIR)/lib
644
645 # touch_voice_files doesn't clean up voice, just enables incremental build of voice code
646 touch_voice_files:
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 "{}" ";"
655
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)
660 pvc2684d:
661 pvc2684ctl:
662         $(MAKE) -C $(OPENSOURCE_DIR)/atm2684/pvc2684ctl $(BUILD_PVC2684CTL)
663 else
664 pvc2684d:
665 pvc2684ctl:
666 endif
667
668 ifneq ($(strip $(BUILD_BRCTL)),)
669 brctl:
670         cd $(OPENSOURCE_DIR);   (tar xkfj bridge-utils.tar.bz2 2> /dev/null || true)
671         $(MAKE) -C $(OPENSOURCE_DIR)/bridge-utils $(BUILD_BRCTL)
672 else
673 brctl:
674 endif
675
676 ifneq ($(strip $(BUILD_VCONFIG)),)
677 export BUILD_VCONFIG=y
678 endif
679
680 ifneq ($(strip $(BUILD_CFM)),)
681
682 ifneq ($(strip $(BUILD_CFM_MENU)),)
683 export BUILD_CFM_MENU=y
684 endif
685
686 cfm:
687 ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
688         $(MAKE) -C $(BROADCOM_DIR)/cfm/web/sigmak
689 endif
690         $(MAKE) -C $(BROADCOM_DIR)/cfm $(BUILD_CFM)
691 else
692 cfm:
693 endif
694
695 # iptables is dependent on kernel netfilter modules
696 ifneq ($(strip $(BRCM_KERNEL_NETFILTER)),)
697 ifneq ($(strip $(BUILD_IPTABLES)),)
698 iptables:
699         cd $(OPENSOURCE_DIR);   (tar xkfj iptables.tar.bz2 2> /dev/null || true)
700         $(MAKE) -C $(OPENSOURCE_DIR)/iptables $(BUILD_IPTABLES)
701 iptables-build:
702         cd $(OPENSOURCE_DIR);   (tar xkfj iptables.tar.bz2 2> /dev/null || true)
703         $(MAKE) -C $(OPENSOURCE_DIR)/iptables static
704 else
705 iptables:
706 endif
707 else
708 iptables:
709         @echo Warning: You need to enable netfilter in the kernel !!!!!
710 endif
711
712 ifneq ($(strip $(BUILD_EBTABLES)),)
713 ebtables:
714         cd $(OPENSOURCE_DIR);   (tar xkfj ebtables.tar.bz2 2> /dev/null || true)
715         $(MAKE) -C $(OPENSOURCE_DIR)/ebtables $(BUILD_EBTABLES)
716 else
717 ebtables:
718 endif
719
720 ifneq ($(strip $(BUILD_PPPD)),)
721 pppd:
722         $(MAKE) -C $(OPENSOURCE_DIR)/ppp/pppoe $(BUILD_PPPD)
723 else
724 pppd:
725 endif
726
727 ifneq ($(strip $(BUILD_REAIM)),)
728 reaim:
729         cd $(OPENSOURCE_DIR);   (tar xkfj reaim.tar.bz2 2> /dev/null || true)
730         $(MAKE) -C $(OPENSOURCE_DIR)/reaim $(BUILD_REAIM)
731 else
732 reaim:
733 endif
734
735 ifneq ($(strip $(BRCM_KERNEL_NETQOS)),)
736 iproute2:
737         cd $(OPENSOURCE_DIR);   (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
738         $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
739 else
740
741 ifneq ($(strip $(BRCM_KERNEL_DN_IPQOS)),)
742 iproute2:
743         cd $(OPENSOURCE_DIR);   (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
744         $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
745 else
746
747 ifneq ($(strip $(BUILD_POLICY_ROUTING)),)
748 iproute2:
749         cd $(OPENSOURCE_DIR);   (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
750         $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
751 else
752 iproute2:
753 endif#BUILD_POLICY_ROUTING
754
755 endif#BRCM_KERNEL_DN_IPQOS
756
757 endif#BRCM_KERNEL_NETQOS
758
759
760 ifneq ($(strip $(BUILD_GDBSERVER)),)
761 gdbserver:
762         install -m 755 $(TOOLCHAIN)/mips-linux-uclibc/target-apps/usr/bin/gdbserver $(INSTALL_DIR)/bin
763         $(STRIP) $(INSTALL_DIR)/bin/gdbserver
764 else
765 gdbserver:
766 endif
767
768 ifneq ($(strip $(BUILD_ETHWAN)),)
769 export BUILD_ETHWAN=y
770 endif
771
772 ifneq ($(strip $(BUILD_UDHCP)),)
773 udhcp:
774         $(MAKE) -C $(OPENSOURCE_DIR)/udhcp $(BUILD_UDHCP)
775 else
776 udhcp:
777 endif
778
779 # UPNP is dependent on iptables
780 ifneq ($(strip $(BUILD_IPTABLES)),)
781 ifneq ($(strip $(BUILD_UPNP)),)
782 upnp: iptables-build
783         $(MAKE) -C $(BROADCOM_DIR)/upnp/router/upnp  $(BUILD_UPNP)
784 else
785 upnp:
786 endif
787 else
788 upnp:
789         @echo Warning: You need to build iptables first !!!!!
790 endif
791
792 ifneq ($(strip $(BUILD_IPSEC_TOOLS)),)
793 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)
796 else
797 ipsec-tools:
798 endif
799
800 ifneq ($(strip $(BUILD_CERT)),)
801 openssl:
802         cd $(OPENSOURCE_DIR);   (tar xkfj openssl.tar.bz2 2> /dev/null || true)
803         $(MAKE) -C $(OPENSOURCE_DIR)/openssl dynamic
804 else
805 openssl:
806 endif
807
808
809 ifneq ($(strip $(BUILD_SIPROXD)),)
810 siproxd:
811         cd $(OPENSOURCE_DIR);   (tar xkfj siproxd.tar.bz2 2> /dev/null || true)
812         $(MAKE) -C $(OPENSOURCE_DIR)/siproxd $(BUILD_SIPROXD)
813 libosip2:
814         cd $(OPENSOURCE_DIR);   (tar xkfj libosip2.tar.bz2 2> /dev/null || true)
815         $(MAKE) -C $(OPENSOURCE_DIR)/libosip2
816 else
817 siproxd:
818
819 libosip2:
820
821 endif
822
823 ifneq ($(strip $(BUILD_SNMP)),)
824
825 ifneq ($(strip $(BUILD_SNMP_SET)),)
826 export SNMP_SET=1
827 else
828 export SNMP_SET=0
829 endif
830
831 ifneq ($(strip $(BUILD_SNMP_ADSL_MIB)),)
832 export SNMP_ADSL_MIB=1
833 else
834 export SNMP_ADSL_MIB=0
835 endif
836
837 ifneq ($(strip $(BUILD_SNMP_ATM_MIB)),)
838 export SNMP_ATM_MIB=1
839 else
840 export SNMP_ATM_MIB=0
841 endif
842
843 ifneq ($(strip $(BUILD_SNMP_AT_MIB)),)
844 export SNMP_AT_MIB=1
845 else
846 export SNMP_AT_MIB=0
847 endif
848
849 ifneq ($(strip $(BUILD_SNMP_SYSOR_MIB)),)
850 export SNMP_SYSOR_MIB=1
851 else
852 export SNMP_SYSOR_MIB=0
853 endif
854
855 ifneq ($(strip $(BUILD_SNMP_TCP_MIB)),)
856 export SNMP_TCP_MIB=1
857 else
858 export SNMP_TCP_MIB=0
859 endif
860
861 ifneq ($(strip $(BUILD_SNMP_UDP_MIB)),)
862 export SNMP_UDP_MIB=1
863 else
864 export SNMP_UDP_MIB=0
865 endif
866
867 ifneq ($(strip $(BUILD_SNMP_IP_MIB)),)
868 export SNMP_IP_MIB=1
869 else
870 export SNMP_IP_MIB=0
871 endif
872
873 ifneq ($(strip $(BUILD_SNMP_ICMP_MIB)),)
874 export SNMP_ICMP_MIB=1
875 else
876 export SNMP_ICMP_MIB=0
877 endif
878
879 ifneq ($(strip $(BUILD_SNMP_SNMP_MIB)),)
880 export SNMP_SNMP_MIB=1
881 else
882 export SNMP_SNMP_MIB=0
883 endif
884
885 ifneq ($(strip $(BUILD_SNMP_ATMFORUM_MIB)),)
886 export SNMP_ATMFORUM_MIB=1
887 else
888 export SNMP_ATMFORUM_MIB=0
889 endif
890
891 ifneq ($(strip $(BRCM_SNMP)),)
892
893 ifneq ($(strip $(BUILD_SNMP_CHINA_TELECOM_CPE_MIB)),)
894 export SNMP_CHINA_TELECOM_CPE_MIB=1
895 export SNMP_MIB2=1
896 endif
897
898 ifneq ($(strip $(BUILD_SNMP_UDP)),)
899 export SNMP_UDP=1
900 endif
901
902 ifneq ($(strip $(BUILD_SNMP_EOC)),)
903 export SNMP_EOC=1
904 endif
905
906 ifneq ($(strip $(BUILD_SNMP_AAL5)),)
907 export SNMP_AAL5=1
908 endif
909
910 ifneq ($(strip $(BUILD_SNMP_AUTO)),)
911 export SNMP_AUTO=1
912 endif
913
914 ifneq ($(strip $(BUILD_SNMP_DEBUG)),)
915 export SNMP_DEBUG=1
916 endif
917
918 ifneq ($(strip $(BUILD_SNMP_TRANSPORT_DEBUG)),)
919 export SNMP_TRANSPORT_DEBUG=1
920 endif
921
922 ifneq ($(strip $(BUILD_SNMP_LAYER_DEBUG)),)
923 export SNMP_LAYER_DEBUG=1
924 endif
925 endif
926
927 snmp:
928 ifneq ($(strip $(BRCM_SNMP)),)
929 ##      $(MAKE) -C $(BROADCOM_DIR)/snmp $(BUILD_SNMP)
930 else
931         cd $(OPENSOURCE_DIR);   (tar xkfj net-snmp.tar.bz2 2> /dev/null || true)
932         $(MAKE) -C $(OPENSOURCE_DIR)/net-snmp $(BUILD_SNMP)
933 endif
934 else
935 snmp:
936 endif
937
938 ifneq ($(strip $(BUILD_4_LEVEL_QOS)),)
939 export BUILD_4_LEVEL_QOS=y
940 endif
941
942 ifneq ($(strip $(BUILD_ILMI)),)
943 ilmi:
944         cd $(OPENSOURCE_DIR);   (tar xkfj net-snmp.tar.bz2 2> /dev/null || true)
945         $(MAKE) -C $(BROADCOM_DIR)/ilmi $(BUILD_ILMI)
946 else
947 ilmi:
948 endif
949
950 ifneq ($(findstring rvsip,$(BRCM_APP_PHONE)),)
951 rvsip:
952         $(MAKE) -C $(BROADCOM_DIR)/rvsip/bos
953         $(MAKE) -C $(BROADCOM_DIR)/rvsip all install
954 else
955 vodsl:
956   ifneq ($(strip $(BUILD_VODSL)),)
957         $(MAKE) -C $(BROADCOM_DIR)/vodsl $(BUILD_VODSL)
958   endif
959 endif
960
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)
964 soapserver:
965         $(MAKE) -C $(BROADCOM_DIR)/SoapToolkit/SoapServer $(BUILD_SOAP)
966 else
967 soap:
968         $(MAKE) -C $(BROADCOM_DIR)/soap $(BUILD_SOAP)
969 endif
970 else
971 soap:
972 endif
973
974 ifneq ($(strip $(BUILD_NAS)),)
975 export WIRELESS=1
976 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; \
980         fi
981         $(MAKE) -C $(BROADCOM_DIR)/nas $(BUILD_NAS)
982
983 #add hotplug here, for nas use only
984 hotplug:
985         $(MAKE) -C $(BROADCOM_DIR)/hotplug $(BUILD_NAS)
986
987 else
988 export WIRELESS=0
989 nas:
990 #add hotplug here, for nas use only
991 hotplug:
992 endif
993
994 ifneq ($(strip $(BUILD_WLCTL)),)
995 export WIRELESS=1
996 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; \
1000         fi
1001         $(MAKE) -C $(BROADCOM_DIR)/wlctl $(BUILD_WLCTL)
1002 else
1003 export WIRELESS=0
1004 wlctl:
1005 endif
1006
1007 ifneq ($(strip $(BUILD_EPITTCP)),)
1008 epittcp:
1009         $(MAKE) -C $(BROADCOM_DIR)/epittcp $(BUILD_EPITTCP)
1010 else
1011 epittcp:
1012 endif
1013
1014 ifneq ($(strip $(WLAN_ENABLE_CTRL_BUTTON)),)
1015 wlenablectrl:
1016         $(MAKE) -C $(BROADCOM_DIR)/wlenablectrl dynamic
1017 else
1018 wlenablectrl:
1019 endif
1020
1021 ifneq ($(strip $(VOICECTL_APP)),)
1022 voicectl:
1023         $(MAKE) -C $(BROADCOM_DIR)/voicectl dynamic
1024 else
1025 voicectl:
1026 endif
1027
1028 ifneq ($(strip $(BUILD_SES)),)
1029 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; \
1033         fi
1034         $(MAKE) -C $(BROADCOM_DIR)/ses $(BUILD_SES)
1035 else
1036 ses:
1037 endif
1038
1039 ifneq ($(strip $(BUILD_NVRAM)),)
1040 nvram:
1041         $(MAKE) -C $(BROADCOM_DIR)/nvram $(BUILD_NVRAM)
1042 else
1043 nvram:
1044 endif
1045
1046 #Always compile Ethernet control utility
1047 ethctl:
1048         $(MAKE) -C $(BROADCOM_DIR)/ethctl dynamic
1049
1050 ifneq ($(strip $(BUILD_DNSPROBE)),)
1051 dnsprobe:
1052         $(MAKE) -C $(BROADCOM_DIR)/dnsprobe $(BUILD_DNSPROBE)
1053 else
1054 dnsprobe:
1055 endif
1056
1057 ifneq ($(strip $(BUILD_IGMP)),)
1058 igmp:
1059         $(MAKE) -C $(BROADCOM_DIR)/igmp $(BUILD_IGMP)
1060 else
1061 igmp:
1062 endif
1063
1064 ifneq ($(strip $(BUILD_DHCPR)),)
1065 dhcpr:
1066         $(MAKE) -C $(BROADCOM_DIR)/dhcpr $(BUILD_DHCPR)
1067 else
1068 dhcpr:
1069 endif
1070
1071 ifneq ($(strip $(BUILD_ZEBRA)),)
1072 zebra:
1073         cd $(OPENSOURCE_DIR);   (tar xkfj zebra.tar.bz2 2> /dev/null || true)
1074         $(MAKE) -C $(OPENSOURCE_DIR)/zebra $(BUILD_ZEBRA)
1075 else
1076 zebra:
1077 endif
1078
1079 ifneq ($(strip $(ODM_AUTO_PROVISION_LAN)),)
1080 autoprovisionlan:
1081         $(MAKE) -C $(BROADCOM_DIR)/autoprovisionlan dynamic
1082 else
1083 autoprovisionlan:
1084 endif
1085
1086 ifneq ($(strip $(BUILD_ATMCTL)),)
1087 atmctl:
1088         $(MAKE) -C $(BROADCOM_DIR)/atmctl $(BUILD_ATMCTL)
1089 else
1090 atmctl:
1091 endif
1092
1093 ifneq ($(strip $(BUILD_ADSLCTL)),)
1094 adslctl:
1095         $(MAKE) -C $(BROADCOM_DIR)/adslctl $(BUILD_ADSLCTL)
1096 else
1097 adslctl:
1098 endif
1099
1100 ifeq ($(strip $(BUILD_CFM_CLI)),y)
1101 ifneq ($(strip $(BUILD_NETCTL)),)
1102 netctl:
1103         $(MAKE) -C $(BROADCOM_DIR)/netctl $(BUILD_NETCTL)
1104 else
1105 netctl:
1106 endif
1107 else
1108 netctl:
1109 endif
1110
1111 ifneq ($(strip $(BUILD_BUSYBOX)),)
1112 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
1117 else
1118 busybox:
1119 endif
1120
1121 ifneq ($(strip $(BUILD_LIBCREDUCTION)),)
1122 libcreduction:
1123         $(MAKE) -C $(OPENSOURCE_DIR)/libcreduction install
1124 else
1125 libcreduction:
1126 endif
1127
1128 ###########################################
1129 #
1130 # VOIP Call Waitting Function
1131 #
1132 ###########################################
1133 ifneq ($(strip $(BUILD_WAV2RTP)),)
1134 wav2rtp:
1135         $(MAKE) -C $(BROADCOM_DIR)/wav2rtp dynamic
1136 else
1137 wav2rtp:
1138 endif
1139
1140 ifneq ($(strip $(BUILD_DIAGAPP)),)
1141 diagapp:
1142         $(MAKE) -C $(BROADCOM_DIR)/diagapp $(BUILD_DIAGAPP)
1143 else
1144 diagapp:
1145 endif
1146
1147 ifneq ($(strip $(BUILD_FTPD)),)
1148 bftpd:
1149         cd $(OPENSOURCE_DIR);   (tar xkfj ftpd.tar.bz2 2> /dev/null || true)
1150         $(MAKE) -C $(OPENSOURCE_DIR)/ftpd $(BUILD_FTPD)
1151 else
1152 bftpd:
1153 endif
1154
1155 ifneq ($(strip $(BUILD_HTTPC)),)
1156 httpc:
1157         $(MAKE) -C $(OPENSOURCE_DIR)/httpc $(BUILD_HTTPC)
1158 else
1159 httpc:
1160 endif
1161
1162 ifneq ($(strip $(BUILD_MPD)),)
1163 mpd:
1164         $(MAKE) -C $(OPENSOURCE_DIR)/mpd $(BUILD_MPD)
1165 else
1166 mpd:
1167 endif
1168
1169 ifneq ($(strip $(BUILD_DDNSD)),)
1170 ddnsd:
1171         $(MAKE) -C $(BROADCOM_DIR)/ddnsd $(BUILD_DDNSD)
1172 else
1173 ddnsd:
1174 endif
1175
1176 ifneq ($(strip $(BUILD_SNTP)),)
1177 sntp:
1178         $(MAKE) -C $(BROADCOM_DIR)/sntp $(BUILD_SNTP)
1179 else
1180 sntp:
1181 endif
1182
1183 ifneq ($(strip $(ODM_CFESETUP)),)
1184 cfesetup:
1185         $(MAKE) -C $(BROADCOM_DIR)/cfesetup all
1186 else
1187 cfesetup:
1188 endif
1189
1190
1191 ifneq ($(strip $(BUILD_IPPD)),)
1192 ippd:
1193         $(MAKE) -C $(BROADCOM_DIR)/ippd $(BUILD_IPPD)
1194 else
1195 ippd:
1196 endif
1197
1198 # Start: Andy porting from 2.21.5, 2005/04/14
1199 ifneq ($(strip $(BUILD_DPROXY)),)
1200 dproxy:
1201         $(MAKE) -C $(OPENSOURCE_DIR)/dproxy $(BUILD_DPROXY)
1202 else
1203 dproxy:
1204 endif
1205 # End: Andy porting from 2.21.5, 2005/04/14
1206
1207 #Paul porting from 2.21.5, 7/24/2006
1208 ifneq ($(strip $(BUILD_PRINTSERVER)),)
1209 iappd:
1210         $(MAKE) -C $(BROADCOM_DIR)/iappd dynamic
1211 lpd:
1212         $(MAKE) -C $(OPENSOURCE_DIR)/lpd dynamic
1213 else
1214 iappd:
1215 lpd:
1216 endif
1217 #Paul porting end
1218
1219 #ifneq ($(strip $(BUILD_PORT_MIRRORING)),)
1220 #export BUILD_PORT_MIRRORING=1
1221 #else
1222 #export BUILD_PORT_MIRRORING=0
1223 #endif
1224
1225 ifneq ($(strip $(BUILD_HOSTMGR)),)
1226 hmi2proxy: vdsl_processing
1227         $(MAKE) -C $(BROADCOM_DIR)/hostCode/hostMgr $(BUILD_HOSTMGR) TARGET=$@ PHY=memap6348
1228 else
1229 hmi2proxy:
1230 endif
1231
1232 ifneq ($(strip $(BUILD_RELAYCONTROL)),)
1233 relayctl:
1234         $(MAKE) -C $(BROADCOM_DIR)/relayCtl/relay6348 $(BUILD_RELAYCONTROL) TARGET=$@
1235 else
1236 relayctl:
1237 endif
1238
1239 ifneq ($(strip $(BUILD_VDSLCTL)),)
1240 vdslctl:
1241         $(MAKE) -C $(BROADCOM_DIR)/vdslctl/vdslctl $(BUILD_VDSLCTL) TARGET=$@
1242 else
1243 vdslctl:
1244 endif
1245
1246 hosttools:
1247 ifneq ($(strip $(BUILD_SIGNATURE_RSA)),)
1248         $(MAKE) -C $(HOSTTOOLS_DIR)/sigmak
1249 endif
1250         $(MAKE) -C $(HOSTTOOLS_DIR)
1251
1252 vdsl_processing: add_6510_support vdsl_modem vdsl_modem_file
1253
1254 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 "**********************************************************************"
1259
1260 vdsl_modem:
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; \
1270         fi
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;
1274
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
1281 else
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
1285  else
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
1288   endif
1289  endif
1290 endif
1291
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')
1301         echo
1302         echo -e "Done! Image $(PROFILE) has been built in $(IMAGES_DIR)."
1303 else
1304         cd $(PROFILE_DIR); \
1305         cp $(KERNEL_DIR)/vmlinux . ; \
1306         $(STRIP) --remove-section=.note --remove-section=.comment vmlinux
1307         @echo
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\""
1313 endif
1314
1315
1316 ###########################################
1317 #
1318 # System code clean-up
1319 #
1320 ###########################################
1321
1322 subdirs: $(patsubst %, _dir_%, $(SUBDIRS))
1323
1324 $(patsubst %, _dir_%, $(SUBDIRS)) :
1325         $(MAKE) -C $(patsubst _dir_%, %, $@) $(TGT)
1326
1327 clean: target_clean app_clean kernel_clean hosttools_clean  remove_6510_support
1328         rm -f .tmpconfig*
1329
1330 fssrc_clean:
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
1338
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
1346
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
1351
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)"
1366
1367 hosttools_clean:
1368         $(MAKE) -C $(HOSTTOOLS_DIR) clean
1369
1370 add_6510_support:
1371         $(6510_REF_CODE)/add6510support DYMMY_HMI_VERSON $(6510_REF_CODE)
1372
1373 remove_6510_support:
1374         rm -fr $(BROADCOM_DIR)/hostCode
1375         rm -fr $(BROADCOM_DIR)/relayCtl
1376         rm -fr $(BROADCOM_DIR)/vdslctl
1377
1378 clean_6510:
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
1385
1386 voice_clean:
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
1392
1393 ###########################################
1394 #
1395 # System-wide exported variables
1396 # (in alphabetical order)
1397 #
1398 ###########################################
1399
1400 export \
1401 AR                         \
1402 AS                         \
1403 ODM_AUTO_PROVISION_LAN   \
1404 ODM_LANG_NETGEAR         \
1405 BRCM_APP_PHONE             \
1406 BRCMAPPS                   \
1407 BRCM_BOARD                 \
1408 BRCM_DRIVER_PCI            \
1409 BRCMDRIVERS_DIR            \
1410 BRCM_DRIVER_WIRELESS       \
1411 BRCM_DRIVER_PHONE          \
1412 BRCM_DSP_APM_FXO           \
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     \
1421 BRCM_DSP_HAL               \
1422 BRCM_DSP_HAL_EXTENSION     \
1423 BRCM_DSP_PCM               \
1424 BRCM_DSP_PCM_G726          \
1425 BRCM_DSP_PCM_T38_EXT       \
1426 BRCM_EXTRAVERSION          \
1427 BRCM_KERNEL_NETQOS         \
1428 BRCM_KERNEL_ROOTFS         \
1429 BRCM_LDX_APP               \
1430 BRCM_MIPS_ONLY_BUILD       \
1431 BRCM_MIPS_ONLY_BUILD       \
1432 BRCM_PSI_VERSION           \
1433 BRCM_PTHREADS              \
1434 BRCM_RELEASE               \
1435 BRCM_RELEASETAG            \
1436 BRCM_SNMP                  \
1437 BRCM_UCLIBC                \
1438 BRCM_VERSION               \
1439 BRCM_VODSL_DUAL_3341       \
1440 BRCM_VOICE_COUNTRY_JAPAN   \
1441 BRCM_VOICE_GLOBAL_CFLAGS   \
1442 BROADCOM_CFM_DIR           \
1443 BUILD_ADSLCTL              \
1444 BUILD_ATMCTL               \
1445 BUILD_AUTO_PROVISION_ON_WAN\
1446 BUILD_BR2684CTL            \
1447 BUILD_BRCM_VLAN            \
1448 BUILD_BRCTL                \
1449 BUILD_BUSYBOX              \
1450 BUILD_CERT                 \
1451 BUILD_CFM                  \
1452 BUILD_CFM_CLI              \
1453 BUILD_CFM_SSHD             \
1454 BUILD_CFM_TELNETD          \
1455 BUILD_DDNSD                \
1456 BUILD_DHCPR                \
1457 BUILD_DIAGAPP              \
1458 BUILD_DIR                  \
1459 BUILD_DNSPROBE             \
1460 BUILD_EBTABLES             \
1461 BUILD_EPITTCP              \
1462 BUILD_ETHWAN               \
1463 BUILD_FTPD                 \
1464 BUILD_GDBSERVER            \
1465 BUILD_HTTPC                \
1466 BUILD_IGMP                 \
1467 BUILD_IPPD                 \
1468 BUILD_IPSEC_TOOLS          \
1469 BUILD_IPTABLES             \
1470 BUILD_NAS                  \
1471 BUILD_NETCTL               \
1472 BUILD_NVRAM                \
1473 BUILD_PORT_MIRRORING       \
1474 BUILD_PPP_DOMAIN_SUFFIX    \
1475 BUILD_PPPD                 \
1476 BUILD_PVC2684CTL           \
1477 BUILD_REAIM                \
1478 BUILD_REMOVE_PPPOE_PASS_THROUGH \
1479 BUILD_RT2684D              \
1480 BUILD_SES                  \
1481 BUILD_SIPROXD              \
1482 BUILD_SLACTEST             \
1483 BUILD_SNMP                 \
1484 BUILD_SNTP                 \
1485 BUILD_SOAP                 \
1486 BUILD_SOAP_VER             \
1487 BUILD_SSHD_MIPS_GENKEY     \
1488 BUILD_SYS_ALG              \
1489 BUILD_SYS_SIP_ALG          \
1490 BUILD_SYS_VPN_ALG          \
1491 BUILD_TOD                  \
1492 BUILD_TR69C                \
1493 BUILD_TR69C_SSL            \
1494 BUILD_TR69_XBRCM           \
1495 BUILD_UDHCP                \
1496 BUILD_UPNP                 \
1497 BUILD_VCONFIG              \
1498 BUILD_VCONFIG              \
1499 BUILD_VODSL                \
1500 BUILD_WLCTL                \
1501 BUILD_ZEBRA                \
1502 BUSYBOX_DIR                \
1503 CC                         \
1504 CROSS_COMPILE              \
1505 CXX                        \
1506 DEFAULTCFG_DIR             \
1507 FSSRC_DIR                  \
1508 HOSTTOOLS_DIR              \
1509 INC_ADSLDRV_PATH           \
1510 INC_BRCMBOARDPARMS_PATH    \
1511 INC_BRCMCFM_PATH           \
1512 INC_BRCMDRIVER_PRIV_PATH   \
1513 INC_BRCMDRIVER_PUB_PATH    \
1514 INC_BRCMSHARED_PRIV_PATH   \
1515 INC_BRCMSHARED_PUB_PATH    \
1516 INC_FLASH_PATH             \
1517 INC_ENDPOINT_PATH          \
1518 INC_KERNEL_BASE            \
1519 INSTALL_DIR                \
1520 JTAG_KERNEL_DEBUG          \
1521 KERNEL_DIR                 \
1522 LD                         \
1523 LIBCDIR                    \
1524 LIBDIR                     \
1525 LIB_PATH                   \
1526 LINUXDIR                   \
1527 NM                         \
1528 OBJCOPY                    \
1529 OBJDUMP                    \
1530 PROFILE_DIR                \
1531 RANLIB                     \
1532 RUN_NOISE                  \
1533 SSTRIP                     \
1534 STRIP                      \
1535 TARGETS_DIR                \
1536 TOOLCHAIN                  \
1537 USERAPPS_DIR               \
1538 WEB_POPUP                  \
1539 XCHANGE_DIR                \
1540 XCHANGE_DSP_APP_EXTENSION  \
1541 VCOPE_TYPE                 \
1542 VCOPE_BOARD                \
1543 VCOPE_LINE_NUMBER          \
1544 DEFAULT_USB_PID            \
1545 BUILD_DPROXY            \
1546
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
1559
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
1566
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
1570
1571 ################################################################################################
1572 #
1573 # VOIP releated exported variables
1574
1575 ################################################################################################
1576 export \
1577 ODM_VOIP_NO_RELAY                 \
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               \
1586 BUILD_WAV2RTP                       \
1587 BUILD_SIP_REALM                     \
1588 FIND_TRANSACTION_WITHOUT_VIA_BRANCH \
1589 SIP_PROXY_FAIL_RECOVER              \
1590 SIP_RTP_MONITOR                     \
1591 SIP_MIN_SE_ENABLE                   \
1592 SIP_SESSION_TIMER_ENABLE            \
1593 VOIP_DIAL_MAP_TIMER                 \
1594 VOIP_INTER_DIGIT_TIMER