2 # Toplevel Makefile for the BCM947xx Linux Router release
4 # Copyright 2005, Broadcom Corporation
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:
19 # make libc (usually doesn't need to be done ???)
20 # make V1=whatever V2=sub-whatever 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.
25 # make V1=8516 V2="jffs.1" a b c d m s
27 # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31 export SRCBASE
:= $(shell pwd
)
32 RELEASEDIR
:= $(shell (cd
$(SRCBASE
)/..
&& pwd
-P
))
33 PATH
:= $(RELEASEDIR
)/tools
:$(PATH
)
37 # Normally you'd do something like "make V1=8516 V2=sub-ver a b c d"
38 # But if you don't give anything for "V1", it'll get a default from tomato_version.
41 -include tomato_profile.mak
44 # This could be simpler by just using $(TOMATO_PROFILE_NAME) like it used to be,
45 # but that's fragile. If you make one certain innocuous change elsewhere in the
46 # makefile(s), the build will silently be wrong. This way it works properly every time.
47 current_BUILD_NAME
= $(strip $(shell grep
"^TOMATO_BUILD_NAME" tomato_profile.mak | cut
-d
"=" -f2
))
48 current_BUILD_DESC
= $(strip $(shell grep
"^TOMATO_BUILD_DESC" tomato_profile.mak | cut
-d
"=" -f2
))
49 current_BUILD_USB
= $(strip $(shell grep
"^TOMATO_BUILD_USB" tomato_profile.mak | cut
-d
"=" -f2
))
51 uppercase_N
= $(shell echo
$(N
) | tr a-z A-Z
)
52 lowercase_N
= $(shell echo
$(N
) | tr A-Z a-z
)
53 uppercase_B
= $(shell echo
$(B
) | tr a-z A-Z
)
54 lowercase_B
= $(shell echo
$(B
) | tr A-Z a-z
)
57 ifeq ($(TOMATO_BUILD
),)
68 @echo
"Building $(current_BUILD_USB) $(V1)$(V2) $(current_BUILD_DESC) $(current_BUILD_NAME) with $(TOMATO_PROFILE_NAME) Profile"
69 @btools
/uversion.pl
--gen
$(V1
) $(V2
) "ND" $(current_BUILD_USB
) $(current_BUILD_DESC
)
74 @
$(MAKE
) -C router
all
75 @
$(MAKE
) -C router
install
78 @
rm -f image
/tomato-ND
$(current_BUILD_USB
)-$(V1
)$(V2
)-$(current_BUILD_DESC
).trx
80 @echo
"***********************" `date` "************************" >>fpkg.log
81 @cat router
/shared
/tomato_version
>>fpkg.log
83 @cat router
/target.
info >>fpkg.log
84 ifeq ($(wildcard include/bcm20xx.h
),)
85 @btools
/fpkg
-i lzma-loader
/loader.gz
-i
$(LINUXDIR
)/arch
/mips
/brcm-boards
/bcm947xx
/compressed
/vmlinuz
-i router
/mipsel-uclibc
/target.image \
87 -l W54G
,image
/WRT54G_WRT54GL.bin \
88 -l W54S
,image
/WRT54GS.bin \
89 -l W54s
,image
/WRT54GSv4.bin \
90 -l W54U
,image
/WRTSL54GS.bin \
91 -m
0x10577050,image
/WR850G.bin \
94 @btools
/fpkg
-i lzma-loader
/loader.gz
-i
$(LINUXDIR
)/arch
/mips
/brcm-boards
/bcm947xx
/compressed
/vmlinuz
-i router
/mipsel-uclibc
/target.image \
95 -t image
/tomato-ND
$(current_BUILD_USB
)-$(V1
)$(V2
)-$(current_BUILD_DESC
).trx | tee
-a fpkg.log
98 @cp fpkg.log image
/fpkg-
$(V1
)$(V2
).log
100 @echo
"-----------------"
101 @echo
`cat router/shared/tomato_version` " ready"
102 @echo
"-----------------"
103 ifneq ($(NOVERSION
),1)
104 @cp router
/shared
/tomato_version router
/shared
/tomato_version_last
105 @btools
/uversion.pl
--bump
112 @touch router
/.config
113 @
rm -f router
/config_
[a-z
]
114 @
rm -f router
/busybox
/config_
[a-z
]
115 @
$(MAKE
) -C router
$@
116 @
-rmdir router
/mipsel-uclibc
121 @
rm -f router
/.config
122 @touch router
/.config
126 @
$(MAKE
) -C
$(LINUXDIR
)/scripts
/squashfs
clean
127 @
$(MAKE
) -C btools
clean
131 mv .config save-config
&& \
133 cp
-p save-config .config
135 distclean: clean cleanimage cleankernel cleantools cleanlibc
136 ifneq ($(INSIDE_MAK
),1)
137 @
$(MAKE
) -C router
$@ INSIDE_MAK
=1
139 mv router
/busybox
/.config busybox-saved-config
140 @
$(MAKE
) -C router
/busybox
distclean
141 @
rm -f router
/busybox
/config_current || true
142 @cp
-p busybox-saved-config router
/busybox
/.config
143 @cp
-p router
/busybox
/.config router
/busybox
/config_current
144 @
rm -f router
/config_current || true
145 @
rm -f router
/.config.cmd router
/.config.old router
/.config
146 @
rm -f router
/libfoo_xref.txt
147 @
rm -f tomato_profile.mak router
/shared
/tomato_profile.h
148 @touch tomato_profile.mak
149 @touch router
/shared
/tomato_profile.h
153 $(MAKE
) -C
$(LINUXDIR
) oldconfig dep
157 @echo
"$(current_BUILD_DESC)-$(current_BUILD_NAME)-$(TOMATO_PROFILE_NAME) Profile"
161 # The methodology for making the different builds is to
162 # copy the "base" config file to the "target" config file in
163 # the appropriate directory, and then edit it by removing and
164 # inserting the desired configuration lines.
165 # You can't just delete the "whatever=y" line, you must have
166 # a "...is not set" line, or the make oldconfig will stop and ask
169 # $(1) - router/busybox/config_$@
171 define BusyboxExtraOptions
172 @sed
-i
"/CONFIG_UNZIP/d" $(1)
173 @echo
"CONFIG_UNZIP=y" >>$(1)
174 @sed
-i
"/CONFIG_FEATURE_LS_COLOR/d" $(1)
175 @echo
"CONFIG_FEATURE_LS_COLOR=y" >>$(1)
176 @sed
-i
"/CONFIG_FEATURE_LS_COLOR_IS_DEFAULT/d" $(1)
177 @echo
"CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y" >>$(1)
178 @sed
-i
"/CONFIG_FEATURE_SORT_BIG/d" $(1)
179 @echo
"CONFIG_FEATURE_SORT_BIG=y" >>$(1)
181 if
[ "$(CONFIG_LINUX26)" = "y" ]; then \
182 sed
-i
"/CONFIG_FEATURE_WGET_STATUSBAR/d" $(1); \
183 echo
"CONFIG_FEATURE_WGET_STATUSBAR=y" >>$(1); \
184 sed
-i
"/CONFIG_FEATURE_VERBOSE_USAGE/d" $(1); \
185 echo
"CONFIG_FEATURE_VERBOSE_USAGE=y" >>$(1); \
190 define BusyboxExtraUSBOptions
191 @sed
-i
"/CONFIG_E2FSCK/d" $(1)
192 @echo
"CONFIG_E2FSCK=y" >>$(1)
193 @sed
-i
"/CONFIG_MKE2FS/d" $(1)
194 @echo
"CONFIG_MKE2FS=y" >>$(1)
195 @sed
-i
"/CONFIG_FDISK/d" $(1)
196 @echo
"CONFIG_FDISK=y" >>$(1)
197 @sed
-i
"/CONFIG_FEATURE_FDISK_WRITABLE/d" $(1)
198 @echo
"CONFIG_FEATURE_FDISK_WRITABLE=y" >>$(1)
199 @sed
-i
"/CONFIG_MKFS_VFAT/d" $(1)
200 @echo
"CONFIG_MKFS_VFAT=y" >>$(1)
201 @sed
-i
"/CONFIG_MKSWAP/d" $(1)
202 @echo
"CONFIG_MKSWAP=y" >>$(1)
205 define BusyboxNoUSBOptions
206 @sed
-i
"/CONFIG_FEATURE_MOUNT_LOOP/d" $(1)
207 @echo
"# CONFIG_FEATURE_MOUNT_LOOP is not set" >>$(1)
208 @sed
-i
"/CONFIG_FEATURE_DEVFS/d" $(1)
209 @echo
"# CONFIG_FEATURE_DEVFS is not set" >>$(1)
210 @sed
-i
"/CONFIG_FEATURE_MOUNT_LABEL/d" $(1)
211 @echo
"# CONFIG_FEATURE_MOUNT_LABEL is not set" >>$(1)
212 @sed
-i
"/CONFIG_FEATURE_MOUNT_FSTAB/d" $(1)
213 @echo
"# CONFIG_FEATURE_MOUNT_FSTAB is not set" >>$(1)
214 @sed
-i
"/CONFIG_VOLUMEID/d" $(1)
215 @echo
"# CONFIG_VOLUMEID is not set" >>$(1)
216 @sed
-i
"/CONFIG_BLKID/d" $(1)
217 @echo
"# CONFIG_BLKID is not set" >>$(1)
218 @sed
-i
"/CONFIG_SWAPONOFF/d" $(1)
219 @echo
"# CONFIG_SWAPONOFF is not set" >>$(1)
222 ifeq ($(CONFIG_LINUX26
),y
)
223 define BusyboxKernelConfig
224 @sed
-i
"/CONFIG_FEATURE_2_4_MODULES/d" $(1)
225 @echo
"# CONFIG_FEATURE_2_4_MODULES is not set" >>$(1)
226 @sed
-i
"/CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT/d" $(1)
227 @echo
"CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y" >>$(1)
228 @sed
-i
"/CONFIG_FEATURE_DEVFS/d" $(1)
229 @echo
"# CONFIG_FEATURE_DEVFS is not set" >>$(1)
230 @sed
-i
"/CONFIG_MKNOD/d" $(1)
231 @echo
"CONFIG_MKNOD=y" >>$(1)
234 define BusyboxKernelConfig
238 # $(1) - linux/linux[-2.6]/config_$@
240 ifeq ($(CONFIG_LINUX26
),y
)
241 define KernelConfigMips
243 if
[ "$(MIPS32)" = "r2" ]; then \
244 sed
-i
"/CONFIG_CPU_MIPS32_R1/d" $(1); \
245 echo
"# CONFIG_CPU_MIPS32_R1 is not set" >>$(1); \
246 sed
-i
"/CONFIG_CPU_MIPS32_R2/d" $(1); \
247 echo
"CONFIG_CPU_MIPS32_R2=y" >>$(1); \
248 sed
-i
"/CONFIG_CPU_MIPSR1/d" $(1); \
249 echo
"CONFIG_CPU_MIPSR2=y" >>$(1); \
251 if
[ "$(BCM57)" = "y" ]; then \
252 sed
-i
"/CONFIG_BCM57XX/d" $(1); \
253 echo
"CONFIG_BCM57XX=m" >>$(1); \
258 define KernelConfigMips
259 # nothing for kernel 2.4
263 ## Make the "normal" build
265 @cp router
/config_base router
/config_
$@
266 @cp router
/busybox
/config_base router
/busybox
/config_
$@
267 @cp
$(LINUXDIR
)/config_base
$(LINUXDIR
)/config_
$@
269 $(call KernelConfigMips
, $(LINUXDIR
)/config_
$@
)
270 $(call BusyboxKernelConfig
, router
/busybox
/config_
$@
)
272 @
$(MAKE
) setprofile N
=$(TPROFILE
) B
=A DESC
="Std" USB
="USB"
275 ## Make the "normal but without SSH" build
277 @cp router
/config_base router
/config_
$@
278 @cp router
/busybox
/config_base router
/busybox
/config_
$@
279 @cp
$(LINUXDIR
)/config_base
$(LINUXDIR
)/config_
$@
281 @sed
-i
"/TCONFIG_SSH/d" router
/config_
$@
282 @echo
"# TCONFIG_SSH is not set" >>router
/config_
$@
284 $(call KernelConfigMips
, $(LINUXDIR
)/config_
$@
)
285 $(call BusyboxKernelConfig
, router
/busybox
/config_
$@
)
287 @
$(MAKE
) setprofile N
=$(TPROFILE
) B
=B DESC
="No SSH" USB
="USB"
290 ## Make the "normal but without cifs" build
292 @cp router
/config_base router
/config_
$@
293 @cp router
/busybox
/config_base router
/busybox
/config_
$@
294 @cp
$(LINUXDIR
)/config_base
$(LINUXDIR
)/config_
$@
296 @sed
-i
"/TCONFIG_CIFS/d" router
/config_
$@
297 @echo
"# TCONFIG_CIFS is not set" >>router
/config_
$@
299 $(call KernelConfigMips
, $(LINUXDIR
)/config_
$@
)
300 $(call BusyboxKernelConfig
, router
/busybox
/config_
$@
)
302 @sed
-i
"/CONFIG_FEATURE_MOUNT_CIFS/d" router
/busybox
/config_
$@
303 @echo
"# CONFIG_FEATURE_MOUNT_CIFS is not set" >>router
/busybox
/config_
$@
305 @
$(MAKE
) setprofile N
=$(TPROFILE
) B
=C DESC
="No CIFS" USB
="USB"
308 ## Make the "normal but without SAMBA" build
310 @cp router
/config_base router
/config_
$@
311 @cp router
/busybox
/config_base router
/busybox
/config_
$@
312 @cp
$(LINUXDIR
)/config_base
$(LINUXDIR
)/config_
$@
314 @sed
-i
"/TCONFIG_SAMBASRV/d" router
/config_
$@
315 @echo
"# TCONFIG_SAMBASRV is not set" >>router
/config_
$@
317 $(call KernelConfigMips
, $(LINUXDIR
)/config_
$@
)
318 $(call BusyboxKernelConfig
, router
/busybox
/config_
$@
)
320 @sed
-i
"/CONFIG_FEATURE_MOUNT_LOOP/d" router
/busybox
/config_
$@
321 @echo
"# CONFIG_FEATURE_MOUNT_LOOP is not set" >>router
/busybox
/config_
$@
322 @sed
-i
"/CONFIG_AWK/d" router
/busybox
/config_
$@
323 @echo
"# CONFIG_AWK is not set" >>router
/busybox
/config_
$@
324 @sed
-i
"/CONFIG_FEATURE_DEVFS/d" router
/busybox
/config_
$@
325 @echo
"# CONFIG_FEATURE_DEVFS is not set" >>router
/busybox
/config_
$@
326 @sed
-i
"/CONFIG_BLKID/d" router
/busybox
/config_
$@
327 @echo
"# CONFIG_BLKID is not set" >>router
/busybox
/config_
$@
328 @sed
-i
"/CONFIG_ARPING/d" router
/busybox
/config_
$@
329 @echo
"# CONFIG_ARPING is not set" >>router
/busybox
/config_
$@
331 @
$(MAKE
) setprofile N
=$(TPROFILE
) B
=D DESC
="Lite" USB
="USB"
334 ## Make the "normal with Extras + VPN" build
336 @cp router
/config_base router
/config_
$@
337 @cp router
/busybox
/config_base router
/busybox
/config_
$@
338 @cp
$(LINUXDIR
)/config_base
$(LINUXDIR
)/config_
$@
340 @sed
-i
"/TCONFIG_LZO/d" router
/config_
$@
341 @sed
-i
"/TCONFIG_OPENVPN/d" router
/config_
$@
342 @echo
"TCONFIG_LZO=y" >>router
/config_
$@
343 @echo
"TCONFIG_OPENVPN=y" >>router
/config_
$@
344 @sed
-i
"/TCONFIG_USB_EXTRAS/d" router
/config_
$@
345 @echo
"TCONFIG_USB_EXTRAS=y" >>router
/config_
$@
346 @sed
-i
"/TCONFIG_NTFS/d" router
/config_
$@
347 @echo
"TCONFIG_NTFS=y" >>router
/config_
$@
349 $(call KernelConfigMips
, $(LINUXDIR
)/config_
$@
)
350 $(call BusyboxExtraOptions
, router
/busybox
/config_
$@
)
351 $(call BusyboxExtraUSBOptions
, router
/busybox
/config_
$@
)
352 $(call BusyboxKernelConfig
, router
/busybox
/config_
$@
)
354 @
$(MAKE
) setprofile N
=$(TPROFILE
) B
=E DESC
="VPN" USB
="USB"
357 ## Make the "normal with Extras" build
359 @cp router
/config_base router
/config_
$@
360 @cp router
/busybox
/config_base router
/busybox
/config_
$@
361 @cp
$(LINUXDIR
)/config_base
$(LINUXDIR
)/config_
$@
363 @sed
-i
"/TCONFIG_USB_EXTRAS/d" router
/config_
$@
364 @echo
"TCONFIG_USB_EXTRAS=y" >>router
/config_
$@
365 @sed
-i
"/TCONFIG_NTFS/d" router
/config_
$@
366 @echo
"TCONFIG_NTFS=y" >>router
/config_
$@
368 $(call KernelConfigMips
, $(LINUXDIR
)/config_
$@
)
369 $(call BusyboxExtraOptions
, router
/busybox
/config_
$@
)
370 $(call BusyboxExtraUSBOptions
, router
/busybox
/config_
$@
)
371 $(call BusyboxKernelConfig
, router
/busybox
/config_
$@
)
373 @
$(MAKE
) setprofile N
=$(TPROFILE
) B
=M DESC
="Ext" USB
="USB"
376 ## Make the "No USB" build
378 @cp router
/config_base router
/config_
$@
379 @cp router
/busybox
/config_base router
/busybox
/config_
$@
380 @cp
$(LINUXDIR
)/config_base
$(LINUXDIR
)/config_
$@
382 @sed
-i
"/TCONFIG_SAMBASRV/d" router
/config_
$@
383 @echo
"# TCONFIG_SAMBASRV is not set" >>router
/config_
$@
384 @sed
-i
"/TCONFIG_FTP/d" router
/config_
$@
385 @echo
"# TCONFIG_FTP is not set" >>router
/config_
$@
386 @sed
-i
"/TCONFIG_USB/d" router
/config_
$@
387 @echo
"# TCONFIG_USB is not set" >>router
/config_
$@
389 if
[ "$(NO_JFFS)" = "y" ]; then \
390 sed
-i
"/TCONFIG_JFFS2/d" router
/config_
$@
; \
391 echo
"# TCONFIG_JFFS2 is not set" >>router
/config_
$@
; \
395 $(call KernelConfigMips
, $(LINUXDIR
)/config_
$@
)
396 $(call BusyboxExtraOptions
, router
/busybox
/config_
$@
)
397 $(call BusyboxNoUSBOptions
, router
/busybox
/config_
$@
)
398 $(call BusyboxKernelConfig
, router
/busybox
/config_
$@
)
400 @
$(MAKE
) setprofile N
=$(TPROFILE
) B
=S DESC
="" USB
=""
403 ## Make the "VPN witn no USB support" build
405 @cp router
/config_base router
/config_
$@
406 @cp router
/busybox
/config_base router
/busybox
/config_
$@
407 @cp
$(LINUXDIR
)/config_base
$(LINUXDIR
)/config_
$@
409 @sed
-i
"/TCONFIG_SAMBASRV/d" router
/config_
$@
410 @echo
"# TCONFIG_SAMBASRV is not set" >>router
/config_
$@
411 @sed
-i
"/TCONFIG_FTP/d" router
/config_
$@
412 @echo
"# TCONFIG_FTP is not set" >>router
/config_
$@
413 @sed
-i
"/TCONFIG_USB/d" router
/config_
$@
414 @echo
"# TCONFIG_USB is not set" >>router
/config_
$@
415 @sed
-i
"/TCONFIG_LZO/d" router
/config_
$@
416 @sed
-i
"/TCONFIG_OPENVPN/d" router
/config_
$@
417 @echo
"TCONFIG_LZO=y" >>router
/config_
$@
418 @echo
"TCONFIG_OPENVPN=y" >>router
/config_
$@
420 $(call KernelConfigMips
, $(LINUXDIR
)/config_
$@
)
421 $(call BusyboxExtraOptions
, router
/busybox
/config_
$@
)
422 $(call BusyboxNoUSBOptions
, router
/busybox
/config_
$@
)
423 $(call BusyboxKernelConfig
, router
/busybox
/config_
$@
)
425 @
$(MAKE
) setprofile N
=$(TPROFILE
) B
=V DESC
="VPN" USB
=""
428 ## Make Mips32r2 Extras build (Asus RT-N16)
430 @
$(MAKE
) m MIPS32
=r2 BCM57
=y
432 ## Make Mips32r2 "no USB" build (Asus RT-N12)
434 @
$(MAKE
) s MIPS32
=r2 NO_JFFS
=y
437 echo
'#ifndef TOMATO_PROFILE' > router
/shared
/tomato_profile.h
438 echo
'#define TOMATO_$(N) 1' >> router
/shared
/tomato_profile.h
439 echo
'#define PROFILE_G 1' >> router
/shared
/tomato_profile.h
440 echo
'#define PROFILE_N 2' >> router
/shared
/tomato_profile.h
441 echo
'#define TOMATO_PROFILE PROFILE_$(N)' >> router
/shared
/tomato_profile.h
442 echo
'#define TOMATO_PROFILE_NAME "$(N)"' >> router
/shared
/tomato_profile.h
443 echo
'#define TOMATO_BUILD_NAME "$(B)"' >> router
/shared
/tomato_profile.h
444 echo
'#define TOMATO_BUILD_DESC "$(DESC)"' >> router
/shared
/tomato_profile.h
445 echo
'#endif' >> router
/shared
/tomato_profile.h
447 echo
'TOMATO_$(N) = 1' > tomato_profile.mak
448 echo
'PROFILE_G = 1' >> tomato_profile.mak
449 echo
'PROFILE_N = 2' >> tomato_profile.mak
450 echo
'TOMATO_PROFILE = $$(PROFILE_$(N))' >> tomato_profile.mak
451 echo
'TOMATO_PROFILE_NAME = "$(N)"' >> tomato_profile.mak
452 echo
'TOMATO_BUILD = "$(B)"' >> tomato_profile.mak
453 echo
'TOMATO_BUILD_NAME = "$(B)"' >> tomato_profile.mak
454 echo
'TOMATO_BUILD_DESC = "$(DESC)"' >> tomato_profile.mak
455 echo
'TOMATO_PROFILE_L = $(lowercase_N)' >> tomato_profile.mak
456 echo
'TOMATO_PROFILE_U = $(uppercase_N)' >> tomato_profile.mak
457 echo
'TOMATO_BUILD_USB = "$(USB)"' >> tomato_profile.mak
460 # Note that changes to variables in tomato_profile.mak don't
461 # get propogated to this invocation of make!
463 @echo
"Using $(N) profile, $(B) build config."
467 rm -f config_current
; \
468 ln
-s config_
$(lowercase_B
) config_current
; \
469 cp
-f config_current .config
470 @
$(MAKE
) -C
$(LINUXDIR
) oldconfig
473 rm -f config_current
; \
474 ln
-s config_
$(lowercase_B
) config_current
; \
475 cp config_current .config
476 @
$(MAKE
) -C router oldconfig
478 @cd router
/busybox
&& \
479 rm -f config_current
; \
480 ln
-s config_
$(lowercase_B
) config_current
; \
481 cp config_current .config
482 @
$(MAKE
) -C router
/busybox oldconfig
485 # @$(MAKE) -C ../../tools-src/uClibc clean
488 # @$(MAKE) -C ../../tools-src/uClibc
489 # @$(MAKE) -C ../../tools-src/uClibc install
492 @echo
"a A build (standard)"
493 @echo
"b B build (standard minus SSH)"
494 @echo
"c C build (standard minus cifs)"
495 @echo
"d D build (standard minus Samba server)"
496 @echo
"m M build (standard plus extra utilities)"
497 @echo
"e E build (standard plus VPN and extra utilities)"
498 @echo
"s S build (no USB support)"
499 @echo
"v V build (VPN with no USB support)"
500 @echo
"..etc.. other build configs"
501 @echo
"clean -C router clean"
502 @echo
"cleanimage rm -rf image"
503 @echo
"cleantools clean btools, mksquashfs"
504 @echo
"cleankernel -C Linux distclean (but preserves .config)"
505 @echo
"distclean distclean of Linux & busybox (but preserve .configs)"
506 @echo
"prepk -C Linux oldconfig dep"
507 @echo
"libc -C uClibc clean, all, install"
509 .PHONY
: all clean distclean cleanimage cleantools cleankernel prepk what setprofile libc help
510 .PHONY
: a b c d m Makefile allversions tomato_profile.mak