GUI: Fix Tomato RAF theme for all builds. Compilation typo.
[tomato.git] / release / src-rt-6.x.4708 / Makefile
blob66146472a5e72cea2ec96e57a729074e53851d23
2 # Toplevel Makefile for the BCM947xx Linux Router release
4 # Copyright 2005, Broadcom Corporation
5 # All Rights Reserved.
7 # THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
8 # KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
9 # SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
10 # FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
12 # $Id: Makefile,v 1.53 2005/04/25 03:54:37 tallest Exp $
15 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
17 # To rebuild everything and all configurations:
18 # make distclean
19 # make libc (usually doesn't need to be done ???)
20 # make V1=whatever V2=sub-whatever VPN=vpn3.6 a b c d m
21 # The 1st "whatever" would be the build number, the sub-whatever would
22 # be the update to the version.
24 # Example:
25 # make V1=8516 V2="-jffs.1" a b c d m s
27 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31 export SRCBASE := $(shell pwd)
32 export SRCBASEDIR := $(shell pwd | sed 's/.*release\///g')
33 RELEASEDIR := $(shell (cd $(SRCBASE)/.. && pwd -P))
34 PATH := $(RELEASEDIR)/tools:$(PATH)
36 ifeq ($(ASUSWRTTARGETMAKDIR),)
37 include ./target.mak
38 else
39 include $(ASUSWRTTARGETMAKDIR)/target.mak
40 endif
42 ifeq ($(ASUSWRTVERSIONCONFDIR),)
43 include ./version.conf
44 else
45 include $(ASUSWRTVERSIONCONFDIR)/version.conf
46 endif
48 export BRANCH := $(shell git branch)
50 ifeq ($(BRANCH),)
51 include ./router/extendno.conf
52 else
53 export EXTENDNO := $(shell git log --pretty=oneline asuswrt_$(KERNEL_VER).$(FS_VER).$(SERIALNO)..HEAD | wc -l)-g$(shell git log --pretty=format:'%h' -n 1)
54 endif
56 ifeq ($(EXTENDNO),)
57 export EXTENDNO := 0-g$(shell git log --pretty=format:'%h' -n 1)
58 endif
60 export SWPJNAME := $(shell git branch | grep "*" | grep "swpj-" | sed 's/.*swpj-//g')
62 ifneq ($(SWPJNAME),)
63 export SWPJVERNO := $(shell cat $(SRCBASE)/router/APP-IPK/$(SWPJNAME)/CONTROL/control | grep "Version:" | sed 's/Version: //g')
64 ifneq ($(SWPJVERNO),)
65 export SWPJVER := $(SWPJNAME)_$(SWPJVERNO)_
66 endif
68 export SWPJEXTENDNO := $(shell git describe --match swpj_$(SWPJNAME)_$(SWPJVER) | sed 's/swpj_$(SWPJNAME)_$(SWPJVER)-//g')
70 ifneq ($(SWPJEXTENDNO),)
71 export EXTENDNO := $(SWPJEXTENDNO)
72 else
73 export EXTENDNO := 0-g$(shell git log --pretty=format:'%h' -n 1)
74 endif
75 endif
77 include ./platform.mak
78 include ./dsl.mak
79 -include .config
81 export LD_LIBRARY_PATH := $(SRCBASE)/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/lib
83 export PLATFORM := arm-uclibc
84 export PLATFORMDIR := $(SRCBASE)/router/$(PLATFORM)
86 ifeq ($(NVRAM_SIZE),)
87 NVRAM_SIZE = 0
88 endif
90 CTAGS_EXCLUDE_OPT := --exclude=kernel_header --exclude=$(PLATFORM)
91 CTAGS_DEFAULT_DIR := $(SRCBASE)/../src/router/rc $(SRCBASE)/../src/router/httpd $(SRCBASE)/../src/router/shared $(SRCBASE)/../src/router/www
93 ifeq ($(RALINK),y)
94 else
95 CTAGS_DEFAULT_DIR += $(SRCBASE)/include $(SRCBASE)/emf $(SRCBASE)/et $(SRCBASE)/wl
96 endif
98 uppercase_N = $(shell echo $(N) | tr a-z A-Z)
99 lowercase_N = $(shell echo $(N) | tr A-Z a-z)
100 uppercase_B = $(shell echo $(B) | tr a-z A-Z)
101 lowercase_B = $(shell echo $(B) | tr A-Z a-z)
102 BUILD_TIME := $(shell LC_ALL=C date -u)
103 #BUILD_USER=$(shell whoami)
104 BUILD_USER ?= $(shell whoami)
105 BUILD_INFO := $(shell git log --pretty="%h" -n 1)
107 ifeq ($(CONFIG_LINUX26),y)
108 mips_rev = $(if $(filter $(MIPS32),r2),MIPSR2,MIPSR1)
109 KERN_SIZE_OPT ?= n
110 else
111 mips_rev =
112 KERN_SIZE_OPT ?= y
113 endif
115 ifeq ($(CONFIG_RALINK),y)
116 KERNEL_BINARY=$(LINUXDIR)/vmlinux
117 else
118 KERNEL_BINARY=$(LINUXDIR)/arch/mips/brcm-board/bcm947xx/compressed/zImage
119 endif
121 default:
122 @if [ -f .config -a "$(BUILD_NAME)" != "" ] ; then \
123 $(MAKE) bin ; \
124 else \
125 echo "Source tree is not configured. Run make with model name." ; \
128 rt_ver:
129 @echo '#ifndef RTVERSION' > router/shared/version.h
130 @echo '#define RT_MAJOR_VERSION "$(KERNEL_VER)"' >> router/shared/version.h
131 @echo '#define RT_MINOR_VERSION "$(FS_VER)"' >> router/shared/version.h
132 @echo '#define RT_VERSION "$(KERNEL_VER).$(FS_VER)"' >> router/shared/version.h
133 @echo '#define RT_SERIALNO "$(SERIALNO)"' >> router/shared/version.h
134 @echo '#define RT_EXTENDNO "$(EXTENDNO)"' >> router/shared/version.h
135 @echo '#define RT_SWPJVERNO "$(SWPJVERNO)"' >> router/shared/version.h
136 @echo '#define RT_BUILD_NAME "$(BUILD_NAME)"' >> router/shared/version.h
137 @echo '#define RT_BUILD_INFO "$(BUILD_TIME) $(BUILD_USER)@$(BUILD_INFO)"' >> router/shared/version.h
138 @echo '#endif' >> router/shared/version.h
139 @echo '$(BUILD_NAME)_$(KERNEL_VER).$(FS_VER) $(BUILD_TIME)' > router/shared/version
140 @echo 'EXTENDNO=$(EXTENDNO)' > router/extendno.conf
142 rt_ver_ntools:
143 @rm -f ntools/version
144 echo 'KERNEL_IMAGE = $(BUILD_NAME)_$(KERNEL_VER).$(FS_VER)_$(SERIALNO).trx' >> ntools/version
146 all: rt_ver rt_ver_ntools
147 echo ""
148 echo "Building $(BUILD_NAME)_$(KERNEL_VER).$(FS_VER).trx"
149 echo ""
150 echo ""
151 -mkdir image
152 $(MAKE) -C router all
153 $(MAKE) -C router install
154 echo "*** install complete ***"
155 $(MAKE) image
157 image:
158 @if [ -z "$(BUILD_NAME)" ]; then \
159 echo "No BUILD_NAME is assigned"; \
160 exit 1; \
163 @rm -f image/$(BUILD_NAME)_$(KERNEL_VER).$(FS_VER)_$(SERIALNO).trx
165 ifeq ($(CONFIG_RALINK),y)
166 # generate kernel part
167 @rm -rf $(PLATFORMDIR)/zImage.lzma ; \
168 mipsel-linux-objcopy -O binary $(LINUXDIR)/vmlinux $(PLATFORMDIR)/vmlinus ; \
169 asustools/lzma -9 -f -c $(PLATFORMDIR)/vmlinus > $(PLATFORMDIR)/zImage.lzma ; \
170 cp -f $(PLATFORMDIR)/zImage.lzma $(PLATFORMDIR)/zImage.img ; \
171 # padded kernel image size
172 @SIZE=`wc -c $(PLATFORMDIR)/zImage.img | awk '{print $$1}'`; \
173 if [ "`grep -c \"^CONFIG_ROOTFS_IN_FLASH_NO_PADDING\>\" $(LINUXDIR)/.config`" -eq 0 ] ; then \
174 CONFIG_MTD_KERNEL_PART_SIZ=`grep "^CONFIG_MTD_KERNEL_PART_SIZ\>" $(LINUXDIR)/.config|sed -e "s,[^=]*=,," -e "s,^\(0x\)*,0x,"` ; \
175 MTD_KRN_PART_SIZE=`printf "%d" $${CONFIG_MTD_KERNEL_PART_SIZ}` ; \
176 PAD=`expr $${MTD_KRN_PART_SIZE} - 64 - $${SIZE}` ; \
177 echo "S: $$SIZE $${MTD_KRN_PART_SIZE} $${PAD}" ; \
178 if [ "$${PAD}" -le "0" ] ; then \
179 echo "CONFIG_MTD_KERNEL_PART_SIZ $${CONFIG_MTD_KERNEL_PART_SIZ} is smaller than " \
180 "`wc -c $(PLATFORMDIR)/zImage.img|awk '{printf "0x%x",$$1}'`. Increase it!" ; \
181 ls -l $(PLATFORMDIR)/zImage.img ; \
182 exit 1 ; \
183 fi ; \
184 dd if=/dev/zero count=1 bs=$${PAD} 2> /dev/null | tr \\000 \\377 >> $(PLATFORMDIR)/zImage.img ; \
185 else \
186 PAD=`expr 64 - $${SIZE} % 64` ; \
187 dd if=/dev/zero count=1 bs=$${PAD} 2> /dev/null | tr \\000 \\377 >> $(PLATFORMDIR)/zImage.img ; \
188 fi ; \
190 cat $(PLATFORMDIR)/target.image >> $(PLATFORMDIR)/zImage.img ; \
191 #generate ASUS Image
192 @ENTRY=`LANG=en_US readelf -h $(ROOTDIR)/$(LINUXDIR)/vmlinux | grep "Entry" | awk '{print $$4}'` ; \
193 ISIZE=`wc -c $(PLATFORMDIR)/zImage.img | awk '{print $$1}'` ; \
194 KSIZE=`wc -c $(PLATFORMDIR)/zImage.lzma | awk '{print $$1}'` ; \
195 RSIZE=`wc -c $(PLATFORMDIR)/target.image | awk '{print $$1}'` ; \
196 PAD2=`expr $${ISIZE} - $${KSIZE} - $${RSIZE}` ; \
197 RFSOFFSET=`expr 64 + $${KSIZE} + $${PAD2}` ; \
198 echo "PAD2: $${PAD2}" ; \
199 asustools/mkimage -A mips -O linux -T kernel -C lzma -a 80000000 -e $${ENTRY} -r $${RFSOFFSET} \
200 -n $(BUILD_NAME) -V "$(KERNEL_VER)" "$(FS_VER)" "0" "0" "0" "0" "0" "0" "0" "0" \
201 -d $(PLATFORMDIR)/zImage.img image/$(BUILD_NAME)_$(KERNEL_VER).$(FS_VER)_$(SERIALNO)_$(SWPJVER)$(EXTENDNO).trx
202 else
203 echo "*** make ctools start ***"
204 $(MAKE) -C ctools
205 # Create generic TRX image
206 ifeq ($(ARM),y)
207 ctools/objcopy -O binary -R .note -R .note.gnu.build-id -R .comment -S $(LINUXDIR)/vmlinux ctools/piggy
208 else
209 ctools/objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $(LINUXDIR)/vmlinux ctools/piggy
210 endif
211 ctools/lzma_4k e ctools/piggy ctools/vmlinuz-lzma
212 ctools/mksquashfs router/arm-uclibc/target ctools/target.squashfs -noappend -all-root
213 ifneq (,$(filter y,$(BCMWL6) $(BCMWL6A)))
214 ctools/trx -o image/linux-lzma.trx ctools/vmlinuz-lzma ctools/target.squashfs
215 else
216 ctools/trx -o image/linux-lzma.trx lzma-loader/loader.gz ctools/vmlinuz-lzma ctools/target.squashfs
217 endif
218 ctools/trx_asus -i image/linux-lzma.trx -r $(BUILD_NAME),$(KERNEL_VER).$(FS_VER),image/$(BUILD_NAME)_$(KERNEL_VER).$(FS_VER)_$(SERIALNO)_$(SWPJVER)$(EXTENDNO).trx
219 rm -f image/linux-lzma.trx
220 endif
221 echo "all done "
223 bin_file:
224 [ ! -e .bin/$(BUILD_NAME)/Makefile ] || $(MAKE) -C .bin/$(BUILD_NAME) O=$(SRCBASE)/image FW_FN=$(BUILD_NAME)_$(KERNEL_VER).$(FS_VER)_$(SERIALNO)_$(SWPJVER)$(EXTENDNO).trx
226 clean:
227 @touch router/.config
228 @rm -f router/config_[a-z]
229 @rm -f router/busybox/config_[a-z]
230 @$(MAKE) -C router $@
231 @-rm -rf $(PLATFORMDIR)
232 @$(MAKE) -C btools clean
234 cleanimage:
235 @rm -f fpkg.log
236 @rm -fr image/*
237 @rm -f router/.config
238 @touch router/.config
239 @-mkdir image
241 cleantools:
242 @$(MAKE) -C $(LINUXDIR)/scripts/squashfs clean
243 @$(MAKE) -C btools clean
244 ifneq ($(RTCONFIG_RALINK),y)
245 @$(MAKE) -C ctools clean
246 endif
249 cleankernel:
250 @cd $(LINUXDIR) && \
251 mv .config save-config && \
252 $(MAKE) distclean || true; \
253 cp -p save-config .config || true
255 kernel:
256 echo "make kernel"
257 $(MAKE) -C router kernel
258 [ ! -e $(KERNEL_BINARY) ] || ls -l $(KERNEL_BINARY)
260 distclean: clean cleanimage cleankernel cleantools cleanlibc
261 ifneq ($(INSIDE_MAK),1)
262 @$(MAKE) -C router $@ INSIDE_MAK=1
263 endif
264 mv router/busybox/.config busybox-saved-config || true
265 @$(MAKE) -C router/busybox distclean
266 @rm -f router/busybox/config_current
267 @cp -p busybox-saved-config router/busybox/.config || true
268 @cp -p router/busybox/.config router/busybox/config_current || true
269 @rm -f router/config_current
270 @rm -f router/.config.cmd router/.config.old router/.config
271 @rm -f router/libfoo_xref.txt
274 prepk:
275 @cd $(LINUXDIR) ; \
276 rm -f config_current ; \
277 ln -s config_base config_current ; \
278 cp -f config_current .config
279 ifeq ($(CONFIG_LINUX26),y)
280 $(MAKE) -C $(LINUXDIR) oldconfig prepare
281 else
282 $(MAKE) -C $(LINUXDIR) oldconfig dep
283 endif
285 what:
286 @echo ""
287 @echo "$(current_BUILD_DESC)-$(current_BUILD_NAME)-$(TOMATO_PROFILE_NAME) Profile"
288 @echo ""
291 # The methodology for making the different builds is to
292 # copy the "base" config file to the "target" config file in
293 # the appropriate directory, and then edit it by removing and
294 # inserting the desired configuration lines.
295 # You can't just delete the "whatever=y" line, you must have
296 # a "...is not set" line, or the make oldconfig will stop and ask
297 # what to do.
299 # Options for "make bin" :
300 # MIPS32 (r2|r1)
301 # KERN_SIZE_OPT
302 # USB ("USB"|"")
303 # JFFSv1 | NO_JFFS
304 # NO_CIFS, NO_SSH, NO_ZEBRA, NO_SAMBA, NO_LIBOPT
305 # SAMBA3, OPENVPN, IPV6SUPP, EBTABLES, NTFS, MEDIASRV, PRINTER, BBEXTRAS, USBEXTRAS, BCM57, SLIM
307 define RouterOptions
308 @( \
309 if [ "$(CONFIG_LINUX26)" = "y" ] || [ "$(SAMBA3)" = "y" ]; then \
310 sed -i "/RTCONFIG_SAMBA3/d" $(1); \
311 echo "RTCONFIG_SAMBA3=y" >>$(1); \
312 fi; \
313 sed -i "/RTCONFIG_EMF/d" $(1); \
314 if [ "$(CONFIG_LINUX26)" = "y" ]; then \
315 if [ "$(SLIM)" = "y" ]; then \
316 echo "# RTCONFIG_EMF is not set" >>$(1); \
317 else \
318 echo "RTCONFIG_EMF=y" >>$(1); \
319 fi; \
320 else \
321 echo "# RTCONFIG_EMF is not set" >>$(1); \
322 fi; \
323 sed -i "/RTCONFIG_JFFSV1/d" $(1); \
324 if [ "$(CONFIG_LINUX26)" = "y" ]; then \
325 if [ "$(JFFSv1)" = "y" ]; then \
326 echo "RTCONFIG_JFFSV1=y" >>$(1); \
327 else \
328 echo "# RTCONFIG_JFFSV1 is not set" >>$(1); \
329 fi; \
330 else \
331 echo "RTCONFIG_JFFSV1=y" >>$(1); \
332 fi; \
333 if [ "$(FANCTRL)" = "y" ]; then \
334 sed -i "/RTCONFIG_FANCTRL/d" $(1); \
335 echo "RTCONFIG_FANCTRL=y" >>$(1); \
336 fi; \
337 if [ "$(BCM5301X)" = "y" ]; then \
338 sed -i "/RTCONFIG_5301X/d" $(1); \
339 echo "RTCONFIG_5301X=y" >>$(1); \
340 fi; \
341 if [ "$(BCMWL6)" = "y" ]; then \
342 sed -i "/RTCONFIG_BCMWL6/d" $(1); \
343 echo "RTCONFIG_BCMWL6=y" >>$(1); \
344 fi; \
345 if [ "$(BCMWL6A)" = "y" ]; then \
346 sed -i "/RTCONFIG_BCMWL6A/d" $(1); \
347 echo "RTCONFIG_BCMWL6A=y" >>$(1); \
348 fi; \
349 if [ "$(ARM)" = "y" ]; then \
350 sed -i "/RTCONFIG_BCMARM/d" $(1); \
351 echo "RTCONFIG_BCMARM=y" >>$(1); \
352 fi; \
353 if [ "$(BCMSMP)" = "y" ]; then \
354 sed -i "/RTCONFIG_BCMSMP/d" $(1); \
355 echo "RTCONFIG_BCMSMP=y" >>$(1); \
356 fi; \
357 if [ "$(COMA)" = "y" ]; then \
358 sed -i "/RTCONFIG_COMA/d" $(1); \
359 echo "RTCONFIG_COMA=y" >>$(1); \
360 fi; \
361 if [ "$(WIRELESSWAN)" = "y" ]; then \
362 sed -i "/RTCONFIG_WIRELESSWAN/d" $(1); \
363 echo "RTCONFIG_WIRELESSWAN=y" >>$(1); \
364 fi; \
365 if [ "$(PARENTAL)" = "y" ]; then \
366 sed -i "/RTCONFIG_OLD_PARENTALCTRL/d" $(1); \
367 echo "RTCONFIG_OLD_PARENTALCTRL=y" >>$(1); \
368 fi; \
369 if [ "$(PARENTAL2)" = "y" ]; then \
370 sed -i "/RTCONFIG_PARENTALCTRL/d" $(1); \
371 echo "RTCONFIG_PARENTALCTRL=y" >>$(1); \
372 fi; \
373 if [ "$(YANDEXDNS)" = "y" ]; then \
374 sed -i "/RTCONFIG_YANDEXDNS/d" $(1); \
375 echo "RTCONFIG_YANDEXDNS=y" >>$(1); \
376 fi; \
377 if [ "$(PPTPD)" = "y" ]; then \
378 sed -i "/RTCONFIG_PPTPD/d" $(1); \
379 echo "RTCONFIG_PPTPD=y" >>$(1); \
380 fi; \
381 if [ "$(REPEATER)" = "y" ]; then \
382 sed -i "/RTCONFIG_WIRELESSREPEATER/d" $(1); \
383 echo "RTCONFIG_WIRELESSREPEATER=y" >>$(1); \
384 fi; \
385 if [ "$(PROXYSTA)" = "y" ]; then \
386 sed -i "/RTCONFIG_PROXYSTA/d" $(1); \
387 echo "RTCONFIG_PROXYSTA=y" >>$(1); \
388 fi; \
389 if [ "$(IXIAEP)" = "y" ]; then \
390 sed -i "/RTCONFIG_IXIAEP/d" $(1); \
391 echo "RTCONFIG_IXIAEP=y" >>$(1); \
392 fi; \
393 if [ "$(IPERF)" = "y" ]; then \
394 sed -i "/RTCONFIG_IPERF/d" $(1); \
395 echo "RTCONFIG_IPERF=y" >>$(1); \
396 fi; \
397 if [ "$(TCPDUMP)" = "y" ]; then \
398 sed -i "/RTCONFIG_TCPDUMP/d" $(1); \
399 echo "RTCONFIG_TCPDUMP=y" >>$(1); \
400 fi; \
401 if [ "$(DISKTEST)" = "y" ]; then \
402 sed -i "/RTCONFIG_DISKTEST/d" $(1); \
403 echo "RTCONFIG_DISKTEST=y" >>$(1); \
404 fi; \
405 if [ "$(LOCALE2012)" = "y" ]; then \
406 sed -i "/RTCONFIG_LOCALE2012/d" $(1); \
407 echo "RTCONFIG_LOCALE2012=y" >>$(1); \
408 fi; \
409 if [ "$(ODMPID)" = "y" ]; then \
410 sed -i "/RTCONFIG_ODMPID/d" $(1); \
411 echo "RTCONFIG_ODMPID=y" >>$(1); \
412 fi; \
413 if [ "$(LED_ALL)" = "y" ]; then \
414 sed -i "/RTCONFIG_LED_ALL/d" $(1); \
415 echo "RTCONFIG_LED_ALL=y" >>$(1); \
416 fi; \
417 if [ "$(N56U_SR2)" = "y" ]; then \
418 sed -i "/RTCONFIG_N56U_SR2/d" $(1); \
419 echo "RTCONFIG_N56U_SR2=y" >>$(1); \
420 fi; \
421 if [ "$(AP_CARRIER_DETECTION)" = "y" ]; then \
422 sed -i "/RTCONFIG_AP_CARRIER_DETECTION/d" $(1); \
423 echo "RTCONFIG_AP_CARRIER_DETECTION=y" >>$(1); \
424 fi; \
425 if [ "$(SFP)" = "y" ]; then \
426 sed -i "/RTCONFIG_SFP/d" $(1); \
427 echo "RTCONFIG_SFP=y" >>$(1); \
428 fi; \
429 if [ "$(SFP4M)" = "y" ]; then \
430 sed -i "/RTCONFIG_SFP/d" $(1); \
431 echo "RTCONFIG_SFP=y" >>$(1); \
432 sed -i "/RTCONFIG_4M_SFP/d" $(1); \
433 echo "RTCONFIG_4M_SFP=y" >>$(1); \
434 fi; \
435 if [ "$(SFP8M)" = "y" ]; then \
436 sed -i "/RTCONFIG_8M_SFP/d" $(1); \
437 echo "RTCONFIG_8M_SFP=y" >>$(1); \
438 fi; \
439 if [ "$(SFPRAM16M)" = "y" ]; then \
440 sed -i "/RTCONFIG_16M_RAM_SFP/d" $(1); \
441 echo "RTCONFIG_16M_RAM_SFP=y" >>$(1); \
442 fi; \
443 if [ "$(AUTODICT)" = "y" ]; then \
444 sed -i "/RTCONFIG_AUTODICT/d" $(1); \
445 echo "RTCONFIG_AUTODICT=y" >>$(1); \
446 fi; \
447 if [ "$(ZIPLIVEUPDATE)" = "y" ]; then \
448 sed -i "/RTCONFIG_AUTOLIVEUPDATE_ZIP/d" $(1); \
449 echo "RTCONFIG_AUTOLIVEUPDATE_ZIP=y" >>$(1); \
450 fi; \
451 if [ "$(LANWAN_LED)" = "y" ]; then \
452 sed -i "/RTCONFIG_LANWAN_LED/d" $(1); \
453 echo "RTCONFIG_LANWAN_LED=y" >>$(1); \
454 fi; \
455 if [ "$(LAN4WAN_LED)" = "y" ]; then \
456 sed -i "/RTCONFIG_LAN4WAN_LED/d" $(1); \
457 echo "RTCONFIG_LAN4WAN_LED=y" >>$(1); \
458 fi; \
459 if [ "$(WLAN_LED)" = "y" ]; then \
460 sed -i "/RTCONFIG_WLAN_LED/d" $(1); \
461 echo "RTCONFIG_WLAN_LED=y" >>$(1); \
462 fi; \
463 if [ "$(SWMODE_SWITCH)" = "y" ]; then \
464 sed -i "/RTCONFIG_SWMODE_SWITCH/d" $(1); \
465 echo "RTCONFIG_SWMODE_SWITCH=y" >>$(1); \
466 fi; \
467 if [ "$(FAKE_AUTOCHANNEL)" = "y" ]; then \
468 sed -i "/RTCONFIG_FAKE_AUTOCHANNEL/d" $(1); \
469 echo "RTCONFIG_FAKE_AUTOCHANNEL=y" >>$(1); \
470 fi; \
471 if [ "$(WIRELESS_SWITCH)" = "y" ]; then \
472 sed -i "/RTCONFIG_WIRELESS_SWITCH/d" $(1); \
473 echo "RTCONFIG_WIRELESS_SWITCH=y" >>$(1); \
474 fi; \
475 if [ "$(BTN_WIFITOG)" = "y" ]; then \
476 sed -i "/RTCONFIG_WIFI_TOG_BTN/d" $(1); \
477 echo "RTCONFIG_WIFI_TOG_BTN=y" >>$(1); \
478 fi; \
479 if [ "$(TURBO)" = "y" ]; then \
480 sed -i "/RTCONFIG_TURBO/d" $(1); \
481 echo "RTCONFIG_TURBO=y" >>$(1); \
482 fi; \
483 if [ "$(LED_BTN)" = "y" ]; then \
484 sed -i "/RTCONFIG_LED_BTN/d" $(1); \
485 echo "RTCONFIG_LED_BTN=y" >>$(1); \
486 fi; \
487 if [ "$(LED_BTN_MODE)" = "y" ]; then \
488 sed -i "/RTCONFIG_LED_BTN_MODE/d" $(1); \
489 echo "RTCONFIG_LED_BTN_MODE=y" >>$(1); \
490 fi; \
491 if [ "$(USBEJECT)" = "y" ]; then \
492 sed -i "/RTCONFIG_USBEJECT/d" $(1); \
493 echo "RTCONFIG_USBEJECT=y" >>$(1); \
494 fi; \
495 if [ "$(BCM4352_5G)" = "y" ]; then \
496 sed -i "/RTCONFIG_4352_5G/d" $(1); \
497 echo "RTCONFIG_4352_5G=y" >>$(1); \
498 fi; \
499 if [ "$(ACCEL_PPTPD)" = "y" ]; then \
500 sed -i "/RTCONFIG_ACCEL_PPTPD/d" $(1); \
501 echo "RTCONFIG_ACCEL_PPTPD=y" >>$(1); \
502 fi; \
503 if [ "$(SHP)" = "y" ]; then \
504 sed -i "/RTCONFIG_SHP/d" $(1); \
505 echo "RTCONFIG_SHP=y" >>$(1); \
506 fi; \
507 if [ "$(GRO)" = "y" ]; then \
508 sed -i "/RTCONFIG_GROCTRL/d" $(1); \
509 echo "RTCONFIG_GROCTRL=y" >>$(1); \
510 fi; \
511 if [ "$(DSL)" = "y" ]; then \
512 sed -i "/RTCONFIG_DSL/d" $(1); \
513 echo "RTCONFIG_DSL=y" >>$(1); \
514 fi; \
515 if [ "$(ANNEX_B)" = "y" ]; then \
516 sed -i "/RTCONFIG_DSL_ANNEX_B/d" $(1); \
517 echo "RTCONFIG_DSL_ANNEX_B=y" >>$(1); \
518 fi; \
519 if [ "$(DUALWAN)" = "y" ]; then \
520 sed -i "/RTCONFIG_DUALWAN/d" $(1); \
521 echo "RTCONFIG_DUALWAN=y" >>$(1); \
522 fi; \
523 if [ "$(USB)" = "USB" ]; then \
524 sed -i "/RTCONFIG_USB is not set/d" $(1); \
525 echo "RTCONFIG_USB=y" >>$(1); \
526 if [ "$(USBEXTRAS)" = "y" ]; then \
527 sed -i "/RTCONFIG_USB_EXTRAS/d" $(1); \
528 echo "RTCONFIG_USB_EXTRAS=y" >>$(1); \
529 fi; \
530 if [ "$(NTFS)" = "y" ]; then \
531 sed -i "/RTCONFIG_NTFS/d" $(1); \
532 echo "RTCONFIG_NTFS=y" >>$(1); \
533 echo "# RTCONFIG_NTFS3G is not set" >>$(1); \
534 elif [ "$(NTFS3G)" = "y" ]; then \
535 sed -i "/RTCONFIG_NTFS/d" $(1); \
536 echo "RTCONFIG_NTFS=y" >>$(1); \
537 echo "RTCONFIG_NTFS3G=y" >>$(1); \
538 fi; \
539 if [ "$(DISK_MONITOR)" = "y" ]; then \
540 sed -i "/RTCONFIG_DISK_MONITOR/d" $(1); \
541 echo "RTCONFIG_DISK_MONITOR=y" >>$(1); \
542 fi; \
543 if [ "$(MEDIASRV)" = "y" ]; then \
544 sed -i "/RTCONFIG_MEDIA_SERVER/d" $(1); \
545 echo "RTCONFIG_MEDIA_SERVER=y" >>$(1); \
546 fi; \
547 if [ "$(CLOUDSYNC)" = "y" ]; then \
548 sed -i "/RTCONFIG_CLOUDSYNC/d" $(1); \
549 echo "RTCONFIG_CLOUDSYNC=y" >>$(1); \
550 fi; \
551 if [ "$(MODEM)" = "y" ]; then \
552 sed -i "/RTCONFIG_USB_MODEM/d" $(1); \
553 echo "RTCONFIG_USB_MODEM=y" >>$(1); \
554 if [ "$(MODEMPIN)" = "y" ]; then \
555 echo "RTCONFIG_USB_MODEM_PIN=y" >>$(1); \
556 else \
557 echo "# RTCONFIG_USB_MODEM_PIN is not set" >>$(1); \
558 fi; \
559 if [ "$(BECEEM)" = "y" ]; then \
560 sed -i "/RTCONFIG_USB_BECEEM/d" $(1); \
561 echo "RTCONFIG_USB_BECEEM=y" >>$(1); \
562 fi; \
563 fi; \
564 if [ "$(PRINTER)" = "y" ]; then \
565 sed -i "/RTCONFIG_USB_PRINTER/d" $(1); \
566 echo "RTCONFIG_USB_PRINTER=y" >>$(1); \
567 fi; \
568 if [ "$(WEBDAV)" = "y" ]; then \
569 sed -i "/RTCONFIG_WEBDAV/d" $(1); \
570 echo "RTCONFIG_WEBDAV=y" >>$(1); \
571 fi; \
572 if [ "$(HTTPS)" = "y" ]; then \
573 sed -i "/RTCONFIG_HTTPS/d" $(1); \
574 echo "RTCONFIG_HTTPS=y" >>$(1); \
575 fi; \
576 if [ "$(USBAP)" = "y" ]; then \
577 sed -i "/RTCONFIG_BRCM_USBAP/d" $(1); \
578 echo "RTCONFIG_BRCM_USBAP=y" >>$(1); \
579 sed -i "/EPI_VERSION_NUM/d" include/epivers.h; \
580 sed -i "/#endif \/\* _epivers_h_ \*\//d" include/epivers.h; \
581 echo "#define EPI_VERSION_NUM $(DONGLE_VER)" >>include/epivers.h; \
582 echo "#endif /* _epivers_h_ */" >>include/epivers.h; \
583 fi; \
584 if [ "$(XHCI)" = "y" ]; then \
585 sed -i "/RTCONFIG_USB_XHCI/d" $(1); \
586 echo "RTCONFIG_USB_XHCI=y" >>$(1); \
587 fi; \
588 if [ "$(XHCI2)" = "y" ]; then \
589 sed -i "/RTCONFIG_USB_2XHCI2/d" $(1); \
590 echo "RTCONFIG_USB_2XHCI2=y" >>$(1); \
591 fi; \
592 else \
593 sed -i "/RTCONFIG_USB\b/d" $(1); \
594 echo "# RTCONFIG_USB is not set" >>$(1); \
595 fi; \
596 if [ "$(USBRESET)" = "y" ]; then \
597 sed -i "/RTCONFIG_USBRESET/d" $(1); \
598 echo "RTCONFIG_USBRESET=y" >>$(1); \
599 fi; \
600 if [ "$(XHCIMODE)" = "y" ]; then \
601 sed -i "/RTCONFIG_XHCIMODE/d" $(1); \
602 echo "RTCONFIG_XHCIMODE=y" >>$(1); \
603 fi; \
604 if [ "$(NO_SAMBA)" = "y" ]; then \
605 sed -i "/RTCONFIG_SAMBASRV/d" $(1); \
606 echo "# RTCONFIG_SAMBASRV is not set" >>$(1); \
607 fi; \
608 if [ "$(NO_USBSTORAGE)" = "y" ]; then \
609 sed -i "/RTCONFIG_SAMBASRV/d" $(1); \
610 echo "# RTCONFIG_SAMBASRV is not set" >>$(1); \
611 sed -i "/RTCONFIG_FTP/d" $(1); \
612 echo "# RTCONFIG_FTP is not set" >>$(1); \
613 fi; \
614 if [ "$(ZEBRA)" = "y" ]; then \
615 sed -i "/RTCONFIG_ZEBRA/d" $(1); \
616 echo "RTCONFIG_ZEBRA=y" >>$(1); \
617 fi; \
618 if [ "$(JFFS2)" = "y" ]; then \
619 sed -i "/RTCONFIG_JFFS2/d" $(1); \
620 echo "RTCONFIG_JFFS2=y" >>$(1); \
621 fi; \
622 if [ "$(JFFS1)" = "y" ]; then \
623 sed -i "/RTCONFIG_JFFSV1/d" $(1); \
624 echo "RTCONFIG_JFFSV1=y" >>$(1); \
625 fi; \
626 if [ "$(CIFS)" = "y" ]; then \
627 sed -i "/RTCONFIG_CIFS/d" $(1); \
628 echo "RTCONFIG_CIFS=y" >>$(1); \
629 fi; \
630 if [ "$(SSH)" = "y" ]; then \
631 sed -i "/RTCONFIG_SSH/d" $(1); \
632 echo "RTCONFIG_SSH=y" >>$(1); \
633 fi; \
634 if [ "$(NO_LIBOPT)" = "y" ]; then \
635 sed -i "/RTCONFIG_OPTIMIZE_SHARED_LIBS/d" $(1); \
636 echo "# RTCONFIG_OPTIMIZE_SHARED_LIBS is not set" >>$(1); \
637 fi; \
638 if [ "$(EBTABLES)" = "y" ]; then \
639 sed -i "/RTCONFIG_EBTABLES/d" $(1); \
640 echo "RTCONFIG_EBTABLES=y" >>$(1); \
641 fi; \
642 if [ "$(IPV6SUPP)" = "y" ]; then \
643 sed -i "/RTCONFIG_IPV6/d" $(1); \
644 echo "RTCONFIG_IPV6=y" >>$(1); \
645 fi; \
646 if [ "$(OPENVPN)" = "y" ]; then \
647 sed -i "/RTCONFIG_LZO/d" $(1); \
648 echo "RTCONFIG_LZO=y" >>$(1); \
649 sed -i "/RTCONFIG_OPENVPN/d" $(1); \
650 echo "RTCONFIG_OPENVPN=y" >>$(1); \
651 fi; \
652 if [ "$(APP)" = "installed" ]; then \
653 sed -i "/RTCONFIG_APP_PREINSTALLED/d" $(1); \
654 echo "RTCONFIG_APP_PREINSTALLED=y" >>$(1); \
655 else \
656 sed -i "/RTCONFIG_APP_PREINSTALLED/d" $(1); \
657 echo "# RTCONFIG_APP_PREINSTALLED is not set" >>$(1); \
658 fi; \
659 if [ "$(APP)" = "network" ]; then \
660 sed -i "/RTCONFIG_APP_NETINSTALLED/d" $(1); \
661 echo "RTCONFIG_APP_NETINSTALLED=y" >>$(1); \
662 else \
663 sed -i "/RTCONFIG_APP_NETINSTALLED/d" $(1); \
664 echo "# RTCONFIG_APP_NETINSTALLED is not set" >>$(1); \
665 fi; \
666 if [ "$(DNSMASQ)" = "y" ]; then \
667 sed -i "/RTCONFIG_DNSMASQ/d" $(1); \
668 echo "RTCONFIG_DNSMASQ=y" >>$(1); \
669 fi; \
670 if [ "$(ISP_METER)" = "y" ]; then \
671 sed -i "/RTCONFIG_ISP_METER/d" $(1); \
672 echo "RTCONFIG_ISP_METER=y" >>$(1); \
673 fi; \
674 if [ "$(NVRAM_64K)" = "y" ]; then \
675 sed -i "/RTCONFIG_NVRAM_64K/d" $(1); \
676 echo "RTCONFIG_NVRAM_64K=y" >>$(1); \
677 fi; \
678 if [ "$(DUAL_TRX)" = "y" ]; then \
679 sed -i "/RTCONFIG_DUAL_TRX/d" $(1); \
680 echo "RTCONFIG_DUAL_TRX=y" >>$(1); \
681 fi; \
682 if [ "$(PSISTLOG)" = "y" ]; then \
683 sed -i "/RTCONFIG_PSISTLOG/d" $(1); \
684 echo "RTCONFIG_PSISTLOG=y" >>$(1); \
685 fi; \
686 if [ "$(OPTIMIZE_XBOX)" = "y" ]; then \
687 sed -i "/RTCONFIG_OPTIMIZE_XBOX/d" $(1); \
688 echo "RTCONFIG_OPTIMIZE_XBOX=y" >>$(1); \
689 fi; \
690 if [ "$(DYN_DICT_NAME)" = "y" ]; then \
691 sed -i "/RTCONFIG_DYN_DICT_NAME/d" $(1); \
692 echo "RTCONFIG_DYN_DICT_NAME=y" >>$(1); \
693 fi; \
694 if [ "$(EXT4FS)" = "y" ]; then \
695 sed -i "/RTCONFIG_EXT4FS/d" $(1); \
696 echo "RTCONFIG_EXT4FS=y" >>$(1); \
697 fi; \
700 $(call platformRouterOptions, $(1))
701 endef
703 define BusyboxOptions
704 @( \
705 if [ "$(CONFIG_LINUX26)" = "y" ]; then \
706 sed -i "/CONFIG_FEATURE_2_4_MODULES/d" $(1); \
707 echo "# CONFIG_FEATURE_2_4_MODULES is not set" >>$(1); \
708 sed -i "/CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT/d" $(1); \
709 echo "CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y" >>$(1); \
710 sed -i "/CONFIG_FEATURE_DEVFS/d" $(1); \
711 echo "# CONFIG_FEATURE_DEVFS is not set" >>$(1); \
712 sed -i "/CONFIG_MKNOD/d" $(1); \
713 echo "CONFIG_MKNOD=y" >>$(1); \
714 fi; \
715 if [ "$(NO_CIFS)" = "y" ]; then \
716 sed -i "/CONFIG_FEATURE_MOUNT_CIFS/d" $(1); \
717 echo "# CONFIG_FEATURE_MOUNT_CIFS is not set" >>$(1); \
718 fi; \
719 if [ "$(BBEXTRAS)" = "y" ]; then \
720 sed -i "/CONFIG_FEATURE_SORT_BIG/d" $(1); \
721 echo "CONFIG_FEATURE_SORT_BIG=y" >>$(1); \
722 sed -i "/CONFIG_CLEAR/d" $(1); \
723 echo "CONFIG_CLEAR=y" >>$(1); \
724 sed -i "/CONFIG_SETCONSOLE/d" $(1); \
725 echo "CONFIG_SETCONSOLE=y" >>$(1); \
726 if [ "$(CONFIG_LINUX26)" = "y" ]; then \
727 sed -i "/CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE/d" $(1); \
728 echo "CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=512" >>$(1); \
729 fi; \
730 fi; \
731 if [ "$(USB)" = "USB" ]; then \
732 if [ "$(USBEXTRAS)" = "y" ]; then \
733 sed -i "/CONFIG_E2FSCK/d" $(1); \
734 echo "CONFIG_E2FSCK=y" >>$(1); \
735 sed -i "/CONFIG_FSCK_MINIX/d" $(1); \
736 echo "CONFIG_FSCK_MINIX=y" >>$(1); \
737 sed -i "/CONFIG_MKE2FS/d" $(1); \
738 echo "CONFIG_MKE2FS=y" >>$(1); \
739 sed -i "/CONFIG_FDISK/d" $(1); \
740 echo "CONFIG_FDISK=y" >>$(1); \
741 sed -i "/CONFIG_FEATURE_FDISK_WRITABLE/d" $(1); \
742 echo "CONFIG_FEATURE_FDISK_WRITABLE=y" >>$(1); \
743 sed -i "/CONFIG_MKFS_VFAT/d" $(1); \
744 echo "CONFIG_MKFS_VFAT=y" >>$(1); \
745 sed -i "/CONFIG_MKSWAP/d" $(1); \
746 echo "CONFIG_MKSWAP=y" >>$(1); \
747 sed -i "/CONFIG_FLOCK/d" $(1); \
748 echo "CONFIG_FLOCK=y" >>$(1); \
749 sed -i "/CONFIG_FSYNC/d" $(1); \
750 echo "CONFIG_FSYNC=y" >>$(1); \
751 sed -i "/CONFIG_UNZIP/d" $(1); \
752 echo "CONFIG_UNZIP=y" >>$(1); \
753 if [ "$(CONFIG_LINUX26)" = "y" ]; then \
754 sed -i "/CONFIG_LSUSB/d" $(1); \
755 echo "CONFIG_LSUSB=y" >>$(1); \
756 sed -i "/CONFIG_FEATURE_WGET_STATUSBAR/d" $(1); \
757 echo "CONFIG_FEATURE_WGET_STATUSBAR=y" >>$(1); \
758 sed -i "/CONFIG_FEATURE_VERBOSE_USAGE/d" $(1); \
759 echo "CONFIG_FEATURE_VERBOSE_USAGE=y" >>$(1); \
760 fi; \
761 fi; \
762 else \
763 sed -i "/CONFIG_FEATURE_MOUNT_LOOP/d" $(1); \
764 echo "# CONFIG_FEATURE_MOUNT_LOOP is not set" >>$(1); \
765 sed -i "/CONFIG_FEATURE_DEVFS/d" $(1); \
766 echo "# CONFIG_FEATURE_DEVFS is not set" >>$(1); \
767 sed -i "/CONFIG_FEATURE_MOUNT_LABEL/d" $(1); \
768 echo "# CONFIG_FEATURE_MOUNT_LABEL is not set" >>$(1); \
769 sed -i "/CONFIG_FEATURE_MOUNT_FSTAB/d" $(1); \
770 echo "# CONFIG_FEATURE_MOUNT_FSTAB is not set" >>$(1); \
771 sed -i "/CONFIG_VOLUMEID/d" $(1); \
772 echo "# CONFIG_VOLUMEID is not set" >>$(1); \
773 sed -i "/CONFIG_BLKID/d" $(1); \
774 echo "# CONFIG_BLKID is not set" >>$(1); \
775 sed -i "/CONFIG_SWAPONOFF/d" $(1); \
776 echo "# CONFIG_SWAPONOFF is not set" >>$(1); \
777 sed -i "/CONFIG_TRUE/d" $(1); \
778 echo "# CONFIG_TRUE is not set" >>$(1); \
779 fi; \
780 if [ "$(IPV6SUPP)" = "y" ]; then \
781 sed -i "/CONFIG_FEATURE_IPV6/d" $(1); \
782 echo "CONFIG_FEATURE_IPV6=y" >>$(1); \
783 sed -i "/CONFIG_PING6/d" $(1); \
784 echo "CONFIG_PING6=y" >>$(1); \
785 sed -i "/CONFIG_TRACEROUTE6/d" $(1); \
786 echo "CONFIG_TRACEROUTE6=y" >>$(1); \
787 fi; \
788 if [ "$(SLIM)" = "y" ]; then \
789 sed -i "/CONFIG_AWK/d" $(1); \
790 echo "# CONFIG_AWK is not set" >>$(1); \
791 sed -i "/CONFIG_BASENAME/d" $(1); \
792 echo "# CONFIG_BASENAME is not set" >>$(1); \
793 sed -i "/CONFIG_FEATURE_DEVFS/d" $(1); \
794 echo "# CONFIG_FEATURE_DEVFS is not set" >>$(1); \
795 sed -i "/CONFIG_BLKID/d" $(1); \
796 echo "# CONFIG_BLKID is not set" >>$(1); \
797 sed -i "/CONFIG_TELNET\b/d" $(1); \
798 echo "# CONFIG_TELNET is not set" >>$(1); \
799 sed -i "/CONFIG_ARPING/d" $(1); \
800 echo "# CONFIG_ARPING is not set" >>$(1); \
801 sed -i "/CONFIG_FEATURE_LS_COLOR/d" $(1); \
802 echo "# CONFIG_FEATURE_LS_COLOR is not set" >>$(1); \
803 else \
804 if [ "$(SFP)" = "y" ]; then \
805 sed -i "/CONFIG_LESS/d" $(1); \
806 echo "# CONFIG_LESS is not set" >>$(1); \
807 sed -i "/CONFIG_GZIP/d" $(1); \
808 echo "# CONFIG_GZIP is not set" >>$(1); \
809 sed -i "/CONFIG_DF/d" $(1); \
810 echo "# CONFIG_DF is not set" >>$(1); \
811 sed -i "/CONFIG_DU\b/d" $(1); \
812 echo "# CONFIG_DU is not set" >>$(1); \
813 sed -i "/CONFIG_HEAD/d" $(1); \
814 echo "# CONFIG_HEAD is not set" >>$(1); \
815 sed -i "/CONFIG_TAIL/d" $(1); \
816 echo "# CONFIG_TAIL is not set" >>$(1); \
817 sed -i "/CONFIG_BASENAME/d" $(1); \
818 echo "# CONFIG_BASENAME is not set" >>$(1); \
819 sed -i "/CONFIG_FEATURE_DEVFS/d" $(1); \
820 echo "# CONFIG_FEATURE_DEVFS is not set" >>$(1); \
821 sed -i "/CONFIG_BLKID/d" $(1); \
822 echo "# CONFIG_BLKID is not set" >>$(1); \
823 sed -i "/CONFIG_TELNET\b/d" $(1); \
824 echo "# CONFIG_TELNET is not set" >>$(1); \
825 sed -i "/CONFIG_ARPING/d" $(1); \
826 echo "# CONFIG_ARPING is not set" >>$(1); \
827 sed -i "/CONFIG_FEATURE_LS_COLOR\b/d" $(1); \
828 echo "# CONFIG_FEATURE_LS_COLOR is not set" >>$(1); \
829 if [ "$(SFP4M)" = "y" ]; then \
830 sed -i "/CONFIG_WGET/d" $(1); \
831 echo "# CONFIG_WGET is not set" >>$(1); \
832 sed -i "/CONFIG_FEATURE_WGET_AUTHENTICATION/d" $(1); \
833 echo "# CONFIG_FEATURE_WGET_AUTHENTICATION is not set" >>$(1); \
834 sed -i "/CONFIG_FEATURE_WGET_LONG_OPTIONS/d" $(1); \
835 echo "# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set" >>$(1); \
836 sed -i "/CONFIG_FEATURE_WGET_TIMEOUT/d" $(1); \
837 echo "# CONFIG_FEATURE_WGET_TIMEOUT is not set" >>$(1); \
838 fi; \
839 else \
840 sed -i "/CONFIG_FEATURE_LS_COLOR\b/d" $(1); \
841 echo "CONFIG_FEATURE_LS_COLOR=y" >>$(1); \
842 fi; \
843 fi; \
844 if [ "$(DISKTEST)" = "y" ]; then \
845 sed -i "/CONFIG_HDPARM/d" $(1); \
846 echo "CONFIG_HDPARM=y" >>$(1); \
847 fi; \
849 $(call platformBusyboxOptions, $(1))
850 endef
852 define KernelConfig
853 @( \
854 if [ "$(TUNEK)" != "n" ]; then \
855 sed -i "/CONFIG_NVRAM_SIZE/d" $(1); \
856 echo "CONFIG_NVRAM_SIZE="$(NVRAM_SIZE) >>$(1); \
857 sed -i "/CONFIG_CC_OPTIMIZE_FOR_SIZE/d" $(1); \
858 if [ "$(KERN_SIZE_OPT)" = "y" ]; then \
859 echo "CONFIG_CC_OPTIMIZE_FOR_SIZE=y" >>$(1); \
860 else \
861 echo "# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set" >>$(1); \
862 fi; \
863 if [ "$(CONFIG_LINUX26)" = "y" ] && [ "$(MIPS32)" = "r2" ]; then \
864 sed -i "/CONFIG_CPU_MIPS32_R1/d" $(1); \
865 echo "# CONFIG_CPU_MIPS32_R1 is not set" >>$(1); \
866 sed -i "/CONFIG_CPU_MIPS32_R2/d" $(1); \
867 echo "CONFIG_CPU_MIPS32_R2=y" >>$(1); \
868 sed -i "/CONFIG_CPU_MIPSR1/d" $(1); \
869 echo "CONFIG_CPU_MIPSR2=y" >>$(1); \
870 fi; \
871 if [ "$(USB)" = "" ]; then \
872 sed -i "/CONFIG_MSDOS_PARTITION/d" $(1); \
873 echo "# CONFIG_MSDOS_PARTITION is not set" >>$(1); \
874 sed -i "/CONFIG_EFI_PARTITION/d" $(1); \
875 echo "# CONFIG_EFI_PARTITION is not set" >>$(1); \
876 elif [ "$(MODEM)" = "y" ]; then \
877 if [ "$(BECEEM)" = "y" ]; then \
878 sed -i "/CONFIG_USB_BECEEM/d" $(1); \
879 echo "CONFIG_USB_BECEEM=m" >>$(1); \
880 fi; \
881 fi; \
882 if [ "$(AP_CARRIER_DETECTION)" = "y" ]; then \
883 sed -i "/CONFIG_RALINK_TIMER_DFS/d" $(1); \
884 echo "CONFIG_RALINK_TIMER_DFS=y" >>$(1); \
885 sed -i "/CONFIG_RT2860V2_AP_DFS/d" $(1); \
886 echo "CONFIG_RT2860V2_AP_DFS=y" >>$(1); \
887 sed -i "/CONFIG_RT2860V2_AP_CARRIER/d" $(1); \
888 echo "CONFIG_RT2860V2_AP_CARRIER=y" >>$(1); \
889 sed -i "/CONFIG_RTPCI_AP_CARRIER/d" $(1); \
890 echo "CONFIG_RTPCI_AP_CARRIER=y" >>$(1); \
891 else \
892 sed -i "/CONFIG_RALINK_TIMER_DFS/d" $(1); \
893 echo "# CONFIG_RALINK_TIMER_DFS is not set" >>$(1); \
894 sed -i "/CONFIG_RT2860V2_AP_DFS/d" $(1); \
895 echo "# CONFIG_RT2860V2_AP_DFS is not set" >>$(1); \
896 sed -i "/CONFIG_RT2860V2_AP_CARRIER/d" $(1); \
897 echo "# CONFIG_RT2860V2_AP_CARRIER is not set" >>$(1); \
898 sed -i "/CONFIG_RTPCI_AP_CARRIER/d" $(1); \
899 echo "# CONFIG_RTPCI_AP_CARRIER is not set" >>$(1); \
900 fi; \
901 if [ "$(CONFIG_LINUX30)" = "y" ]; then \
902 sed -i "/CONFIG_USB_XHCI_HCD/d" $(1); \
903 echo "# CONFIG_USB_XHCI_HCD is not set" >>$(1); \
904 if [ "$(USB)" = "USB" ]; then \
905 if [ "$(XHCI)" = "y" ]; then \
906 sed -i "/CONFIG_USB_XHCI_HCD/d" $(1); \
907 echo "CONFIG_USB_XHCI_HCD=y" >>$(1); \
908 sed -i "/CONFIG_USB_XHCI_HCD_DEBUGGING/d" $(1); \
909 echo "# CONFIG_USB_XHCI_HCD_DEBUGGING is not set" >>$(1); \
910 fi; \
911 fi; \
912 fi; \
913 if [ "$(SHP)" = "y" ] || [ "$(LFP)" = "y" ]; then \
914 sed -i "/CONFIG_IP_NF_LFP/d" $(1); \
915 echo "CONFIG_IP_NF_LFP=y" >>$(1); \
916 fi; \
917 if [ "$(DNSMQ)" = "y" ]; then \
918 sed -i "/CONFIG_IP_NF_DNSMQ/d" $(1); \
919 echo "CONFIG_IP_NF_DNSMQ=y" >>$(1); \
920 fi; \
921 if [ "$(IPV6SUPP)" = "y" ]; then \
922 if [ "$(BCMWL6A)" != "y" ]; then \
923 sed -i "/CONFIG_IPV6 is not set/d" $(1); \
924 echo "CONFIG_IPV6=y" >>$(1); \
925 sed -i "/CONFIG_IP6_NF_IPTABLES/d" $(1); \
926 echo "CONFIG_IP6_NF_IPTABLES=y" >>$(1); \
927 sed -i "/CONFIG_IP6_NF_MATCH_RT/d" $(1); \
928 echo "CONFIG_IP6_NF_MATCH_RT=y" >>$(1); \
929 sed -i "/CONFIG_IP6_NF_FILTER/d" $(1); \
930 echo "CONFIG_IP6_NF_FILTER=m" >>$(1); \
931 sed -i "/CONFIG_IP6_NF_TARGET_LOG/d" $(1); \
932 echo "CONFIG_IP6_NF_TARGET_LOG=m" >>$(1); \
933 sed -i "/CONFIG_IP6_NF_TARGET_REJECT/d" $(1); \
934 echo "CONFIG_IP6_NF_TARGET_REJECT=m" >>$(1); \
935 sed -i "/CONFIG_IP6_NF_MANGLE/d" $(1); \
936 echo "CONFIG_IP6_NF_MANGLE=m" >>$(1); \
937 if [ "$(CONFIG_LINUX26)" = "y" ]; then \
938 sed -i "/CONFIG_NF_CONNTRACK_IPV6/d" $(1); \
939 echo "CONFIG_NF_CONNTRACK_IPV6=m" >>$(1); \
940 sed -i "/CONFIG_NETFILTER_XT_MATCH_HL/d" $(1); \
941 echo "CONFIG_NETFILTER_XT_MATCH_HL=m" >>$(1); \
942 sed -i "/CONFIG_IPV6_ROUTER_PREF/d" $(1); \
943 echo "CONFIG_IPV6_ROUTER_PREF=y" >>$(1); \
944 sed -i "/CONFIG_IPV6_SIT/d" $(1); \
945 echo "CONFIG_IPV6_SIT=m" >>$(1); \
946 sed -i "/CONFIG_IPV6_MULTIPLE_TABLES/d" $(1); \
947 echo "CONFIG_IPV6_MULTIPLE_TABLES=y" >>$(1); \
948 sed -i "/CONFIG_IP6_NF_TARGET_ROUTE/d" $(1); \
949 echo "CONFIG_IP6_NF_TARGET_ROUTE=m" >>$(1); \
950 sed -i "/CONFIG_IPV6_MROUTE/d" $(1); \
951 echo "CONFIG_IPV6_MROUTE=y" >>$(1); \
952 else \
953 sed -i "/CONFIG_IP6_NF_CONNTRACK/d" $(1); \
954 echo "CONFIG_IP6_NF_CONNTRACK=m" >>$(1); \
955 sed -i "/CONFIG_IP6_NF_MATCH_HL/d" $(1); \
956 echo "CONFIG_IP6_NF_MATCH_HL=m" >>$(1); \
957 sed -i "/CONFIG_IP6_NF_FTP/d" $(1); \
958 echo "CONFIG_IP6_NF_FTP=m" >>$(1); \
959 sed -i "/CONFIG_IP6_NF_MATCH_LIMIT/d" $(1); \
960 echo "CONFIG_IP6_NF_MATCH_LIMIT=m" >>$(1); \
961 sed -i "/CONFIG_IP6_NF_MATCH_CONDITION/d" $(1); \
962 echo "CONFIG_IP6_NF_MATCH_CONDITION=m" >>$(1); \
963 sed -i "/CONFIG_IP6_NF_MATCH_MAC/d" $(1); \
964 echo "CONFIG_IP6_NF_MATCH_MAC=m" >>$(1); \
965 sed -i "/CONFIG_IP6_NF_MATCH_MULTIPORT/d" $(1); \
966 echo "CONFIG_IP6_NF_MATCH_MULTIPORT=m" >>$(1); \
967 sed -i "/CONFIG_IP6_NF_MATCH_MARK/d" $(1); \
968 echo "CONFIG_IP6_NF_MATCH_MARK=m" >>$(1); \
969 sed -i "/CONFIG_IP6_NF_MATCH_LENGTH/d" $(1); \
970 echo "CONFIG_IP6_NF_MATCH_LENGTH=m" >>$(1); \
971 sed -i "/CONFIG_IP6_NF_MATCH_STATE/d" $(1); \
972 echo "CONFIG_IP6_NF_MATCH_STATE=m" >>$(1); \
973 sed -i "/CONFIG_IP6_NF_TARGET_MARK/d" $(1); \
974 echo "CONFIG_IP6_NF_TARGET_MARK=m" >>$(1); \
975 sed -i "/CONFIG_IP6_NF_TARGET_TCPMSS/d" $(1); \
976 echo "CONFIG_IP6_NF_TARGET_TCPMSS=m" >>$(1); \
977 sed -i "/CONFIG_IP6_NF_TARGET_ROUTE/d" $(1); \
978 echo "CONFIG_IP6_NF_TARGET_ROUTE=m" >>$(1); \
979 fi; \
980 fi; \
981 fi; \
982 if [ "$(ARM)" != "y" ]; then \
983 if [ "$(BCM57)" = "y" ]; then \
984 sed -i "/CONFIG_ET_ALL_PASSIVE/d" $(1); \
985 echo "CONFIG_BCM57XX=m" >>$(1); \
986 echo "# CONFIG_ET_ALL_PASSIVE_ON is not set" >>$(1); \
987 echo "CONFIG_ET_ALL_PASSIVE_RUNTIME=y" >>$(1); \
988 else \
989 echo "# CONFIG_BCM57XX is not set" >>$(1); \
990 fi; \
991 fi; \
992 sed -i "/CONFIG_WL_USE_HIGH/d" $(1); \
993 sed -i "/CONFIG_WL_USBAP/d" $(1); \
994 if [ "$(USBAP)" = "y" ]; then \
995 echo "CONFIG_WL_USE_HIGH=y" >> $(1); \
996 echo "CONFIG_WL_USBAP=y" >>$(1); \
997 else \
998 echo "1234567890" >> $(1); \
999 echo "# CONFIG_WL_USE_HIGH is not set" >> $(1); \
1000 echo "# CONFIG_WL_USBAP is not set" >>$(1); \
1001 fi; \
1002 if [ "$(CONFIG_LINUX26)" = "y" ] && [ "$(EBTABLES)" = "y" ]; then \
1003 sed -i "/CONFIG_BRIDGE_NF_EBTABLES/d" $(1); \
1004 echo "CONFIG_BRIDGE_NF_EBTABLES=m" >>$(1); \
1005 if [ "$(IPV6SUPP)" = "y" ]; then \
1006 sed -i "/CONFIG_BRIDGE_EBT_IP6/d" $(1); \
1007 echo "CONFIG_BRIDGE_EBT_IP6=m" >>$(1); \
1008 fi; \
1009 fi; \
1010 sed -i "/CONFIG_NVRAM_64K/d" $(1); \
1011 if [ "$(NVRAM_64K)" = "y" ]; then \
1012 echo "CONFIG_NVRAM_64K=y" >>$(1); \
1013 else \
1014 echo "# CONFIG_NVRAM_64K is not set" >>$(1); \
1015 fi; \
1016 sed -i "/CONFIG_LOCALE2012/d" $(1); \
1017 if [ "$(LOCALE2012)" = "y" ]; then \
1018 echo "CONFIG_LOCALE2012=y" >>$(1); \
1019 else \
1020 echo "# CONFIG_LOCALE2012 is not set" >>$(1); \
1021 fi; \
1022 sed -i "/CONFIG_N56U_SR2/d" $(1); \
1023 if [ "$(N56U_SR2)" = "y" ]; then \
1024 echo "CONFIG_N56U_SR2=y" >>$(1); \
1025 else \
1026 echo "# CONFIG_N56U_SR2 is not set" >>$(1); \
1027 fi \
1028 fi ; \
1029 if [ "$(ARMCPUSMP)" = "up" ]; then \
1030 sed -i "/CONFIG_GENERIC_CLOCKEVENTS_BROADCAST/d" $(1); \
1031 echo "CONFIG_HAVE_LATENCYTOP_SUPPORT=y" >>$(1); \
1032 sed -i "/CONFIG_GENERIC_LOCKBREAK/d" $(1); \
1033 echo "CONFIG_BROKEN_ON_SMP=y" >>$(1); \
1034 sed -i "/CONFIG_TREE_RCU=y/# CONFIG_TREE_RCU is not set/g" >>$(1); \
1035 echo "CONFIG_TREE_PREEMPT_RCU=y" >>$(1); \
1036 echo "# CONFIG_TINY_RCU is not set" >>$(1); \
1037 sed -i "/CONFIG_USE_GENERIC_SMP_HELPERS/d" $(1); \
1038 sed -i "/CONFIG_STOP_MACHINE/d" $(1); \
1039 sed -i "/CONFIG_MUTEX_SPIN_ON_OWNER/d" $(1); \
1040 echo "# CONFIG_MUTEX_SPIN_ON_OWNER is not set" >>$(1); \
1041 sed -i "/# CONFIG_ARM_ERRATA_742230 is not set/d" $(1); \
1042 sed -i "/# CONFIG_ARM_ERRATA_742231 is not set/d" $(1); \
1043 sed -i "/# CONFIG_ARM_ERRATA_720789 is not set/d" $(1); \
1044 sed -i "/CONFIG_SMP=y/d" $(1); \
1045 echo "# CONFIG_SMP is not set" >>$(1); \
1046 sed -i "/CONFIG_NR_CPUS=2/d" $(1); \
1047 sed -i "/# CONFIG_HOTPLUG_CPU is not set/d" $(1); \
1048 sed -i "/CONFIG_RPS=y/d" $(1); \
1049 fi; \
1050 sed -i "/CONFIG_DUAL_TRX/d" $(1); \
1051 if [ "$(DUAL_TRX)" = "y" ]; then \
1052 echo "CONFIG_DUAL_TRX=y" >>$(1); \
1053 else \
1054 echo "# CONFIG_DUAL_TRX is not set" >>$(1); \
1055 fi; \
1056 if [ "$(EXT4FS)" = "y" ]; then \
1057 sed -i "/CONFIG_EXT4_FS/d" $(1); \
1058 echo "CONFIG_EXT4_FS=m" >>$(1); \
1059 sed -i "/CONFIG_EXT4_FS_XATTR/d" $(1); \
1060 echo "CONFIG_EXT4_FS_XATTR=y" >>$(1); \
1061 sed -i "/CONFIG_EXT4_FS_POSIX_ACL/d" $(1); \
1062 echo "# CONFIG_EXT4_FS_POSIX_ACL is not set" >>$(1); \
1063 sed -i "/CONFIG_EXT4_FS_SECURITY/d" $(1); \
1064 echo "# CONFIG_EXT4_FS_SECURITY is not set" >>$(1); \
1065 sed -i "/CONFIG_EXT4_DEBUG/d" $(1); \
1066 echo "# CONFIG_EXT4_DEBUG is not set" >>$(1); \
1067 fi; \
1069 $(call platformKernelConfig, $(1))
1070 endef
1072 mk-%:
1073 @$(MAKE) -C router $(shell echo $@ | sed s/mk-//)
1075 bin:
1076 ifeq ($(BUILD_NAME),)
1077 @echo $@" is not a valid target!"
1078 @false
1079 endif
1081 @cp router/config_base router/config_$(lowercase_B)
1082 @cp router/busybox/config_base router/busybox/config_$(lowercase_B)
1083 ifeq ($(BCMWL6A),y)
1084 cp $(LINUXDIR)/config_base.6a $(LINUXDIR)/config_$(lowercase_B)
1085 else
1086 cp $(LINUXDIR)/config_base $(LINUXDIR)/config_$(lowercase_B)
1087 endif
1089 $(call RouterOptions, router/config_$(lowercase_B))
1090 $(call KernelConfig, $(LINUXDIR)/config_$(lowercase_B))
1091 $(call BusyboxOptions, router/busybox/config_$(lowercase_B))
1093 @$(MAKE) setprofile
1094 # cp $(LINUXDIR)/config_base.6a $(LINUXDIR)/.config
1095 @$(MAKE) all
1097 define save_src_config
1098 @if [ -z "$($(shell echo $(1) | tr a-z A-Z))" ] ; then echo NO THIS TARGET $(1) ; exit 1; fi
1099 @if [ ! -f .config ] ; then \
1100 rm -f .config ; \
1101 for var in $($(shell echo $(1) | tr a-z A-Z)) ; do \
1102 echo "export $${var}" >> .config ; \
1103 export $${var} ; \
1104 done ; \
1105 else \
1106 NEW_BUILD_NAME=$(shell echo $(1) | tr a-z A-Z) ; \
1107 echo "CONFIGURED MODEL: $(BUILD_NAME)" ; \
1108 echo "SPECIFIED MODEL: $${NEW_BUILD_NAME}" ; \
1109 echo "----------------------------------------------------------------------------" ; \
1110 if [ "$(BUILD_NAME)" != "$${NEW_BUILD_NAME}" ] ; then \
1111 echo "!!! MODEL NAME MISMATCH. REMOVE .config AND MAKE AGAIN. !!!" ; \
1112 exit 1; \
1113 else \
1114 echo "Clean old model configuration"; \
1115 while read line ; do \
1116 var=`echo "$${line}"|sed -e "s,^export[ ]*,," -e "s,=.*$$,,"` ; \
1117 unset "$${var}" ; \
1118 done < .config; \
1119 echo "Update model configuration" ; \
1120 rm -f .config ; \
1121 for var in $($(shell echo $(1) | tr a-z A-Z)) ; do \
1122 echo "export $${var}" >> .config ; \
1123 export $${var} ; \
1124 done ; \
1125 fi ; \
1126 echo ""; \
1127 fi ;
1128 endef
1130 rt-% RT-% ea-% EA-%:
1131 $(call save_src_config, $@)
1132 $(MAKE) bin
1134 dsl-% DSL-%:
1135 $(call dsl_genbintrx_prolog)
1136 $(call save_src_config, $@)
1137 @$(MAKE) bin
1138 $(call dsl_genbintrx_epilog)
1140 setprofile:
1141 echo ""
1142 echo "Using $(N) profile, $(B) build config."
1143 echo ""
1145 cd $(LINUXDIR) ; \
1146 rm -f config_current ; \
1147 ln -s config_$(lowercase_B) config_current ; \
1148 cp -f config_current .config
1150 cd router/busybox && \
1151 rm -f config_current ; \
1152 ln -s config_$(lowercase_B) config_current ; \
1153 cp config_current .config
1155 cd router ; \
1156 rm -f config_current ; \
1157 ln -s config_$(lowercase_B) config_current ; \
1158 cp config_current .config
1160 $(MAKE) -C router oldconfig
1162 cleanlibc:
1163 # @$(MAKE) -C ../../tools-src/uClibc clean
1165 libc: cleanlibc
1166 # @$(MAKE) -C ../../tools-src/uClibc
1167 # @$(MAKE) -C ../../tools-src/uClibc install
1169 help:
1170 @echo "make [model id]"
1171 @echo "make mk-[package]"
1172 @echo "..etc.. other build configs"
1173 @echo "clean -C router clean"
1174 @echo "cleanimage rm -rf image"
1175 @echo "cleantools clean btools, mksquashfs"
1176 @echo "cleankernel -C Linux distclean (but preserves .config)"
1177 @echo "distclean distclean of Linux & busybox (but preserve .configs)"
1178 @echo "prepk -C Linux oldconfig dep"
1179 @echo "libc -C uClibc clean, all, install"
1181 kernel-tags: dummy
1182 $(MAKE) -C $(LINUXDIR) tags
1184 tags: kernel-tags
1185 ctags -R shared $(CTAGS_EXCLUDE_OPT) $(CTAGS_DEFAULT_DIR)
1187 all-tags: kernel-tags
1188 ctags -R shared $(CTAGS_EXCLUDE_OPT) $(SRCBASE)/../src/router
1190 clean-tags: dummy
1191 $(RM) -f $(LINUXDIR)/tags $(SRCBASE)/tags
1193 install gen_target:
1194 $(MAKE) -C router $@
1197 # Generic rules
1200 %: dummy
1201 @[ ! -d router/$* ] || $(MAKE) -C router $@
1204 %-clean: dummy
1205 @-[ ! -d router/$* ] || $(MAKE) -C router $@
1207 %-install: dummy
1208 @[ ! -d router/$* ] || $(MAKE) -C router $* $@
1210 %-build: dummy
1211 $(MAKE) $*-clean $*
1213 %-tags: dummy
1214 @[ ! -d router/$* ] || ctags -a -R $(CTAGS_EXCLUDE_OPT) $(SRCBASE)/../src/router/$*
1216 .PHONY: all clean distclean cleanimage cleantools cleankernel prepk what setprofile libc help image default bin_file
1217 .PHONY: a b c d m Makefile allversions
1218 .PHONY: tags
1219 .PHONY: dummy