nas/net restart tweaks
[tomato.git] / release / src / router / Makefile
blob4eb431aad8fae3ad0ab805fe2201a9a75bf0f039
2 # Broadcom Linux Router Makefile
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.
14 include common.mak
16 TOMATO_EXPERIMENTAL=0
21 SEP=echo "\033[41;1m $@ \033[0m"
24 # standard packages
26 obj-y += lzma-loader
27 obj-y += nvram
28 obj-y += shared
29 obj-y += prebuilt
30 obj-y += igmpproxy
31 obj-y += iptables
32 obj-y += rc
33 obj-y += iproute2
34 obj-y += rom
35 obj-y += others
36 obj-y += busybox
37 obj-y += httpd
38 obj-y += www
39 obj-y += bridge
40 obj-y += dnsmasq
41 obj-y += etc
42 # obj-y += vlan # use Busybox vconfig
43 obj-y += ppp
44 obj-y += ttcp
45 obj-y += ntpc
46 obj-y += rstats
48 # !!TB - updated Broadcom Wireless driver
49 obj-y += et
50 obj-y += libbcmcrypto
51 obj-y += wlconf
53 obj-y += mssl
54 obj-y += mdu
56 # !!TB
57 obj-$(TCONFIG_USB) += p910nd
58 obj-$(TCONFIG_USB) += scsi-idle
59 obj-$(TCONFIG_USB) += libusb10
60 obj-$(TCONFIG_USB) += libusb
61 obj-$(TCONFIG_USB) += usbmodeswitch
62 #obj-y += sendmail
63 obj-$(TCONFIG_FTP) += vsftpd
64 ifeq ($(CONFIG_LINUX26),y)
65 ifeq ($(TCONFIG_SAMBASRV),y)
66 NEED_EX_NLS = y
67 endif
68 endif
69 ifeq ($(TCONFIG_SAMBASRV),y)
70 ifeq ($(TCONFIG_SAMBA3),y)
71 NEED_SAMBA3 = y
72 else
73 NEED_SAMBA2 = y
74 endif
75 endif
76 obj-$(NEED_SAMBA2) += samba
77 obj-$(NEED_SAMBA3) += samba3
78 obj-$(TCONFIG_NTFS) += ntfs-3g
80 obj-y += miniupnpd
81 # obj-y += upnp
85 # configurable packages
87 obj-$(TCONFIG_L2TP) += rp-l2tp
88 obj-$(TCONFIG_PPTP) += pptp-client
89 obj-$(TCONFIG_HTTPS) += openssl
90 obj-$(TCONFIG_HTTPS) += matrixssl
91 obj-$(TCONFIG_SSH) += dropbear
92 obj-$(TCONFIG_ZEBRA) += zebra
93 # obj-$(TCONFIG_IPP2P) += ipp2p
94 obj-$(TCONFIG_LZO) += lzo
95 obj-$(TCONFIG_OPENVPN) += openvpn
97 ifeq ($(TCONFIG_L2TP),y)
98 NEED_PPPD = y
99 endif
100 ifeq ($(TCONFIG_PPTP),y)
101 NEED_PPPD = y
102 endif
103 obj-$(NEED_PPPD) += pppd
105 obj-$(CONFIG_LINUX26) += hotplug2
106 obj-$(CONFIG_LINUX26) += udev
107 obj-$(__CONFIG_BCMWL5) += emf
108 obj-$(__CONFIG_BCMWL5) += igs
110 obj-clean := $(foreach obj, $(obj-y) $(obj-n) $(obj-), $(obj)-clean)
111 obj-install := $(foreach obj,$(obj-y),$(obj)-install)
116 # Basic rules
119 all: clean-build libc $(obj-y) kernel
122 kernel: $(LINUXDIR)/.config
123 @$(SEP)
125 @if ! grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \
126 $(MAKE) -C $(LINUXDIR) zImage CC=$(KERNELCC); \
128 if grep -q "CONFIG_MODULES=y" $(LINUXDIR)/.config ; then \
129 $(MAKE) -C $(LINUXDIR) modules CC=$(KERNELCC); \
131 ifeq ($(CONFIG_LINUX26),y)
132 $(MAKE) -C $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed srctree=$(LINUXDIR)
133 endif
136 lzma-loader:
137 $(MAKE) -C $(SRCBASE)/lzma-loader CROSS_COMPILE=$(CROSS_COMPILE) LD=$(LD)
139 lzma-loader-install: lzma-loader
140 @$(SEP)
143 kmod: dummy
144 $(MAKE) -C $(LINUXDIR) modules
146 testfind:
147 cd $(TARGETDIR)/lib/modules/* && find -name "*.o" -exec mv -i {} . \; || true
148 cd $(TARGETDIR)/lib/modules/* && find -type d -delete || true
150 install package: $(obj-install) $(LINUXDIR)/.config
151 @$(SEP)
153 install -d $(TARGETDIR)
156 # kernel modules
157 $(MAKE) -C $(LINUXDIR) modules_install DEPMOD=/bin/true INSTALL_MOD_PATH=$(TARGETDIR)
158 ##!!TB find $(TARGETDIR)/lib/modules -name *.o -exec mipsel-linux-strip --strip-unneeded {} \;
159 find $(TARGETDIR)/lib/modules -name *.o -exec $(STRIP) --strip-debug {} \;
160 find $(TARGETDIR)/lib/modules -name *.ko -exec $(STRIP) --strip-debug {} \;
162 -cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv diag/* . && rm -rf diag
164 # nice and clean
165 -cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv et.4702/* . && rm -rf et.4702 || true
166 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv et/* . && rm -rf et
167 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv wl/* . && rm -rf wl
168 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv cifs/* . && rm -rf cifs
169 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv jffs2/* . && rm -rf jffs2 || true
170 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv jffs/* . && rm -rf jffs || true
171 cd $(TARGETDIR)/lib/modules/*/kernel/lib && mv zlib_inflate/* . && rm -rf zlib_inflate || true
172 cd $(TARGETDIR)/lib/modules/*/kernel/lib && mv zlib_deflate/* . && rm -rf zlib_deflate || true
173 cd $(TARGETDIR)/lib/modules/*/kernel/lib && mv lzo/* . && rm -rf lzo || true
174 rm -rf $(TARGETDIR)/lib/modules/*/pcmcia
176 ##!!TB
177 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv ext2/* . && rm -rf ext2 || true
178 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv ext3/* . && rm -rf ext3 || true
179 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv jbd/* . && rm -rf jbd || true
180 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv fat/* . && rm -rf fat || true
181 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv vfat/* . && rm -rf vfat || true
182 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv msdos/* . && rm -rf msdos || true
183 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv fuse/* . && rm -rf fuse || true
184 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv ntfs/* . && rm -rf ntfs || true
185 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv smbfs/* . && rm -rf smbfs || true
186 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv reiserfs/* . && rm -rf reiserfs || true
187 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv hfsplus/* . && rm -rf hfsplus || true
188 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv lockd/* . && rm -rf lockd || true
189 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv nfsd/* . && rm -rf nfsd || true
190 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv nfs/* . && rm -rf nfs || true
191 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv xfs/* . && rm -rf xfs || true
192 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv nls/* . && rm -rf nls || true
193 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv exportfs/* . && rm -rf exportfs || true
194 cd $(TARGETDIR)/lib/modules/*/kernel/net && mv sunrpc/* . && rm -rf sunrpc || true
195 cd $(TARGETDIR)/lib/modules/*/kernel/net && mv auth_gss/* . && rm -rf auth_gss || true
196 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv hcd/* . && rm -rf hcd || true
197 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv host/* . && rm -rf host || true
198 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv storage/* . && rm -rf storage || true
199 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv serial/* . && rm -rf serial || true
200 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv core/* . && rm -rf core || true
201 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv class/* . && rm -rf class || true
202 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv misc/* . && rm -rf misc || true
203 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/media && mv video/* . && rm -rf video || true
205 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv bcm57xx/* . && rm -rf bcm57xx || true
206 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv emf/* . && rm -rf emf || true
207 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv igs/* . && rm -rf igs || true
208 cd $(TARGETDIR)/lib/modules && rm -f */source || true
210 # misc
211 for dir in $(wildcard $(patsubst %,$(INSTALLDIR)/%,$(obj-y))) ; do \
212 (cd $${dir} && tar cpf - .) | (cd $(TARGETDIR) && tar xpf -) \
213 done
215 ifneq ($(TCONFIG_JFFS2),y)
216 rm -f $(TARGETDIR)/lib/modules/*/kernel/fs/jffs2.*o || true
217 rm -f $(TARGETDIR)/lib/modules/*/kernel/fs/jffs.*o || true
218 ifneq ($(CONFIG_LINUX26),y)
219 rm -rf $(TARGETDIR)/lib/modules/*/kernel/lib/zlib_* || true
220 endif
221 endif
223 ifneq ($(TCONFIG_CIFS),y)
224 rm -f $(TARGETDIR)/lib/modules/*/kernel/fs/cifs.*o
225 endif
227 ifneq ($(TCONFIG_L7),y)
228 rm -f $(TARGETDIR)/lib/modules/*/kernel/net/ipv4/netfilter/ipt_layer7.*o
229 rm -f $(TARGETDIR)/usr/lib/iptables/libipt_layer7.so
230 endif
232 # uClibc
233 install $(LIBDIR)/ld-uClibc.so.0 $(TARGETDIR)/lib/
234 install $(LIBDIR)/libcrypt.so.0 $(TARGETDIR)/lib/
235 install $(LIBDIR)/libpthread.so.0 $(TARGETDIR)/lib/
236 install $(LIBDIR)/libgcc_s.so.1 $(TARGETDIR)/lib/
237 $(STRIP) $(TARGETDIR)/lib/libgcc_s.so.1
238 install $(LIBDIR)/libc.so.0 $(TARGETDIR)/lib/
239 install $(LIBDIR)/libdl.so.0 $(TARGETDIR)/lib/
240 install $(LIBDIR)/libm.so.0 $(TARGETDIR)/lib/
241 install $(LIBDIR)/libnsl.so.0 $(TARGETDIR)/lib/
242 ifeq ($(TCONFIG_SSH),y)
243 install $(LIBDIR)/libutil.so.0 $(TARGETDIR)/lib/
244 endif
246 @cd $(TARGETDIR) && $(TOP)/others/rootprep.sh
248 @echo ---
250 @../btools/libfoo.pl
251 @chmod 0555 $(TARGETDIR)/lib/*.so*
252 @chmod 0555 $(TARGETDIR)/usr/lib/*.so*
254 # !!TB - moved to run after libfoo.pl - to make sure shared libs include all symbols needed by extras
255 # separated extra stuff
256 @rm -rf $(PLATFORMDIR)/extras
257 @mkdir $(PLATFORMDIR)/extras
258 @mv $(TARGETDIR)/lib/modules/*/kernel/net/ipv4/ip_gre.*o $(PLATFORMDIR)/extras/ || true
259 ifneq ($(TCONFIG_OPENVPN),y)
260 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/tun.*o $(PLATFORMDIR)/extras/ || true
261 endif
263 #!!TB
264 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/ntfs.*o $(PLATFORMDIR)/extras/ || true
265 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/smbfs.*o $(PLATFORMDIR)/extras/ || true
266 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/reiserfs.*o $(PLATFORMDIR)/extras/ || true
267 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/hfsplus.*o $(PLATFORMDIR)/extras/ || true
268 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nfs.*o $(PLATFORMDIR)/extras/ || true
269 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nfsd.*o $(PLATFORMDIR)/extras/ || true
270 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/lockd.*o $(PLATFORMDIR)/extras/ || true
271 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/exportfs.*o $(PLATFORMDIR)/extras/ || true
272 @mv $(TARGETDIR)/lib/modules/*/kernel/net/sunrpc.*o $(PLATFORMDIR)/extras/ || true
273 @mv $(TARGETDIR)/lib/modules/*/kernel/net/auth_rpcgss.*o $(PLATFORMDIR)/extras/ || true
274 @mv $(TARGETDIR)/lib/modules/*/kernel/net/rpcsec_gss_krb5.*o $(PLATFORMDIR)/extras/ || true
275 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/xfs.*o $(PLATFORMDIR)/extras/ || true
276 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/scanner.*o $(PLATFORMDIR)/extras/ || true
277 ifneq ($(CONFIG_LINUX26),y)
278 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/usbserial.*o $(PLATFORMDIR)/extras/ || true
279 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/option.*o $(PLATFORMDIR)/extras/ || true
280 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/sierra.*o $(PLATFORMDIR)/extras/ || true
281 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/*acm.*o $(PLATFORMDIR)/extras/ || true
282 endif
283 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/ftdi_sio.*o $(PLATFORMDIR)/extras/ || true
284 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/pl2303.*o $(PLATFORMDIR)/extras/ || true
285 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/ipw.*o $(PLATFORMDIR)/extras/ || true
286 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/audio.*o $(PLATFORMDIR)/extras/ || true
287 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/ov51*.*o $(PLATFORMDIR)/extras/ || true
288 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/pwc*.*o $(PLATFORMDIR)/extras/ || true
289 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/emi*.*o $(PLATFORMDIR)/extras/ || true
290 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/media/* $(PLATFORMDIR)/extras/ || true
291 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/media || true
292 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/sound/* $(PLATFORMDIR)/extras/ || true
293 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/sound || true
294 @mv $(TARGETDIR)/lib/modules/*/kernel/sound/* $(PLATFORMDIR)/extras/ || true
295 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/sound || true
297 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/pptp.*o $(PLATFORMDIR)/extras/ || true
298 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/pppol2tp.*o $(PLATFORMDIR)/extras/ || true
299 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/ppp_mppe*.*o $(PLATFORMDIR)/extras/ || true
300 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/ppp_deflate.*o $(PLATFORMDIR)/extras/ || true
301 @mkdir -p $(PLATFORMDIR)/extras/crypto
302 @mv $(TARGETDIR)/lib/modules/*/kernel/crypto/* $(PLATFORMDIR)/extras/crypto/ || true
303 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/crypto || true
304 ifneq ($(CONFIG_LINUX26),y)
305 @mv $(TARGETDIR)/lib/modules/*/kernel/lib/* $(PLATFORMDIR)/extras/ || true
306 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/lib || true
307 endif
308 ifneq ($(TCONFIG_USB),y)
309 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_*.*o $(PLATFORMDIR)/extras/ || true
310 endif
311 ifneq ($(NEED_EX_NLS),y)
312 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_cp9*.*o $(PLATFORMDIR)/extras/ || true
313 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_cp1251.*o $(PLATFORMDIR)/extras/ || true
314 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_euc-jp.*o $(PLATFORMDIR)/extras/ || true
315 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_sjis.*o $(PLATFORMDIR)/extras/ || true
316 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_gb2312.*o $(PLATFORMDIR)/extras/ || true
317 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_euc-kr.*o $(PLATFORMDIR)/extras/ || true
318 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_big5.*o $(PLATFORMDIR)/extras/ || true
319 endif
320 ifneq ($(TCONFIG_USB),y)
321 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/*.*o $(PLATFORMDIR)/extras/ || true
322 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/usb || true
323 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/scsi/*.*o $(PLATFORMDIR)/extras/ || true
324 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/scsi || true
325 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/ext2.*o $(PLATFORMDIR)/extras/ || true
326 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/ext3.*o $(PLATFORMDIR)/extras/ || true
327 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/jbd.*o $(PLATFORMDIR)/extras/ || true
328 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/fat.*o $(PLATFORMDIR)/extras/ || true
329 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/vfat.*o $(PLATFORMDIR)/extras/ || true
330 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/msdos.*o $(PLATFORMDIR)/extras/ || true
331 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/fuse.*o $(PLATFORMDIR)/extras/ || true
332 endif
333 ifneq ($(TCONFIG_USB_EXTRAS),y)
334 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/block/loop.*o $(PLATFORMDIR)/extras/ || true
335 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/block || true
336 endif
338 ifneq ($(CONFIG_LINUX26),y)
339 @mkdir -p $(PLATFORMDIR)/extras/lib
340 @mv $(TARGETDIR)/usr/lib/libusb* $(PLATFORMDIR)/extras/lib/ || true
341 @mkdir -p $(PLATFORMDIR)/extras/apps
342 @mv $(TARGETDIR)/usr/sbin/usb_modeswitch $(PLATFORMDIR)/extras/apps/ || true
343 @cp usbmodeswitch/usb_modeswitch.conf $(PLATFORMDIR)/extras/apps/usb_modeswitch.conf || true
344 endif
346 @mkdir -p $(TARGETDIR)/rom/etc/l7-protocols
347 ifeq ($(TCONFIG_L7PAT),y)
348 @cd layer7 && ./squish.sh
349 cp layer7/squished/*.pat $(TARGETDIR)/rom/etc/l7-protocols
350 endif
352 busybox/examples/depmod.pl -k $(LINUXDIR)/vmlinux -b $(TARGETDIR)/lib/modules/*/
353 @mv $(TARGETDIR)/lib/modules/*/modules.dep $(TARGETDIR)/lib/modules/
354 @echo ---
356 @rm -f $(TARGETDIR)/lib/modules/*/build
358 @$(MAKE) -C $(LINUXDIR)/scripts/squashfs mksquashfs-lzma
359 @$(LINUXDIR)/scripts/squashfs/mksquashfs-lzma $(TARGETDIR) $(PLATFORMDIR)/target.image -all-root -noappend -nopad | tee target.info
361 # Package kernel and filesystem
362 # if grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \
363 # cp $(PLATFORMDIR)/target.image $(LINUXDIR)/arch/mips/ramdisk/$${CONFIG_EMBEDDED_RAMDISK_IMAGE} ; \
364 # $(MAKE) -C $(LINUXDIR) zImage ; \
365 # else \
366 # cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz $(PLATFORMDIR)/ ; \
367 # trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.image ; \
368 # fi
370 # Pad self-booting Linux to a 64 KB boundary
371 # cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/zImage $(PLATFORMDIR)/
372 # dd conv=sync bs=64k < $(PLATFORMDIR)/zImage > $(PLATFORMDIR)/linux.bin
373 # Append filesystem to self-booting Linux
374 # cat $(PLATFORMDIR)/target.image >> $(PLATFORMDIR)/linux.bin
377 libc: $(LIBDIR)/ld-uClibc.so.0
378 # $(MAKE) -C ../../../tools-src/uClibc all
379 # $(MAKE) -C ../../../tools-src/uClibc install
383 # cleaners
386 clean: clean-build $(obj-clean)
387 rm -rf layer7/squished
388 make -C config clean
390 clean-build: dummy
391 rm -rf $(TARGETDIR)
392 rm -rf $(INSTALLDIR)
393 rm -f $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.image
394 rm -rf $(PLATFORMDIR)/extras
396 distclean: clean
397 ifneq ($(INSIDE_MAK),1)
398 $(MAKE) -C .. $@ INSIDE_MAK=1
399 endif
400 -rm -f $(LIBDIR)/*.so.0 $(LIBDIR)/*.so
403 # configuration
406 CONFIG_IN := config/config.in
408 config/conf config/mconf:
409 @$(MAKE) -C config
411 rconf: config/conf
412 @config/conf $(CONFIG_IN)
414 rmconf: config/mconf
415 @config/mconf $(CONFIG_IN)
417 roldconf: config/conf
418 @config/conf -o $(CONFIG_IN)
420 kconf:
421 @$(MAKE) -C $(LINUXDIR) config
423 kmconf:
424 @$(MAKE) -C $(LINUXDIR) menuconfig
426 koldconf:
427 @$(MAKE) -C $(LINUXDIR) oldconfig
428 @$(MAKE) -C $(LINUXDIR) include/linux/version.h
430 bboldconf:
431 @$(MAKE) -C busybox oldconfig
433 config conf: rconf kconf
435 menuconfig mconf: rmconf kmconf
437 oldconfig oldconf: koldconf roldconf bboldconf
441 # overrides and extra dependencies
444 busybox: dummy
445 @$(MAKE) -C busybox CFLAGS_busybox="$(EXTRACFLAGS)"
447 # V=1
449 busybox-install:
450 rm -rf $(INSTALLDIR)/busybox
451 $(MAKE) -C busybox install CONFIG_PREFIX=$(INSTALLDIR)/busybox
453 busybox-clean:
454 $(MAKE) -C busybox distclean
456 busybox-config:
457 $(MAKE) -C busybox menuconfig
460 httpd: matrixssl shared nvram mssl
461 @$(SEP)
462 @$(MAKE) -C httpd
464 www-install:
465 @$(MAKE) -C www install INSTALLDIR=$(INSTALLDIR)/www TOMATO_EXPERIMENTAL=$(TOMATO_EXPERIMENTAL)
467 matrixssl:
468 @$(SEP)
469 @$(MAKE) -C matrixssl/src
471 matrixssl-install:
472 @true
474 matrixssl-clean:
475 $(MAKE) -C matrixssl/src clean
477 openssl-config:
478 ifeq ($(TCONFIG_OPENVPN),y)
479 cd openssl && \
480 CC=$(CC) && ./Configure linux-mipsel
481 else
482 cd openssl && \
483 CC=$(CC) && ./Configure linux-mipsel no-aes no-idea no-md2 no-mdc2 no-rc5
484 endif
485 @$(MAKE) -C openssl clean
487 openssl: openssl-config
489 openssl-install:
490 install -D openssl/libcrypto.so $(INSTALLDIR)/openssl/usr/lib/libcrypto.so
491 $(STRIP) $(INSTALLDIR)/openssl/usr/lib/libcrypto.so
493 install -D openssl/apps/openssl $(INSTALLDIR)/openssl/usr/sbin/openssl
494 $(STRIP) $(INSTALLDIR)/openssl/usr/sbin/openssl
495 chmod 0500 $(INSTALLDIR)/openssl/usr/sbin/openssl
497 install -D -m 0500 httpd/gencert.sh $(INSTALLDIR)/openssl/usr/sbin/gencert.sh
499 # perl -e 'while (<>) { s/.SECS/time()-(24*60*60)/e; print; }' < httpd/gencert.sh > $(INSTALLDIR)/openssl/usr/sbin/gencert.sh
500 # chmod 0500 $(INSTALLDIR)/openssl/usr/sbin/gencert.sh
502 ifeq ($(TCONFIG_FTP_SSL),y)
503 # !!TB
504 install -D openssl/libssl.so $(INSTALLDIR)/openssl/usr/lib/libssl.so
505 $(STRIP) $(INSTALLDIR)/openssl/usr/lib/libssl.so
506 endif
508 ifeq ($(TCONFIG_OPENVPN),y)
509 install -D openssl/libssl.so $(INSTALLDIR)/openssl/usr/lib/libssl.so
510 $(STRIP) $(INSTALLDIR)/openssl/usr/lib/libssl.so
511 endif
513 mssl: matrixssl
515 mdu: shared mssl
517 rc: nvram shared
519 bridge/Makefile:
520 cd bridge && CFLAGS="-Os -g $(EXTRACFLAGS)" \
521 $(CONFIGURE) --prefix="" --with-linux-headers=$(LINUXDIR)/include
523 bridge: bridge/Makefile
524 @$(SEP)
525 @$(MAKE) -C bridge
527 bridge-clean:
528 @$(MAKE) -C bridge clean || true
529 @rm -f bridge/Makefile
531 bridge-install:
532 install -D bridge/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl
533 $(STRIP) $(INSTALLDIR)/bridge/usr/sbin/brctl
535 dnsmasq:
536 @$(SEP)
537 @$(MAKE) -C dnsmasq COPTS="-DNO_IPV6 -DNO_SCRIPT $(EXTRACFLAGS)"
539 dnsmasq-install:
540 install -D dnsmasq/src/dnsmasq $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq
541 $(STRIP) $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq
543 iptables:
544 @$(SEP)
545 $(MAKE) -C iptables BINDIR=/usr/sbin LIBDIR=/usr/lib KERNEL_DIR=$(LINUXDIR) COPT_FLAGS="-Os $(EXTRACFLAGS)"
547 iptables-install:
548 install -D iptables/iptables $(INSTALLDIR)/iptables/usr/sbin/iptables
549 cd $(INSTALLDIR)/iptables/usr/sbin && \
550 ln -sf iptables iptables-restore
552 install -d $(INSTALLDIR)/iptables/usr/lib/iptables
553 install -D iptables/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables/
555 install -D iptables/libiptc.so $(INSTALLDIR)/iptables/usr/lib/libiptc.so
557 $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables
558 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so
559 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/libiptc.so
561 iptables-clean:
562 -$(MAKE) -C iptables KERNEL_DIR=$(LINUXDIR) clean
564 ppp:
565 @$(SEP)
566 $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp
567 # $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp DFLAGS="-DDEBUG -DDEBUGALL"
569 ppp-%:
570 $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp
573 upnp: nvram shared iptables
575 miniupnpd: iptables
576 @$(SEP)
577 $(MAKE) -C miniupnpd -f Makefile.tomato
579 miniupnpd-clean:
580 -$(MAKE) -C miniupnpd -f Makefile.tomato clean
582 miniupnpd-install:
583 install -D miniupnpd/miniupnpd $(INSTALLDIR)/miniupnpd/usr/sbin/miniupnpd
584 $(STRIP) $(INSTALLDIR)/miniupnpd/usr/sbin/miniupnpd
586 # !!TB
587 shared: busybox
589 vsftpd: shared openssl
590 @$(SEP)
591 $(MAKE) -C vsftpd
593 vsftpd-install:
594 install -D vsftpd/vsftpd $(INSTALLDIR)/vsftpd/usr/sbin/vsftpd
595 $(STRIP) -s $(INSTALLDIR)/vsftpd/usr/sbin/vsftpd
597 ntfs-3g/Makefile:
598 cd ntfs-3g && \
599 CC=$(CC) CFLAGS="-Os $(EXTRACFLAGS)" $(CONFIGURE) --enable-shared=no --enable-static=no \
600 --disable-library --disable-ldconfig --disable-mount-helper --with-fuse=internal \
601 --disable-posix-acls --disable-nfconv --disable-dependency-tracking
603 ntfs-3g: ntfs-3g/Makefile
604 @$(MAKE) -C ntfs-3g CFLAGS="-Os -Wall $(EXTRACFLAGS)"
606 ntfs-3g-clean:
607 @$(MAKE) -C ntfs-3g clean || true
609 ntfs-3g-install: ntfs-3g
610 install -D ntfs-3g/src/ntfs-3g $(INSTALLDIR)/ntfs-3g/bin/ntfs-3g
611 $(STRIP) -s $(INSTALLDIR)/ntfs-3g/bin/ntfs-3g
612 install -d $(INSTALLDIR)/ntfs-3g/sbin && cd $(INSTALLDIR)/ntfs-3g/sbin && \
613 ln -sf ../bin/ntfs-3g mount.ntfs-3g && \
614 ln -sf ../bin/ntfs-3g mount.ntfs
616 libusb10/Makefile: libusb10/Makefile.in
617 cd libusb10 && CFLAGS="-Os -Wall $(EXTRACFLAGS)" LIBS="-lpthread" \
618 $(CONFIGURE) --prefix=/usr ac_cv_lib_rt_clock_gettime=no
620 libusb10: libusb10/Makefile
621 $(MAKE) -C $@
623 libusb10-install: libusb10
624 install -D libusb10/libusb/.libs/libusb-1.0.so.0.0.0 $(INSTALLDIR)/libusb10/usr/lib/libusb-1.0.so.0
625 $(STRIP) $(INSTALLDIR)/libusb10/usr/lib/*.so.*
626 cd $(INSTALLDIR)/libusb10/usr/lib && \
627 ln -sf libusb-1.0.so.0 libusb-1.0.so.0.0.0 && \
628 ln -sf libusb-1.0.so.0 libusb-1.0.so
630 libusb/Makefile: libusb/Makefile.in
631 cd libusb && CFLAGS="-Wall -Os $(EXTRACFLAGS)" \
632 $(CONFIGURE) --prefix=/usr \
633 LIBUSB_1_0_CFLAGS="-I$(TOP)/libusb10/libusb" \
634 LIBUSB_1_0_LIBS="-L$(TOP)/libusb10/libusb/.libs -lusb-1.0 -lpthread \
635 -Wl,-R/lib:/usr/lib:/opt/usr/lib:/usr/local/share"
637 libusb: libusb10 libusb/Makefile
638 $(MAKE) -C $@
640 libusb-install: libusb
641 install -D libusb/libusb/.libs/libusb-0.1.so.4.4.4 $(INSTALLDIR)/libusb/usr/lib/libusb-0.1.so.4
642 $(STRIP) $(INSTALLDIR)/libusb/usr/lib/*.so.*
643 cd $(INSTALLDIR)/libusb/usr/lib && \
644 ln -sf libusb-0.1.so.4 libusb-0.1.so.4.4.4 && \
645 ln -sf libusb-0.1.so.4 libusb.so
647 usbmodeswitch: libusb
648 $(MAKE) -C $@ CC=$(CC) CCFLAGS="-Wall -Os $(EXTRACFLAGS) \
649 -Wl,-R/lib:/usr/lib:/opt/usr/lib:/usr/local/share \
650 -I$(TOP)/libusb10/libusb -L$(TOP)/libusb10/libusb/.libs -lusb-1.0 \
651 -I$(TOP)/libusb/libusb -L$(TOP)/libusb/libusb/.libs -lusb -lpthread"
653 usbmodeswitch-install:
654 install -D usbmodeswitch/usb_modeswitch $(INSTALLDIR)/usbmodeswitch/usr/sbin/usb_modeswitch
655 $(STRIP) -s $(INSTALLDIR)/usbmodeswitch/usr/sbin/usb_modeswitch
657 p910nd:
658 sendmail:
659 samba:
660 samba3:
662 nvram: shared
664 prebuilt: shared
666 vlan:
667 @$(SEP)
668 @$(MAKE) -C vlan CROSS=$(CROSS_COMPILE) # STRIPTOOL=$(STRIP)
670 vlan-install:
671 $(MAKE) -C vlan CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install # STRIPTOOL=$(STRIP)
672 $(STRIP) $(INSTALLDIR)/vlan/usr/sbin/vconfig
675 pptp-client-install:
676 install -D pptp-client/pptp $(INSTALLDIR)/pptp-client/usr/sbin/pptp
677 $(STRIP) $(INSTALLDIR)/pptp-client/usr/sbin/pptp
680 pppd/Makefile: pppd/linux/Makefile.top
681 cd pppd && $(CONFIGURE) --prefix=/usr --sysconfdir=/tmp
683 pppd: pppd/Makefile
684 @$(SEP)
685 @$(MAKE) -C pppd
687 pppd-clean:
688 $(MAKE) -C pppd clean
690 pppd-install:
691 install -D pppd/pppd/pppd $(INSTALLDIR)/pppd/usr/sbin/pppd
692 $(STRIP) $(INSTALLDIR)/pppd/usr/sbin/pppd
693 install -D pppd/pppd/plugins/pppol2tp/pppol2tp.so $(INSTALLDIR)/pppd/usr/lib/pppd/pppol2tp.so
694 $(STRIP) $(INSTALLDIR)/pppd/usr/lib/pppd/*.so
696 # ipupdate-install:
697 # install -D ipupdate/ez-ipupdate $(INSTALLDIR)/ipupdate/usr/sbin/ez-ipupdate
698 # $(STRIP) $(INSTALLDIR)/ipupdate/usr/sbin/ez-ipupdate
701 zebra:
702 @$(SEP)
703 cd zebra && rm -f config.cache && CC=$(CC) AR=$(AR) RANLIB=$(RANLIB) LD=$(LD) CFLAGS="-Os -Wall $(EXTRACFLAGS)" $(CONFIGURE) \
704 --sysconfdir=/etc \
705 --enable-netlink --disable-ipv6 --disable-ripngd --disable-ospfd --disable-doc \
706 --disable-ospf6d --disable-bgpd --disable-bgpd-announce
707 @$(MAKE) -C zebra CC=$(CC) AR=$(AR) RANLIB=$(RANLIB) LD=$(LD)
709 zebra-install:
710 install -D zebra/zebra/zebra $(INSTALLDIR)/zebra/usr/sbin/zebra
711 install -D zebra/ripd/ripd $(INSTALLDIR)/zebra/usr/sbin/ripd
712 install -D zebra/lib/libzebra.so $(INSTALLDIR)/zebra/usr/lib/libzebra.so
713 $(STRIP) $(INSTALLDIR)/zebra/usr/sbin/zebra
714 $(STRIP) $(INSTALLDIR)/zebra/usr/sbin/ripd
715 $(STRIP) $(INSTALLDIR)/zebra/usr/lib/libzebra.so
718 rp-l2tp-install:
719 install -d $(INSTALLDIR)/rp-l2tp/usr/lib/l2tp
720 install rp-l2tp/handlers/*.so $(INSTALLDIR)/rp-l2tp/usr/lib/l2tp
721 $(STRIP) $(INSTALLDIR)/rp-l2tp/usr/lib/l2tp/*.so
722 install -D rp-l2tp/handlers/l2tp-control $(INSTALLDIR)/rp-l2tp/usr/sbin/l2tp-control
723 $(STRIP) $(INSTALLDIR)/rp-l2tp/usr/sbin/l2tp-control
724 install -D rp-l2tp/l2tpd $(INSTALLDIR)/rp-l2tp/usr/sbin/l2tpd
725 $(STRIP) $(INSTALLDIR)/rp-l2tp/usr/sbin/l2tpd
728 bpalogin-install:
729 install -D bpalogin/bpalogin $(INSTALLDIR)/bpalogin/usr/sbin/bpalogin
730 $(STRIP) $(INSTALLDIR)/bpalogin/usr/sbin/bpalogin
733 # libnet:
734 # @$(SEP)
735 # @-mkdir -p libnet/lib
736 # @$(MAKE) -C libnet CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
738 # libpcap:
739 # @$(SEP)
740 # @$(MAKE) -C libpcap CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
742 libbcm:
743 @[ ! -f libbcm/Makefile ] || $(MAKE) -C libbcm
745 libbcm-install:
746 install -D libbcm/libbcm.so $(INSTALLDIR)/libbcm/usr/lib/libbcm.so
747 $(STRIP) $(INSTALLDIR)/libbcm/usr/lib/libbcm.so
750 iproute2-install:
751 install -D iproute2/tc/tc $(INSTALLDIR)/iproute2/usr/sbin/tc
752 $(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/tc
753 install -D iproute2/ip/ip $(INSTALLDIR)/iproute2/usr/sbin/ip
754 $(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/ip
757 ntpc: nvram shared
760 dropbear: dropbear/config.h
761 @$(SEP)
762 @make -C dropbear PROGRAMS="dropbear dbclient dropbearkey scp" MULTI=1
764 dropbear-install:
765 install -D dropbear/dropbearmulti $(INSTALLDIR)/dropbear/usr/bin/dropbearmulti
766 $(STRIP) $(INSTALLDIR)/dropbear/usr/bin/dropbearmulti
767 cd $(INSTALLDIR)/dropbear/usr/bin && \
768 ln -sf dropbearmulti dropbear && \
769 ln -sf dropbearmulti dropbearconvert && \
770 ln -sf dropbearmulti dropbearkey && \
771 ln -sf dropbearmulti dbclient && \
772 ln -sf dropbearmulti ssh && \
773 ln -sf dropbearmulti scp
775 dropbear-clean:
776 @make -C dropbear clean
778 dropbear/config.h:
779 cd dropbear && CFLAGS="-O2 -Wall $(EXTRACFLAGS)" ac_cv_func_logout=no ac_cv_func_logwtmp=no $(CONFIGURE) --disable-zlib --enable-syslog --disable-lastlog --disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpx --disable-pututline --disable-pututxline --disable-loginfunc --disable-largefile
780 make -C dropbear clean
782 igmpproxy/src/Makefile: igmpproxy/src/Makefile.in
783 cd igmpproxy && CFLAGS="-O2 -Wall $(EXTRACFLAGS)" \
784 $(CONFIGURE) --prefix=/usr
786 igmpproxy: igmpproxy/src/Makefile
787 @$(SEP)
788 @$(MAKE) -C igmpproxy/src
790 igmpproxy-install:
791 install -D igmpproxy/src/igmpproxy $(INSTALLDIR)/igmpproxy/usr/sbin/igmpproxy
792 $(STRIP) $(INSTALLDIR)/igmpproxy/usr/sbin/igmpproxy
794 igmpproxy-clean:
795 $(MAKE) -C igmpproxy/src clean
796 rm -f igmpproxy/src/Makefile
798 udev:
799 $(MAKE) -C $@ CROSS_COMPILE=$(CROSS_COMPILE) EXTRACFLAGS="$(EXTRACFLAGS)" \
800 PROGRAMS=udevtrigger
802 udev-install:
803 install -d $(INSTALLDIR)
804 install -d $(TARGETDIR)
805 $(MAKE) -C udev DESTDIR=$(INSTALLDIR) prefix=/udev install-udevtrigger
807 hotplug2:
808 $(MAKE) -C $@ CROSS_COMPILE=$(CROSS_COMPILE) EXTRACFLAGS="$(EXTRA_CFLAGS)"
810 hotplug2-install:
811 $(MAKE) -C hotplug2 install PREFIX=$(INSTALLDIR)/hotplug2 SUBDIRS=""
812 $(MAKE) -C hotplug2/examples install PREFIX=$(INSTALLDIR)/hotplug2/rom KERNELVER=$(LINUX_KERNEL)
814 emf:
815 $(MAKE) -C $(SRCBASE)/emf/emfconf CROSS=$(CROSS_COMPILE) EXTRACFLAGS="$(EXTRACFLAGS)"
817 emf-install:
818 $(MAKE) -C $(SRCBASE)/emf/emfconf INSTALLDIR=$(INSTALLDIR) install
820 igs:
821 $(MAKE) -C $(SRCBASE)/emf/igsconf CROSS=$(CROSS_COMPILE) EXTRACFLAGS="$(EXTRACFLAGS)"
823 igs-install:
824 $(MAKE) -C $(SRCBASE)/emf/igsconf INSTALLDIR=$(INSTALLDIR) install
827 ebtables: dummy
828 @make -C ebtables
830 ebtables-install: dummy
831 install -D ebtables/ebtables $(INSTALLDIR)/ebtables/usr/sbin/ebtables
833 mkdir -p $(INSTALLDIR)/ebtables/usr/lib/
834 cp ebtables/*.so $(INSTALLDIR)/ebtables/usr/lib/
835 cp ebtables/extensions/*.so $(INSTALLDIR)/ebtables/usr/lib/
837 ebtables-clean:
838 make -C ebtables clean
841 lzo-install:
842 install -D lzo/src/.libs/liblzo2.so $(INSTALLDIR)/lzo/usr/lib/liblzo2.so.2
843 $(STRIP) $(INSTALLDIR)/lzo/usr/lib/liblzo2.so.2
844 cd $(INSTALLDIR)/lzo/usr/lib && ln -sf liblzo2.so.2 liblzo2.so
847 openvpn-install:
848 install -D openvpn/openvpn $(INSTALLDIR)/openvpn/usr/sbin/openvpn
849 $(STRIP) $(INSTALLDIR)/openvpn/usr/sbin/openvpn
850 chmod 0500 $(INSTALLDIR)/openvpn/usr/sbin/openvpn
854 # Generic rules
858 @[ ! -d $* ] || ( $(SEP); $(MAKE) -C $* )
861 %-clean:
862 @-[ ! -d $* ] || $(MAKE) -C $* clean
864 %-install:
865 @[ ! -d $* ] || $(MAKE) -C $* install INSTALLDIR=$(INSTALLDIR)/$*
867 %-build:
868 $(MAKE) $*-clean $*
870 $(obj-y) $(obj-n) $(obj-clean) $(obj-install): dummy
872 .PHONY: all clean distclean mrproper install package
873 .PHONY: conf mconf oldconf kconf kmconf config menuconfig oldconfig
874 .PHONY: dummy libnet libpcap