USR910x_3.04L.01_consumer.tar.gz
[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 CFE_FILE = $(TARGETS_DIR)/cfe/cfe$(BRCM_CHIP).bin
44 SHARED_DIR = $(BUILD_DIR)/shared
45 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
46           else if [ -x /bin/bash ]; then echo /bin/bash; \
47           else echo sh; fi ; fi)
48 GENDEFCONFIG_CMD = $(HOSTTOOLS_DIR)/scripts/gendefconfig
49 RUN_NOISE=0
50
51
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 ifneq ($(strip $(PROFILE)),)
65 include $(TARGETS_DIR)/$(PROFILE)/$(PROFILE)
66 export BRCM_CHIP
67 export BRCM_FLASHPSI_SIZE
68 export BRCM_DRIVER_WIRELESS_PCMCIA_DATASWAP BRCM_DRIVER_WIRELESS_EBI_DMA
69 export BRCM_DRIVER_USB BRCM_DRIVER_ETHERNET_CONFIG
70 export BRCM_DEFAULTCFG
71 export BRCM_KERNEL_NF_FIREWALL BRCM_KERNEL_NF_MANGLE BRCM_KERNEL_NF_NAT
72 endif
73
74 ###########################################
75 #
76 # Define Toolchain
77 #
78 ###########################################
79 ifeq ($(strip $(BRCM_UCLIBC)),y)
80 NTC=1
81 ifeq ($(strip $(NTC)),1)
82 TOOLCHAIN=/opt/toolchains/uclibc-crosstools_gcc-3.4.2_uclibc-20050502
83 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux-uclibc-
84 else
85 TOOLCHAIN=/opt/toolchains/uclibc
86 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-uclibc-
87 endif
88 else
89 TOOLCHAIN=/usr/crossdev/mips
90 CROSS_COMPILE = $(TOOLCHAIN)/bin/mips-linux-
91 endif
92
93 AR              = $(CROSS_COMPILE)ar
94 AS              = $(CROSS_COMPILE)as
95 LD              = $(CROSS_COMPILE)ld
96 CC              = $(CROSS_COMPILE)gcc
97 CXX             = $(CROSS_COMPILE)g++
98 CPP             = $(CROSS_COMPILE)cpp
99 NM              = $(CROSS_COMPILE)nm
100 STRIP           = $(CROSS_COMPILE)strip
101 SSTRIP          = $(CROSS_COMPILE)sstrip
102 OBJCOPY         = $(CROSS_COMPILE)objcopy
103 OBJDUMP         = $(CROSS_COMPILE)objdump
104 RANLIB          = $(CROSS_COMPILE)ranlib
105
106 LIB_PATH        = $(TOOLCHAIN)/mips-linux/lib
107 LIBDIR          = $(TOOLCHAIN)/mips-linux/lib
108 LIBCDIR         = $(TOOLCHAIN)/mips-linux
109
110 ###########################################
111 #
112 # Application-specific settings
113 #
114 ###########################################
115 INSTALL_DIR = $(TARGETS_DIR)/fs.src
116 TARGET_FS = $(TARGETS_DIR)/$(PROFILE)/fs
117 PROFILE_DIR = $(TARGETS_DIR)/$(PROFILE)
118 PROFILE_PATH = $(TARGETS_DIR)/$(PROFILE)/$(PROFILE)
119 VENDOR_NAME = USR
120 FS_KERNEL_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_fs_kernel
121 CFE_FS_KERNEL_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_cfe_fs_kernel
122 FLASH_IMAGE_NAME = $(VENDOR_NAME)$(PROFILE)_flash_image_$(BRCM_BOARD_ID)
123 INC_BRCMDRIVER_PUB_PATH=$(BRCMDRIVERS_DIR)/opensource/include
124 INC_BRCMDRIVER_PRIV_PATH=$(BRCMDRIVERS_DIR)/broadcom/include
125 INC_BRCMBOARDPARMS_PATH=$(TARGETS_DIR)/boardparms
126 INC_ENDPOINT_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/endpoint/bcm9$(BRCM_CHIP)/inc
127 #INC_ADSLDRV_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/adsl/bcm9$(BRCM_CHIP)
128 INC_ADSLDRV_PATH=$(BRCMDRIVERS_DIR)/broadcom/char/adsl/impl1
129 BROADCOM_CFM_DIR=$(BROADCOM_DIR)/cfm
130 INC_BRCMCFM_PATH=$(BROADCOM_CFM_DIR)/inc
131 VENDOR_COUNTRY = ALL
132 INC_BRCMSHARED_INC_PATH=$(SHARED_DIR)/include
133 INC_BRCMSHARED_SRC_PATH=$(SHARED_DIR)/src
134
135
136 ifeq ($(strip $(BRCM_APP_PHONE)),sip)
137 export VOXXXLOAD=1
138 export VOIPLOAD=1
139 export SIPLOAD=1
140
141 ifeq ($(strip $(BRCM_VODSL_CONFIG_MANAGER)),y)
142         export BRCM_VODSL_CFGMGR=1
143 endif
144
145 BRCM_RELEASETAG := $(BRCM_RELEASETAG).sip
146 endif
147
148 ifeq ($(strip $(BRCM_APP_PHONE)),mgcp)
149 export VOXXXLOAD=1
150 export VOIPLOAD=1
151 export MGCPLOAD=1
152 export BRCM_VODSL_CFGMGR=0
153 BRCM_RELEASETAG := $(BRCM_RELEASETAG).mgcp
154 endif
155
156 ifeq ($(strip $(BRCM_PROFILER_ENABLED)),y)
157 export BRCM_PROFILER_TOOL=1
158 else
159 export BRCM_PROFILER_TOOL=0
160 endif
161
162 ifneq ($(strip $(BUILD_VODSL)),)
163 export VOXXXLOAD=1
164 endif
165
166 ifeq ($(strip $(BRCM_VODSL_STUNC)),y)
167         export BRCM_VODSL_STUN_CLIENT=1
168 endif
169
170 BRCM_DSP_HAL := gw
171 BRCM_DSP_HAL_EXTENSION :=
172 XCHANGE_DSP_APP_EXTENSION :=
173 export XCHANGE_DSP_APP=$(BRCM_DSP_CODEC)
174
175 ifeq ($(strip $(BRCM_DSP_PCM)),y)
176 XCHANGE_DSP_APP := dspApp3341_tdm
177 BRCM_DSP_HAL_EXTENSION := _pcm
178 endif
179
180 ifeq ($(strip $(BRCM_DSP_PCM_G726)),y)
181 XCHANGE_DSP_APP := dspApp3341_tdm_g726
182 BRCM_DSP_HAL_EXTENSION := _pcm
183 endif
184
185 ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y)
186 XCHANGE_DSP_APP := dspApp3341_tdm_t38
187 BRCM_DSP_HAL_EXTENSION := _pcm
188 endif
189
190 ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)),y)
191 XCHANGE_DSP_APP := dspApp3341
192 BRCM_DSP_HAL_EXTENSION := _hybrid
193 XCHANGE_DSP_APP_EXTENSION := _fxo_ext
194 endif
195
196 #
197 #  Warning here, we do re-assign some of the variables defined earlier:
198 #  BRCM_DSP_HAL and BRCM_DSP_HAL_EXTENSION for example, in order to pickup
199 #  the correct board HAL application.
200 #
201 ifeq ($(strip $(BRCM_DSP_FXO)),y)
202 ifeq ($(strip $(BRCM_SLIC_LE9502)),y)
203 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9502FXO
204 BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9502
205 BRCM_DSP_HAL := _Le9502FXO
206 BRCM_DSP_HAL_EXTENSION :=
207 export BRCM_SLIC_LE9502
208 else
209 ifeq ($(strip $(BRCM_SLIC_LE9500)),y)
210 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)_Le9500FXO
211 BRCM_RELEASETAG := $(BRCM_RELEASETAG)._LE9500
212 BRCM_DSP_HAL := _Le9500FXO
213 BRCM_DSP_HAL_EXTENSION :=
214 export BRCM_SLIC_LE9500
215 endif
216 endif
217 endif
218
219
220 #
221 # DSP codec flags definition.  To be used throughout the application (for configuration and vodsl)
222 #
223
224 BRCM_DSP_CODEC_DEFINES := -DXCFG_G711_SUPPORT=1
225
226 ifeq ($(strip $(BRCM_DSP_CODEC_G723)),y)
227 BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
228 endif
229
230 ifeq ($(strip $(BRCM_DSP_CODEC_G726)),y)
231 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
232 endif
233
234 ifeq ($(strip $(BRCM_DSP_CODEC_G729)),y)
235 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
236 endif
237
238 ifeq ($(strip $(BRCM_DSP_CODEC_G7xx)),y)
239 BRCM_DSP_CODEC_DEFINES += -DXCFG_G7231_SUPPORT=1
240 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
241 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
242 endif
243
244 ifeq ($(strip $(BRCM_DSP_PCM)),y)
245 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
246 endif
247
248 ifeq ($(strip $(BRCM_DSP_PCM_G726)),y)
249 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
250 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
251 endif
252
253 ifeq ($(strip $(BRCM_DSP_PCM_T38_EXT)),y)
254 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
255 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
256 endif
257
258 ifeq ($(strip $(BRCM_DSP_CODEC_T38_EXT)),y)
259 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
260 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
261 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
262 endif
263
264 ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)),y)
265 BRCM_DSP_CODEC_DEFINES += -DXCFG_G729_SUPPORT=1
266 BRCM_DSP_CODEC_DEFINES += -DXCFG_G726_SUPPORT=1
267 BRCM_DSP_CODEC_DEFINES += -DXCFG_FAX_SUPPORT=1
268 endif
269
270
271 #
272 #  Definition of the number of voice channels supported based on the specific
273 #  application being created.
274 #
275
276 ifeq ($(strip $(BRCM_DSP_APM_FXO_EXT)), y)
277 BRCM_DSP_CHAN_DEFINES = -DNUM_APM_VOICE_CHANNELS=2 -DNUM_TDM_VOICE_CHANNELS=0 -DNUM_FXO_CHANNELS=1
278 else
279 BRCM_DSP_CHAN_DEFINES = -DNUM_APM_VOICE_CHANNELS=0 -DNUM_TDM_VOICE_CHANNELS=0 -DNUM_FXO_CHANNELS=0
280 endif
281
282 export BRCM_DSP_CODEC_DEFINES
283 export BRCM_DSP_CHAN_DEFINES
284 export BRCM_DSP_FXO
285 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)$(BRCM_DSP_HAL)$(BRCM_DSP_HAL_EXTENSION)
286 export XCHANGE_DSP_APP_EXTENSION
287 export BRCM_DSP_HAL_EXTENSION
288 BRCM_RELEASETAG := $(BRCM_RELEASETAG).$(XCHANGE_DSP_APP)
289
290 # If no codec is selected, build G.711 load.
291 # Any XCHANGE_BUILD_APP directory would be OK
292 # because G.711 is included with all the voice DSP images.
293 ifneq ($(strip $(BUILD_VODSL)),)
294 ifeq ($(strip $(XCHANGE_DSP_APP)),)
295 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)gw
296 export XCHANGE_DSP_APP=g711
297 BRCM_RELEASETAG := $(BRCM_RELEASETAG).g711
298 endif
299 endif
300
301 ifeq ($(strip $(BRCM_MIPS_ONLY_BUILD)),y)
302 export XCHANGE_BUILD_APP=Bcm$(BRCM_CHIP)lv
303 BRCM_DSP_HAL := lv
304 BRCM_DSP_HAL_EXTENSION :=
305 XCHANGE_DSP_APP_EXTENSION=
306 endif
307
308 ifeq ($(strip $(BRCM_VODSL_DUAL_3341)),y)
309 BRCM_RELEASETAG := $(BRCM_RELEASETAG).dual3341
310 endif
311
312 #Set up ADSL standard
313 export ADSL=$(BRCM_ADSL_STANDARD)
314
315 #Set up ADSL_PHY_MODE  {file | obj}
316 export ADSL_PHY_MODE=file
317
318 #Set up ADSL_SELF_TEST
319 export ADSL_SELF_TEST=$(BRCM_ADSL_SELF_TEST)
320
321 ###########################################
322 #
323 # Complete list of applications
324 #
325 ###########################################
326 export OPENSOURCE_DIR=$(USERAPPS_DIR)/opensource
327 SUBDIRS_OPENSOURCE = $(OPENSOURCE_DIR)/atm2684/pvc2684ctl \
328         $(OPENSOURCE_DIR)/openssl \
329         $(OPENSOURCE_DIR)/ipsec-tools \
330         $(OPENSOURCE_DIR)/bridge-utils \
331         $(OPENSOURCE_DIR)/ppp/pppoe \
332         $(OPENSOURCE_DIR)/udhcp \
333         $(OPENSOURCE_DIR)/iptables \
334         $(OPENSOURCE_DIR)/ebtables \
335         $(OPENSOURCE_DIR)/reaim  \
336         $(OPENSOURCE_DIR)/iproute2  \
337         $(OPENSOURCE_DIR)/libosip2 \
338         $(OPENSOURCE_DIR)/siproxd \
339         $(OPENSOURCE_DIR)/zebra  \
340         $(OPENSOURCE_DIR)/net-snmp  \
341         $(OPENSOURCE_DIR)/ftpd \
342         $(OPENSOURCE_DIR)/libcreduction \
343         $(OPENSOURCE_DIR)/busybox
344
345 #In future, we need to add soap when it
346 #is decoupled from cli
347
348 export BROADCOM_DIR=$(USERAPPS_DIR)/broadcom
349 SUBDIRS_BROADCOM = $(BROADCOM_DIR)/nvram \
350         $(BROADCOM_DIR)/cfm \
351         $(BROADCOM_DIR)/upnp/router/upnp \
352         $(BROADCOM_DIR)/nas \
353         $(BROADCOM_DIR)/wlctl \
354         $(BROADCOM_DIR)/vodsl \
355         $(BROADCOM_DIR)/atmctl \
356         $(BROADCOM_DIR)/adslctl \
357         $(BROADCOM_DIR)/netctl \
358         $(BROADCOM_DIR)/dnsprobe \
359         $(BROADCOM_DIR)/igmp \
360         $(BROADCOM_DIR)/dhcpr \
361         $(BROADCOM_DIR)/sntp \
362         $(BROADCOM_DIR)/ippd \
363         $(BROADCOM_DIR)/ddnsd \
364         $(BROADCOM_DIR)/ethctl \
365         $(BROADCOM_DIR)/hotplug \
366         $(BROADCOM_DIR)/epittcp \
367         $(BROADCOM_DIR)/snmp \
368         $(BROADCOM_DIR)/tr69c \
369         $(BROADCOM_DIR)/ses
370
371 SUBDIRS_APP = $(SUBDIRS_BROADCOM) $(SUBDIRS_OPENSOURCE)
372 SUBDIRS = $(foreach dir, $(SUBDIRS_APP), $(shell if [ -d "$(dir)" ]; then echo $(dir); fi))
373
374 OPENSOURCE_APPS = ipsec-tools pvc2684ctl pvc2684d brctl pppd udhcp iptables ebtables \
375                   reaim tc libosip2 siproxd snmp zebra bftpd busybox 
376
377 BROADCOM_APPS = nvram cfm upnp nas wlctl vodsl atmctl adslctl netctl dnsprobe \
378                 igmp dhcpr diagapp sntp ddnsd ilmi ippd hotplug ethctl epittcp snmp ses
379 LIBC_OPTIMIZATION = libcreduction
380
381 ifneq ($(strip $(BUILD_GDBSERVER)),)
382 TOOLCHAIN_UTIL_APPS = gdbserver
383 endif
384
385 BUSYBOX_DIR = $(OPENSOURCE_DIR)/busybox
386
387 BRCMAPPS = openssl $(BROADCOM_APPS) $(OPENSOURCE_APPS) $(TOOLCHAIN_UTIL_APPS) $(LIBC_OPTIMIZATION)
388
389 all: sanity_check profile_check kernelbuild modbuild app hosttools buildimage
390
391 menuconfig:
392         @cd $(INC_KERNEL_BASE); \
393         if [ ! -e linux/CREDITS ]; then \
394           echo Untarring original Linux kernel source...; \
395           (tar xkfj $(ORIGINAL_KERNEL) 2> /dev/null || true); \
396         fi
397         $(MAKE) -C $(KERNEL_DIR)/scripts/lxdialog HOSTCC=gcc
398         $(CONFIG_SHELL) $(HOSTTOOLS_DIR)/scripts/Menuconfig $(TARGETS_DIR)/config.in
399
400 sanity_check:
401         @if [ "$(PROFILE)" = "" ]; then \
402           echo You need to specify build profile name from $(TARGETS_DIR) using 'make PROFILE=<profile name>...'; exit 1; \
403         fi
404
405 profile_check:
406         @if [ "$(LAST_PROFILE)" != "" ] && [ "$(LAST_PROFILE)" != "$(PROFILE)" ]; then \
407                 echo "The specified profile, $(PROFILE), differs from the last one built, $(LAST_PROFILE)."; \
408                 echo "The entire image must be rebuilt."; \
409                 read -p "Press ENTER to rebuild the entire image or CTRL-C to abort. " ; \
410                 $(MAKE) PROFILE=$(LAST_PROFILE) clean; \
411                 $(MAKE) PROFILE=$(PROFILE); \
412                 echo "Ignore the make exit error, Error 1"; \
413                 exit 1; \
414         fi
415
416 $(KERNEL_DIR)/vmlinux:
417         $(GENDEFCONFIG_CMD) $(PROFILE_PATH)
418         cd $(KERNEL_DIR); \
419         cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config; \
420         $(MAKE) oldconfig; $(MAKE); $(MAKE) modules_install
421
422 kernelbuild:
423 ifeq ($(wildcard $(KERNEL_DIR)/vmlinux),)
424         @cd $(INC_KERNEL_BASE); \
425         if [ ! -e linux/CREDITS ]; then \
426           echo Untarring original Linux kernel source...; \
427           (tar xkfj $(ORIGINAL_KERNEL) 2> /dev/null || true); \
428         fi
429         $(GENDEFCONFIG_CMD) $(PROFILE_PATH)
430         cd $(KERNEL_DIR); \
431         cp -f $(KERNEL_DIR)/arch/mips/defconfig $(KERNEL_DIR)/.config; \
432         $(MAKE) oldconfig; $(MAKE)
433 else
434         cd $(KERNEL_DIR); $(MAKE)
435 endif
436
437 kernel: profile_check kernelbuild hosttools buildimage
438
439 ifeq ($(strip $(VOXXXLOAD)),1)
440 modbuild: touch_voice_files
441         cd $(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install
442 else
443 modbuild:
444         cd $(KERNEL_DIR); $(MAKE) modules && $(MAKE) modules_install
445 endif
446
447 modules: profile_check modbuild hosttools buildimage
448
449 app: profile_check prebuild $(BRCMAPPS) hosttools rm_cvs buildimage 
450
451 prebuild:
452         mkdir -p $(INSTALL_DIR)/bin $(INSTALL_DIR)/lib
453
454 rm_cvs:
455         @echo "Removing CVS info"
456         find $(INSTALL_DIR) -name 'CVS' -print -exec rm -rf "{}" ";"
457
458 # touch_voice_files doesn't clean up voice, just enables incremental build of voice code
459 touch_voice_files:
460         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 "{}" ";"
461         rm -rf kernel/linux/.tmp_versions/endpointdd.mod
462         rm -rf kernel/linux/arch/mips/defconfig
463         rm -rf kernel/linux/include/config/bcm/endpoint/
464         rm -rf kernel/linux/include/asm-mips/offset.h
465         rm -rf kernel/linux/include/asm-mips/reg.h
466         find kernel/linux/lib/ -name '*.o' -print -exec rm -f "{}" ";"
467         find kernel/linux/lib/ -name '*.lib' -print -exec rm -f "{}" ";"
468
469 # Build user applications depending on if they are
470 # specified in the profile
471 ifneq ($(strip $(BUILD_PVC2684CTL)),)
472 export BUILD_PVC2684D=$(BUILD_PVC2684CTL)
473 pvc2684d:
474 pvc2684ctl:
475         $(MAKE) -C $(OPENSOURCE_DIR)/atm2684/pvc2684ctl $(BUILD_PVC2684CTL)
476 else
477 pvc2684ctl:
478 endif
479
480 ifneq ($(strip $(BUILD_BRCTL)),)
481 brctl:
482         cd $(OPENSOURCE_DIR);   (tar xkfj bridge-utils.tar.bz2 2> /dev/null || true)
483         $(MAKE) -C $(OPENSOURCE_DIR)/bridge-utils $(BUILD_BRCTL)
484 else
485 brctl:
486 endif
487
488 ifneq ($(strip $(BUILD_VCONFIG)),)
489 export BUILD_VCONFIG=y
490 endif
491
492 ifneq ($(strip $(BUILD_CFM)),)
493
494 ifneq ($(strip $(BUILD_CFM_MENU)),)
495 export BUILD_CFM_MENU=y
496 endif
497
498 cfm:
499         $(MAKE) -C $(BROADCOM_DIR)/cfm $(BUILD_CFM)
500 else
501 cfm:
502 endif
503
504 # iptables is dependent on kernel netfilter modules
505 ifneq ($(strip $(BRCM_KERNEL_NETFILTER)),)
506 ifneq ($(strip $(BUILD_IPTABLES)),)
507 iptables:
508         cd $(OPENSOURCE_DIR);   (tar xkfj iptables.tar.bz2 2> /dev/null || true)
509         $(MAKE) -C $(OPENSOURCE_DIR)/iptables $(BUILD_IPTABLES)
510 iptables-build:
511         cd $(OPENSOURCE_DIR);   (tar xkfj iptables.tar.bz2 2> /dev/null || true)
512         $(MAKE) -C $(OPENSOURCE_DIR)/iptables static
513 else
514 iptables:
515 endif
516 else
517 iptables:
518         @echo Warning: You need to enable netfilter in the kernel !!!!!
519 endif
520
521 ifneq ($(strip $(BUILD_EBTABLES)),)
522 ebtables:
523         cd $(OPENSOURCE_DIR);   (tar xkfj ebtables.tar.bz2 2> /dev/null || true)
524         $(MAKE) -C $(OPENSOURCE_DIR)/ebtables $(BUILD_EBTABLES)
525 else
526 ebtables:
527 endif
528
529 ifneq ($(strip $(BUILD_PPPD)),)
530 pppd:
531         $(MAKE) -C $(OPENSOURCE_DIR)/ppp/pppoe $(BUILD_PPPD)
532 else
533 pppd:
534 endif
535
536 ifneq ($(strip $(BUILD_REAIM)),)
537 reaim:
538         cd $(OPENSOURCE_DIR);   (tar xkfj reaim.tar.bz2 2> /dev/null || true)
539         $(MAKE) -C $(OPENSOURCE_DIR)/reaim $(BUILD_REAIM)
540 else
541 reaim:
542 endif
543
544 ifneq ($(strip $(BRCM_KERNEL_NETQOS)),)
545 tc:
546         cd $(OPENSOURCE_DIR);   (tar xkfj iproute2.tar.bz2 2> /dev/null || true)
547         $(MAKE) -C $(OPENSOURCE_DIR)/iproute2 dynamic
548 else
549 tc:
550 endif
551
552 ifneq ($(strip $(BUILD_GDBSERVER)),)
553 gdbserver:
554         install -m 755 $(TOOLCHAIN)/mips-linux-uclibc/target-apps/usr/bin/gdbserver $(INSTALL_DIR)/bin
555         $(STRIP) $(INSTALL_DIR)/bin/gdbserver
556 else
557 gdbserver:
558 endif
559
560 ifneq ($(strip $(BUILD_ETHWAN)),)
561 export BUILD_ETHWAN=y
562 endif
563
564 ifneq ($(strip $(BUILD_UDHCP)),)
565 udhcp:
566         $(MAKE) -C $(OPENSOURCE_DIR)/udhcp $(BUILD_UDHCP)
567 else
568 udhcp:
569 endif
570
571 # UPNP is dependent on iptables
572 ifneq ($(strip $(BUILD_IPTABLES)),)
573 ifneq ($(strip $(BUILD_UPNP)),)
574 upnp: iptables-build
575         $(MAKE) -C $(BROADCOM_DIR)/upnp/router/upnp  $(BUILD_UPNP)
576 else
577 upnp:
578 endif
579 else
580 upnp:
581         @echo Warning: You need to build iptables first !!!!!
582 endif
583
584 ifneq ($(strip $(BUILD_IPSEC_TOOLS)),)
585 ipsec-tools:
586         cd $(OPENSOURCE_DIR);   (tar xkfj ipsec-tools.tar.bz2 2> /dev/null || true)
587         $(MAKE) -C $(OPENSOURCE_DIR)/ipsec-tools $(BUILD_IPSEC_TOOLS)
588 else
589 ipsec-tools:
590 endif
591
592 ifneq ($(strip $(BUILD_CERT)),)
593 openssl:
594         cd $(OPENSOURCE_DIR);   (tar xkfj openssl.tar.bz2 2> /dev/null || true)
595         $(MAKE) -C $(OPENSOURCE_DIR)/openssl dynamic
596 else
597 openssl:
598 endif
599
600
601 ifneq ($(strip $(BUILD_SIPROXD)),)
602 siproxd:
603         cd $(OPENSOURCE_DIR);   (tar xkfj siproxd.tar.bz2 2> /dev/null || true)
604         $(MAKE) -C $(OPENSOURCE_DIR)/siproxd $(BUILD_SIPROXD)
605 libosip2:
606         cd $(OPENSOURCE_DIR);   (tar xkfj libosip2.tar.bz2 2> /dev/null || true)
607         $(MAKE) -C $(OPENSOURCE_DIR)/libosip2
608 else
609 siproxd:
610
611 libosip2:
612
613 endif
614
615 ifneq ($(strip $(BUILD_SNMP)),)
616
617 ifneq ($(strip $(BUILD_SNMP_SET)),)
618 export BUILD_SNMP_SET=1
619 else
620 export BUILD_SNMP_SET=0
621 endif
622
623 ifneq ($(strip $(BUILD_SNMP_ADSL_MIB)),)
624 export BUILD_SNMP_ADSL_MIB=1
625 else
626 export BUILD_SNMP_ADSL_MIB=0
627 endif
628
629 ifneq ($(strip $(BUILD_SNMP_ATM_MIB)),)
630 export BUILD_SNMP_ATM_MIB=1
631 else
632 export BUILD_SNMP_ATM_MIB=0
633 endif
634
635 ifneq ($(strip $(BUILD_SNMP_AT_MIB)),)
636 export BUILD_SNMP_AT_MIB=1
637 else
638 export BUILD_SNMP_AT_MIB=0
639 endif
640
641 ifneq ($(strip $(BUILD_SNMP_SYSOR_MIB)),)
642 export BUILD_SNMP_SYSOR_MIB=1
643 else
644 export BUILD_SNMP_SYSOR_MIB=0
645 endif
646
647 ifneq ($(strip $(BUILD_SNMP_TCP_MIB)),)
648 export BUILD_SNMP_TCP_MIB=1
649 else
650 export BUILD_SNMP_TCP_MIB=0
651 endif
652
653 ifneq ($(strip $(BUILD_SNMP_UDP_MIB)),)
654 export BUILD_SNMP_UDP_MIB=1
655 else
656 export BUILD_SNMP_UDP_MIB=0
657 endif
658
659 ifneq ($(strip $(BUILD_SNMP_IP_MIB)),)
660 export BUILD_SNMP_IP_MIB=1
661 else
662 export BUILD_SNMP_IP_MIB=0
663 endif
664
665 ifneq ($(strip $(BUILD_SNMP_ICMP_MIB)),)
666 export BUILD_SNMP_ICMP_MIB=1
667 else
668 export BUILD_SNMP_ICMP_MIB=0
669 endif
670
671 ifneq ($(strip $(BUILD_SNMP_SNMP_MIB)),)
672 export BUILD_SNMP_SNMP_MIB=1
673 else
674 export BUILD_SNMP_SNMP_MIB=0
675 endif
676
677 ifneq ($(strip $(BUILD_SNMP_ATMFORUM_MIB)),)
678 export BUILD_SNMP_ATMFORUM_MIB=1
679 else
680 export BUILD_SNMP_ATMFORUM_MIB=0
681 endif
682
683 ifneq ($(strip $(BRCM_SNMP)),)
684
685 ifneq ($(strip $(BUILD_SNMP_CHINA_TELECOM_CPE_MIB)),)
686 export BUILD_SNMP_CHINA_TELECOM_CPE_MIB=y
687 export BUILD_SNMP_MIB2=y
688 endif
689
690 ifneq ($(strip $(BUILD_SNMP_UDP)),)
691 export BUILD_SNMP_UDP=y
692 endif
693
694 ifneq ($(strip $(BUILD_SNMP_EOC)),)
695 export BUILD_SNMP_EOC=y
696 endif
697
698 ifneq ($(strip $(BUILD_SNMP_AAL5)),)
699 export BUILD_SNMP_AAL5=y
700 endif
701
702 ifneq ($(strip $(BUILD_SNMP_AUTO)),)
703 export BUILD_SNMP_AUTO=y
704 endif
705
706 ifneq ($(strip $(BUILD_SNMP_DEBUG)),)
707 export BUILD_SNMP_DEBUG=y
708 endif
709
710 ifneq ($(strip $(BUILD_SNMP_TRANSPORT_DEBUG)),)
711 export BUILD_SNMP_TRANSPORT_DEBUG=y
712 endif
713
714 ifneq ($(strip $(BUILD_SNMP_LAYER_DEBUG)),)
715 export BUILD_SNMP_LAYER_DEBUG=y
716 endif
717 endif
718
719 snmp:
720 ifneq ($(strip $(BRCM_SNMP)),)
721 ##      $(MAKE) -C $(BROADCOM_DIR)/snmp $(BUILD_SNMP)
722 else
723         cd $(OPENSOURCE_DIR);   (tar xkfj net-snmp.tar.bz2 2> /dev/null || true)
724         $(MAKE) -C $(OPENSOURCE_DIR)/net-snmp $(BUILD_SNMP)
725 endif
726 else
727 snmp:
728 endif
729
730 ifneq ($(strip $(BUILD_ILMI)),)
731 ilmi:
732         cd $(OPENSOURCE_DIR);   (tar xkfj net-snmp.tar.bz2 2> /dev/null || true)
733         $(MAKE) -C $(BROADCOM_DIR)/ilmi $(BUILD_ILMI)
734 else
735 ilmi:
736 endif
737
738 ifneq ($(strip $(BUILD_VODSL)),)
739 vodsl:
740         $(MAKE) -C $(BROADCOM_DIR)/vodsl $(BUILD_VODSL)
741 else
742 vodsl:
743 endif
744
745 # Leave it for the future when soap server is decoupled from cfm
746 ifneq ($(strip $(BUILD_SOAP)),)
747 ifeq ($(strip $(BUILD_SOAP_VER)),2)
748 soapserver:
749         $(MAKE) -C $(BROADCOM_DIR)/SoapToolkit/SoapServer $(BUILD_SOAP)
750 else
751 soap:
752         $(MAKE) -C $(BROADCOM_DIR)/soap $(BUILD_SOAP)
753 endif
754 else
755 soap:
756 endif
757
758 ifneq ($(strip $(BUILD_NAS)),)
759 export WIRELESS=1
760 nas:
761         $(MAKE) -C $(BROADCOM_DIR)/nas $(BUILD_NAS)
762
763 #add hotplug here, for nas use only
764 hotplug:
765         $(MAKE) -C $(BROADCOM_DIR)/hotplug $(BUILD_NAS)
766
767 else
768 export WIRELESS=0
769 nas:
770 #add hotplug here, for nas use only
771 hotplug:
772 endif
773
774 ifneq ($(strip $(BUILD_WLCTL)),)
775 export WIRELESS=1
776 wlctl:
777         $(MAKE) -C $(BROADCOM_DIR)/wlctl $(BUILD_WLCTL)
778 else
779 export WIRELESS=0
780 wlctl:
781 endif
782
783 #Always compile Ethernet control utility
784 ethctl:
785         $(MAKE) -C $(BROADCOM_DIR)/ethctl dynamic
786
787 ifneq ($(strip $(BUILD_DNSPROBE)),)
788 dnsprobe:
789         $(MAKE) -C $(BROADCOM_DIR)/dnsprobe $(BUILD_DNSPROBE)
790 else
791 dnsprobe:
792 endif
793
794 ifneq ($(strip $(BUILD_IGMP)),)
795 igmp:
796         $(MAKE) -C $(BROADCOM_DIR)/igmp $(BUILD_IGMP)
797 else
798 igmp:
799 endif
800
801 ifneq ($(strip $(BUILD_DHCPR)),)
802 dhcpr:
803         $(MAKE) -C $(BROADCOM_DIR)/dhcpr $(BUILD_DHCPR)
804 else
805 dhcpr:
806 endif
807
808 ifneq ($(strip $(BUILD_ZEBRA)),)
809 zebra:
810         cd $(OPENSOURCE_DIR);   (tar xkfj zebra.tar.bz2 2> /dev/null || true)
811         $(MAKE) -C $(OPENSOURCE_DIR)/zebra $(BUILD_ZEBRA)
812 else
813 zebra:
814 endif
815
816 ifneq ($(strip $(BUILD_ATMCTL)),)
817 atmctl:
818         $(MAKE) -C $(BROADCOM_DIR)/atmctl $(BUILD_ATMCTL)
819 else
820 atmctl:
821 endif
822
823 ifneq ($(strip $(BUILD_ADSLCTL)),)
824 adslctl:
825         $(MAKE) -C $(BROADCOM_DIR)/adslctl $(BUILD_ADSLCTL)
826 else
827 adslctl:
828 endif
829
830 ifeq ($(strip $(BUILD_CFM_CLI)),y)
831 ifneq ($(strip $(BUILD_NETCTL)),)
832 netctl:
833         $(MAKE) -C $(BROADCOM_DIR)/netctl $(BUILD_NETCTL)
834 else
835 netctl:
836 endif
837 else
838 netctl:
839 endif
840
841 ifneq ($(strip $(BUILD_BUSYBOX)),)
842 busybox:
843         cd $(OPENSOURCE_DIR); (tar xkfj busybox.tar.bz2 2> /dev/null || true)
844 #       $(MAKE) -C $(OPENSOURCE_DIR)/busybox $(BUILD_BUSYBOX)
845         cd $(OPENSOURCE_DIR)/busybox; cp -f brcm.config .config
846         $(MAKE) -C $(OPENSOURCE_DIR)/busybox install
847 else
848 busybox:
849 endif
850
851 ifneq ($(strip $(BUILD_LIBCREDUCTION)),)
852 libcreduction:
853         mkdir -p $(OPENSOURCE_DIR)/libcreduction/uclibc
854         $(MAKE) -C $(OPENSOURCE_DIR)/libcreduction install
855 else
856 libcreduction:
857 endif
858
859 ifneq ($(strip $(BUILD_DIAGAPP)),)
860 diagapp:
861         $(MAKE) -C $(BROADCOM_DIR)/diagapp $(BUILD_DIAGAPP)
862 else
863 diagapp:
864 endif
865
866 ifneq ($(strip $(BUILD_FTPD)),)
867 bftpd:
868         cd $(OPENSOURCE_DIR);   (tar xkfj ftpd.tar.bz2 2> /dev/null || true)
869         $(MAKE) -C $(OPENSOURCE_DIR)/ftpd $(BUILD_FTPD)
870 else
871 bftpd:
872 endif
873
874 ifneq ($(strip $(BUILD_DDNSD)),)
875 ddnsd:
876         $(MAKE) -C $(BROADCOM_DIR)/ddnsd $(BUILD_DDNSD)
877 else
878 ddnsd:
879 endif
880
881 ifneq ($(strip $(BUILD_SNTP)),)
882 sntp:
883         $(MAKE) -C $(BROADCOM_DIR)/sntp $(BUILD_SNTP)
884 else
885 sntp:
886 endif
887
888 ifneq ($(strip $(BUILD_EPITTCP)),)
889 epittcp:
890         $(MAKE) -C $(BROADCOM_DIR)/epittcp $(BUILD_EPITTCP)
891 else
892 epittcp:
893 endif
894
895 ifneq ($(strip $(BUILD_SES)),)
896 ses:
897         $(MAKE) -C $(BROADCOM_DIR)/ses $(BUILD_SES)
898 else
899 ses:
900 endif
901
902 ifneq ($(strip $(BUILD_NVRAM)),)
903 nvram:
904         $(MAKE) -C $(BROADCOM_DIR)/nvram $(BUILD_NVRAM)
905 else
906 nvram:
907 endif
908
909 ifneq ($(strip $(BUILD_IPPD)),)
910 ippd:
911         $(MAKE) -C $(BROADCOM_DIR)/ippd $(BUILD_IPPD)
912 else
913 ippd:
914 endif
915
916 ifneq ($(strip $(BUILD_PORT_MIRRORING)),)
917 export BUILD_PORT_MIRRORING=1
918 else
919 export BUILD_PORT_MIRRORING=0
920 endif
921
922 hosttools:
923         $(MAKE) -C $(HOSTTOOLS_DIR)
924
925
926 buildimage: $(KERNEL_DIR)/vmlinux
927         su --command="cd $(TARGETS_DIR); ./buildFS"
928 ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),squashfs)
929         #$(HOSTTOOLS_DIR)/mksquashfs $(TARGET_FS) $(PROFILE_DIR)/rootfs.img -noappend -be -always-use-fragments -gzip
930         $(HOSTTOOLS_DIR)/mksquashfs $(TARGET_FS) $(PROFILE_DIR)/rootfs.img -noappend -be -lzma -no-fragments -noI
931 else
932  ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),cramfs)
933 #       $(HOSTTOOLS_DIR)/mkcramfs -r -g $(TARGET_FS) $(PROFILE_DIR)/rootfs.img
934         $(HOSTTOOLS_DIR)/mkcramfs -r $(TARGET_FS) $(PROFILE_DIR)/rootfs.img
935  else
936   ifeq ($(strip $(BRCM_KERNEL_ROOTFS)),jffs2)
937         $(HOSTTOOLS_DIR)/mkfs.jffs2 -b -p -e $(BRCM_FLASHBLK_SIZE) -r $(TARGET_FS) -o $(PROFILE_DIR)/rootfs.img
938   endif
939  endif
940 endif
941
942 ifneq ($(strip $(BRCM_KERNEL_ROOTFS)),nfs)
943         cd $(PROFILE_DIR); \
944         cp $(KERNEL_DIR)/vmlinux . ; \
945         $(STRIP) --remove-section=.note --remove-section=.comment vmlinux; \
946         $(OBJCOPY) -O binary vmlinux vmlinux.bin; \
947         $(HOSTTOOLS_DIR)/cmplzma -k -2 vmlinux vmlinux.bin vmlinux.lz;\
948         $(HOSTTOOLS_DIR)/bcmImageBuilder --output $(FS_KERNEL_IMAGE_NAME) --chip $(BRCM_CHIP) --board $(BRCM_BOARD_ID) --blocksize $(BRCM_FLASHBLK_SIZE) --cfefile $(CFE_FILE) --rootfsfile rootfs.img --kernelfile vmlinux.lz; \
949         $(HOSTTOOLS_DIR)/bcmImageBuilder --output $(CFE_FS_KERNEL_IMAGE_NAME) --chip $(BRCM_CHIP) --board $(BRCM_BOARD_ID) --blocksize $(BRCM_FLASHBLK_SIZE) --cfefile $(CFE_FILE) --rootfsfile rootfs.img --kernelfile vmlinux.lz --include-cfe; \
950         $(HOSTTOOLS_DIR)/createimg -b $(BRCM_BOARD_ID) -n $(BRCM_NUM_MAC_ADDRESSES) -m $(BRCM_BASE_MAC_ADDRESS) -i $(CFE_FS_KERNEL_IMAGE_NAME) -o $(FLASH_IMAGE_NAME) -l $(VENDOR_COUNTRY); \
951         $(HOSTTOOLS_DIR)/addvtoken $(FLASH_IMAGE_NAME) $(FLASH_IMAGE_NAME).w
952         @mkdir -p $(IMAGES_DIR)
953         @cp $(PROFILE_DIR)/$(FS_KERNEL_IMAGE_NAME) $(IMAGES_DIR)/$(FS_KERNEL_IMAGE_NAME)_$(BRCM_RELEASETAG)-$(shell date '+%y%m%d_%H%M')
954         @echo
955         @echo -e "Done! Image $(PROFILE) has been built in $(IMAGES_DIR)."
956 else
957         cd $(PROFILE_DIR); \
958         cp $(KERNEL_DIR)/vmlinux . ; \
959         $(STRIP) --remove-section=.note --remove-section=.comment vmlinux
960         @echo
961         @echo -e "\t=== Following the below steps to start your NFS root file system on host ==="
962         @echo -e "Step 1: Copy $(PROFILE_DIR)/vmlinux to your TFTP server boot directory, such as /tftpboot"
963         @echo -e "Step 2: Add \"$(PROFILE_DIR)/fs *(rw,no_root_squash)\" to /etc/exports"
964         @echo -e "Step 3: Become root and restart your nfs server, such as \"service nfs restart\""
965         @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\""
966 endif
967
968
969 ###########################################
970 #
971 # System code clean-up
972 #
973 ###########################################
974
975 subdirs: $(patsubst %, _dir_%, $(SUBDIRS))
976
977 $(patsubst %, _dir_%, $(SUBDIRS)) :
978         $(MAKE) -C $(patsubst _dir_%, %, $@) $(TGT)
979
980 clean: target_clean app_clean kernel_clean hosttools_clean
981         rm -f .tmpconfig*
982
983 fssrc_clean:
984         rm -fr $(INSTALL_DIR)/bin
985         rm -fr $(INSTALL_DIR)/sbin
986         rm -fr $(INSTALL_DIR)/lib
987         rm -fr $(INSTALL_DIR)/upnp
988         rm -fr $(INSTALL_DIR)/docs
989         rm -fr $(INSTALL_DIR)/webs
990         rm -fr $(INSTALL_DIR)/usr
991         rm -fr $(INSTALL_DIR)/linuxrc
992
993 kernel_clean: sanity_check
994         $(MAKE) -C $(KERNEL_DIR) mrproper
995         rm -f $(KERNEL_DIR)/arch/mips/defconfig
996         rm -f $(HOSTTOOLS_DIR)/lzma/decompress/*.o
997         rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxKernel
998         rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxKernel
999
1000 app_clean: sanity_check fssrc_clean
1001         $(MAKE) subdirs TGT=clean
1002         rm -rf $(XCHANGE_DIR)/dslx/lib/LinuxUser
1003         rm -rf $(XCHANGE_DIR)/dslx/obj/LinuxUser
1004
1005 target_clean: sanity_check
1006         rm -f $(PROFILE_DIR)/rootfs.img
1007         rm -f $(PROFILE_DIR)/vmlinux
1008         rm -f $(PROFILE_DIR)/vmlinux.bin
1009         rm -f $(PROFILE_DIR)/vmlinux.lz
1010         rm -f $(PROFILE_DIR)/$(FS_KERNEL_IMAGE_NAME)
1011         rm -f $(PROFILE_DIR)/$(CFE_FS_KERNEL_IMAGE_NAME)
1012         rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME)
1013         rm -f $(PROFILE_DIR)/$(FLASH_IMAGE_NAME).w
1014         rm -fr $(PROFILE_DIR)/modules
1015         find targets -name vmlinux -print -exec rm -f "{}" ";"
1016         su --command="rm -fr $(TARGET_FS)"
1017
1018 hosttools_clean:
1019         $(MAKE) -C $(HOSTTOOLS_DIR) clean
1020
1021 ###########################################
1022 #
1023 # System-wide exported variables
1024 # (in alphabetical order)
1025 #
1026 ###########################################
1027
1028 export \
1029 AR                         \
1030 AS                         \
1031 BRCM_APP_PHONE             \
1032 BRCMAPPS                   \
1033 BRCM_BOARD                 \
1034 BRCM_DRIVER_PCI            \
1035 BRCMDRIVERS_DIR            \
1036 BRCM_DSP_APM_FXO           \
1037 BRCM_DSP_APM_FXO_EXT       \
1038 BRCM_DSP_CODEC_G711        \
1039 BRCM_DSP_CODEC_G723        \
1040 BRCM_DSP_CODEC_G726        \
1041 BRCM_DSP_CODEC_G729        \
1042 BRCM_DSP_CODEC_G7xx        \
1043 BRCM_DSP_CODEC_T38_EXT     \
1044 BRCM_DSP_CODEC_T38_INT     \
1045 BRCM_DSP_HAL               \
1046 BRCM_DSP_HAL_EXTENSION     \
1047 BRCM_DSP_PCM               \
1048 BRCM_DSP_PCM_G726          \
1049 BRCM_DSP_PCM_T38_EXT       \
1050 BRCM_EXTRAVERSION          \
1051 BRCM_KERNEL_NETQOS         \
1052 BRCM_KERNEL_ROOTFS         \
1053 BRCM_LDX_APP               \
1054 BRCM_MIPS_ONLY_BUILD       \
1055 BRCM_MIPS_ONLY_BUILD       \
1056 BRCM_PSI_VERSION           \
1057 BRCM_PTHREADS              \
1058 BRCM_RELEASE               \
1059 BRCM_RELEASETAG            \
1060 BRCM_SNMP                  \
1061 BRCM_UCLIBC                \
1062 BRCM_VERSION               \
1063 BRCM_VODSL_DUAL_3341       \
1064 BRCM_VOICE_COUNTRY_JAPAN   \
1065 BRCM_VOICE_GLOBAL_CFLAGS   \
1066 BROADCOM_CFM_DIR           \
1067 BUILD_ADSLCTL              \
1068 BUILD_ATMCTL               \
1069 BUILD_BR2684CTL            \
1070 BUILD_BRCM_VLAN            \
1071 BUILD_BRCTL                \
1072 BUILD_BUSYBOX              \
1073 BUILD_CERT                 \
1074 BUILD_CFM                  \
1075 BUILD_CFM_CLI              \
1076 BUILD_CFM_SSHD             \
1077 BUILD_CFM_TELNETD          \
1078 BUILD_DDNSD                \
1079 BUILD_DHCPR                \
1080 BUILD_DIAGAPP              \
1081 BUILD_DIR                  \
1082 BUILD_DNSPROBE             \
1083 BUILD_EBTABLES             \
1084 BUILD_EPITTCP              \
1085 BUILD_ETHWAN               \
1086 BUILD_FTPD                 \
1087 BUILD_GDBSERVER            \
1088 BUILD_IGMP                 \
1089 BUILD_IPPD                 \
1090 BUILD_IPSEC_TOOLS          \
1091 BUILD_IPTABLES             \
1092 BUILD_NAS                  \
1093 BUILD_NETCTL               \
1094 BUILD_NVRAM                \
1095 BUILD_PORT_MIRRORING                     \
1096 BUILD_PPPD                 \
1097 BUILD_PVC2684CTL           \
1098 BUILD_REAIM                \
1099 BUILD_RT2684D              \
1100 BUILD_SES                  \
1101 BUILD_SIPROXD              \
1102 BUILD_SLACTEST             \
1103 BUILD_SNMP                 \
1104 BUILD_SNTP                 \
1105 BUILD_SOAP                 \
1106 BUILD_SOAP_VER             \
1107 BUILD_SSHD_MIPS_GENKEY     \
1108 BUILD_TOD                  \
1109 BUILD_TR69C                \
1110 BUILD_TR69C_SSL            \
1111 BUILD_UDHCP                \
1112 BUILD_UPNP                 \
1113 BUILD_VCONFIG              \
1114 BUILD_VCONFIG              \
1115 BUILD_VODSL                \
1116 BUILD_WLCTL                \
1117 BUILD_ZEBRA                \
1118 BUSYBOX_DIR                \
1119 CC                         \
1120 CROSS_COMPILE              \
1121 CXX                        \
1122 DEFAULTCFG_DIR             \
1123 FSSRC_DIR                  \
1124 HOSTTOOLS_DIR              \
1125 INC_ADSLDRV_PATH           \
1126 INC_BRCMBOARDPARMS_PATH    \
1127 INC_BRCMCFM_PATH           \
1128 INC_BRCMDRIVER_PRIV_PATH   \
1129 INC_BRCMDRIVER_PUB_PATH    \
1130 INC_BRCMSHARED_INC_PATH    \
1131 INC_BRCMSHARED_SRC_PATH    \
1132 INC_ENDPOINT_PATH          \
1133 INC_KERNEL_BASE            \
1134 INSTALL_DIR                \
1135 JTAG_KERNEL_DEBUG          \
1136 KERNEL_DIR                 \
1137 LD                         \
1138 LIBCDIR                    \
1139 LIBDIR                     \
1140 LIB_PATH                   \
1141 LINUXDIR                   \
1142 NM                         \
1143 OBJCOPY                    \
1144 OBJDUMP                    \
1145 PROFILE_DIR                \
1146 RANLIB                     \
1147 RUN_NOISE                  \
1148 SSTRIP                     \
1149 STRIP                      \
1150 TARGETS_DIR                \
1151 TOOLCHAIN                  \
1152 USERAPPS_DIR               \
1153 WEB_POPUP                  \
1154 XCHANGE_DIR                \
1155 XCHANGE_DSP_APP_EXTENSION
1156