rp-l2tp patches from wl500g.googlecode.com project
[tomato.git] / release / src / router / Makefile
blobe4c0dd7c242dd225e4050be0acd0e06c5d521e28
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
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 ($(TCONFIG_SAMBASRV),y)
65 ifeq ($(TCONFIG_SAMBA3),y)
66 NEED_SAMBA3 = y
67 else
68 NEED_SAMBA2 = y
69 endif
70 endif
71 obj-$(NEED_SAMBA2) += samba
72 obj-$(NEED_SAMBA3) += samba3
73 obj-$(TCONFIG_NTFS) += ntfs-3g
75 obj-y += miniupnpd
76 # obj-y += upnp
80 # configurable packages
82 obj-$(TCONFIG_L2TP) += rp-l2tp
83 obj-$(TCONFIG_PPTP) += pptp-client
84 obj-$(TCONFIG_HTTPS) += openssl
85 obj-$(TCONFIG_HTTPS) += matrixssl
86 obj-$(TCONFIG_SSH) += dropbear
87 obj-$(TCONFIG_ZEBRA) += zebra
88 # obj-$(TCONFIG_IPP2P) += ipp2p
89 obj-$(TCONFIG_LZO) += lzo
90 obj-$(TCONFIG_OPENVPN) += openvpn
92 ifeq ($(TCONFIG_L2TP),y)
93 NEED_PPPD = y
94 endif
95 ifeq ($(TCONFIG_PPTP),y)
96 NEED_PPPD = y
97 endif
98 obj-$(NEED_PPPD) += pppd
100 obj-$(CONFIG_LINUX26) += hotplug2
101 obj-$(CONFIG_LINUX26) += udev
102 obj-$(__CONFIG_BCMWL5) += emf
103 obj-$(__CONFIG_BCMWL5) += igs
105 obj-clean := $(foreach obj, $(obj-y) $(obj-n) $(obj-), $(obj)-clean)
106 obj-install := $(foreach obj,$(obj-y),$(obj)-install)
111 # Basic rules
114 all: clean-build libc $(obj-y) kernel
117 kernel: $(LINUXDIR)/.config
118 @$(SEP)
120 @if ! grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \
121 $(MAKE) -C $(LINUXDIR) zImage CC=$(KERNELCC); \
123 if grep -q "CONFIG_MODULES=y" $(LINUXDIR)/.config ; then \
124 $(MAKE) -C $(LINUXDIR) modules CC=$(KERNELCC); \
126 ifeq ($(CONFIG_LINUX26),y)
127 $(MAKE) -C $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed srctree=$(LINUXDIR)
128 endif
131 lzma-loader:
132 $(MAKE) -C $(SRCBASE)/lzma-loader CROSS_COMPILE=$(CROSS_COMPILE) LD=$(LD)
134 lzma-loader-install: lzma-loader
135 @$(SEP)
138 kmod: dummy
139 $(MAKE) -C $(LINUXDIR) modules
141 testfind:
142 cd $(TARGETDIR)/lib/modules/* && find -name "*.o" -exec mv -i {} . \; || true
143 cd $(TARGETDIR)/lib/modules/* && find -type d -delete || true
145 install package: $(obj-install) $(LINUXDIR)/.config
146 @$(SEP)
148 install -d $(TARGETDIR)
151 # kernel modules
152 $(MAKE) -C $(LINUXDIR) modules_install DEPMOD=/bin/true INSTALL_MOD_PATH=$(TARGETDIR)
153 ##!!TB find $(TARGETDIR)/lib/modules -name *.o -exec mipsel-linux-strip --strip-unneeded {} \;
154 find $(TARGETDIR)/lib/modules -name *.o -exec $(STRIP) --strip-debug {} \;
155 find $(TARGETDIR)/lib/modules -name *.ko -exec $(STRIP) --strip-debug {} \;
157 -cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv diag/* . && rm -rf diag
159 # nice and clean
160 -cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv et.4702/* . && rm -rf et.4702 || true
161 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv et/* . && rm -rf et
162 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv wl/* . && rm -rf wl
163 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv cifs/* . && rm -rf cifs
164 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv jffs2/* . && rm -rf jffs2 || true
165 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv jffs/* . && rm -rf jffs || true
166 cd $(TARGETDIR)/lib/modules/*/kernel/lib && mv zlib_inflate/* . && rm -rf zlib_inflate || true
167 cd $(TARGETDIR)/lib/modules/*/kernel/lib && mv zlib_deflate/* . && rm -rf zlib_deflate || true
168 cd $(TARGETDIR)/lib/modules/*/kernel/lib && mv lzo/* . && rm -rf lzo || true
169 rm -rf $(TARGETDIR)/lib/modules/*/pcmcia
171 ##!!TB
172 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv ext2/* . && rm -rf ext2 || true
173 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv ext3/* . && rm -rf ext3 || true
174 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv jbd/* . && rm -rf jbd || true
175 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv fat/* . && rm -rf fat || true
176 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv vfat/* . && rm -rf vfat || true
177 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv msdos/* . && rm -rf msdos || true
178 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv fuse/* . && rm -rf fuse || true
179 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv ntfs/* . && rm -rf ntfs || true
180 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv smbfs/* . && rm -rf smbfs || true
181 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv reiserfs/* . && rm -rf reiserfs || true
182 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv hfsplus/* . && rm -rf hfsplus || true
183 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv lockd/* . && rm -rf lockd || true
184 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv nfsd/* . && rm -rf nfsd || true
185 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv nfs/* . && rm -rf nfs || true
186 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv xfs/* . && rm -rf xfs || true
187 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv nls/* . && rm -rf nls || true
188 cd $(TARGETDIR)/lib/modules/*/kernel/fs && mv exportfs/* . && rm -rf exportfs || true
189 cd $(TARGETDIR)/lib/modules/*/kernel/net && mv sunrpc/* . && rm -rf sunrpc || true
190 cd $(TARGETDIR)/lib/modules/*/kernel/net && mv auth_gss/* . && rm -rf auth_gss || true
191 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv hcd/* . && rm -rf hcd || true
192 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv host/* . && rm -rf host || true
193 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv storage/* . && rm -rf storage || true
194 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv serial/* . && rm -rf serial || true
195 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv core/* . && rm -rf core || true
196 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv class/* . && rm -rf class || true
197 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/usb && mv misc/* . && rm -rf misc || true
198 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/media && mv video/* . && rm -rf video || true
200 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv bcm57xx/* . && rm -rf bcm57xx || true
201 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv emf/* . && rm -rf emf || true
202 cd $(TARGETDIR)/lib/modules/*/kernel/drivers/net && mv igs/* . && rm -rf igs || true
203 cd $(TARGETDIR)/lib/modules && rm -f */source || true
205 # misc
206 for dir in $(wildcard $(patsubst %,$(INSTALLDIR)/%,$(obj-y))) ; do \
207 (cd $${dir} && tar cpf - .) | (cd $(TARGETDIR) && tar xpf -) \
208 done
210 ifneq ($(TCONFIG_JFFS2),y)
211 rm -f $(TARGETDIR)/lib/modules/*/kernel/fs/jffs2.*o || true
212 rm -f $(TARGETDIR)/lib/modules/*/kernel/fs/jffs.*o || true
213 ifneq ($(CONFIG_LINUX26),y)
214 rm -rf $(TARGETDIR)/lib/modules/*/kernel/lib/zlib_* || true
215 endif
216 endif
218 ifneq ($(TCONFIG_CIFS),y)
219 rm -f $(TARGETDIR)/lib/modules/*/kernel/fs/cifs.*o
220 endif
222 ifneq ($(TCONFIG_L7),y)
223 rm -f $(TARGETDIR)/lib/modules/*/kernel/net/ipv4/netfilter/ipt_layer7.*o
224 rm -f $(TARGETDIR)/usr/lib/iptables/libipt_layer7.so
225 endif
227 # uClibc
228 install $(LIBDIR)/ld-uClibc.so.0 $(TARGETDIR)/lib/
229 install $(LIBDIR)/libcrypt.so.0 $(TARGETDIR)/lib/
230 install $(LIBDIR)/libpthread.so.0 $(TARGETDIR)/lib/
231 install $(LIBDIR)/libgcc_s.so.1 $(TARGETDIR)/lib/
232 $(STRIP) $(TARGETDIR)/lib/libgcc_s.so.1
233 install $(LIBDIR)/libc.so.0 $(TARGETDIR)/lib/
234 install $(LIBDIR)/libdl.so.0 $(TARGETDIR)/lib/
235 install $(LIBDIR)/libm.so.0 $(TARGETDIR)/lib/
236 install $(LIBDIR)/libnsl.so.0 $(TARGETDIR)/lib/
237 ifeq ($(TCONFIG_SSH),y)
238 install $(LIBDIR)/libutil.so.0 $(TARGETDIR)/lib/
239 endif
241 @cd $(TARGETDIR) && $(TOP)/others/rootprep.sh
243 @echo ---
245 @../btools/libfoo.pl
246 @chmod 0555 $(TARGETDIR)/lib/*.so*
247 @chmod 0555 $(TARGETDIR)/usr/lib/*.so*
249 # !!TB - moved to run after libfoo.pl - to make sure shared libs include all symbols needed by extras
250 # separated extra stuff
251 @rm -rf $(PLATFORMDIR)/extras
252 @mkdir $(PLATFORMDIR)/extras
253 @mv $(TARGETDIR)/lib/modules/*/kernel/net/ipv4/ip_gre.*o $(PLATFORMDIR)/extras/ || true
254 ifneq ($(TCONFIG_OPENVPN),y)
255 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/tun.*o $(PLATFORMDIR)/extras/ || true
256 endif
258 #!!TB
259 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/ntfs.*o $(PLATFORMDIR)/extras/ || true
260 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/smbfs.*o $(PLATFORMDIR)/extras/ || true
261 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/reiserfs.*o $(PLATFORMDIR)/extras/ || true
262 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/hfsplus.*o $(PLATFORMDIR)/extras/ || true
263 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nfs.*o $(PLATFORMDIR)/extras/ || true
264 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nfsd.*o $(PLATFORMDIR)/extras/ || true
265 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/lockd.*o $(PLATFORMDIR)/extras/ || true
266 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/exportfs.*o $(PLATFORMDIR)/extras/ || true
267 @mv $(TARGETDIR)/lib/modules/*/kernel/net/sunrpc.*o $(PLATFORMDIR)/extras/ || true
268 @mv $(TARGETDIR)/lib/modules/*/kernel/net/auth_rpcgss.*o $(PLATFORMDIR)/extras/ || true
269 @mv $(TARGETDIR)/lib/modules/*/kernel/net/rpcsec_gss_krb5.*o $(PLATFORMDIR)/extras/ || true
270 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/xfs.*o $(PLATFORMDIR)/extras/ || true
271 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/scanner.*o $(PLATFORMDIR)/extras/ || true
272 ifneq ($(CONFIG_LINUX26),y)
273 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/usbserial.*o $(PLATFORMDIR)/extras/ || true
274 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/option.*o $(PLATFORMDIR)/extras/ || true
275 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/sierra.*o $(PLATFORMDIR)/extras/ || true
276 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/*acm.*o $(PLATFORMDIR)/extras/ || true
277 endif
278 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/ftdi_sio.*o $(PLATFORMDIR)/extras/ || true
279 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/pl2303.*o $(PLATFORMDIR)/extras/ || true
280 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/ipw.*o $(PLATFORMDIR)/extras/ || true
281 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/audio.*o $(PLATFORMDIR)/extras/ || true
282 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/ov51*.*o $(PLATFORMDIR)/extras/ || true
283 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/pwc*.*o $(PLATFORMDIR)/extras/ || true
284 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/emi*.*o $(PLATFORMDIR)/extras/ || true
285 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/media/* $(PLATFORMDIR)/extras/ || true
286 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/media || true
287 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/sound/* $(PLATFORMDIR)/extras/ || true
288 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/sound || true
289 @mv $(TARGETDIR)/lib/modules/*/kernel/sound/* $(PLATFORMDIR)/extras/ || true
290 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/sound || true
292 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/pptp.*o $(PLATFORMDIR)/extras/ || true
293 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/pppol2tp.*o $(PLATFORMDIR)/extras/ || true
294 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/ppp_mppe*.*o $(PLATFORMDIR)/extras/ || true
295 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/net/ppp_deflate.*o $(PLATFORMDIR)/extras/ || true
296 @mkdir -p $(PLATFORMDIR)/extras/crypto
297 @mv $(TARGETDIR)/lib/modules/*/kernel/crypto/* $(PLATFORMDIR)/extras/crypto/ || true
298 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/crypto || true
299 ifneq ($(CONFIG_LINUX26),y)
300 @mv $(TARGETDIR)/lib/modules/*/kernel/lib/* $(PLATFORMDIR)/extras/ || true
301 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/lib || true
302 endif
303 ifneq ($(TCONFIG_SAMBASRV),y)
304 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_*.*o $(PLATFORMDIR)/extras/ || true
305 endif
306 ifneq ($(CONFIG_LINUX26),y)
307 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_cp9*.*o $(PLATFORMDIR)/extras/ || true
308 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_cp1251.*o $(PLATFORMDIR)/extras/ || true
309 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_euc-jp.*o $(PLATFORMDIR)/extras/ || true
310 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_sjis.*o $(PLATFORMDIR)/extras/ || true
311 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_gb2312.*o $(PLATFORMDIR)/extras/ || true
312 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_euc-kr.*o $(PLATFORMDIR)/extras/ || true
313 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/nls_big5.*o $(PLATFORMDIR)/extras/ || true
314 endif
315 ifneq ($(TCONFIG_USB),y)
316 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/usb/*.*o $(PLATFORMDIR)/extras/ || true
317 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/usb || true
318 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/scsi/*.*o $(PLATFORMDIR)/extras/ || true
319 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/scsi || true
320 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/ext2.*o $(PLATFORMDIR)/extras/ || true
321 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/ext3.*o $(PLATFORMDIR)/extras/ || true
322 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/jbd.*o $(PLATFORMDIR)/extras/ || true
323 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/fat.*o $(PLATFORMDIR)/extras/ || true
324 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/vfat.*o $(PLATFORMDIR)/extras/ || true
325 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/msdos.*o $(PLATFORMDIR)/extras/ || true
326 @mv $(TARGETDIR)/lib/modules/*/kernel/fs/fuse.*o $(PLATFORMDIR)/extras/ || true
327 endif
328 ifneq ($(TCONFIG_USB_EXTRAS),y)
329 @mv $(TARGETDIR)/lib/modules/*/kernel/drivers/block/loop.*o $(PLATFORMDIR)/extras/ || true
330 @rm -rf $(TARGETDIR)/lib/modules/*/kernel/drivers/block || true
331 endif
333 ifneq ($(CONFIG_LINUX26),y)
334 @mkdir -p $(PLATFORMDIR)/extras/lib
335 @mv $(TARGETDIR)/usr/lib/libusb* $(PLATFORMDIR)/extras/lib/ || true
336 @mkdir -p $(PLATFORMDIR)/extras/apps
337 @mv $(TARGETDIR)/usr/sbin/usb_modeswitch $(PLATFORMDIR)/extras/apps/ || true
338 @cp usbmodeswitch/usb_modeswitch.conf $(PLATFORMDIR)/extras/apps/usb_modeswitch.conf || true
339 endif
341 @mkdir -p $(TARGETDIR)/rom/etc/l7-protocols
342 ifeq ($(TCONFIG_L7PAT),y)
343 @cd layer7 && ./squish.sh
344 cp layer7/squished/*.pat $(TARGETDIR)/rom/etc/l7-protocols
345 endif
347 busybox/examples/depmod.pl -k $(LINUXDIR)/vmlinux -b $(TARGETDIR)/lib/modules/*/
348 @mv $(TARGETDIR)/lib/modules/*/modules.dep $(TARGETDIR)/lib/modules/
349 @echo ---
351 @rm -f $(TARGETDIR)/lib/modules/*/build
353 @$(MAKE) -C $(LINUXDIR)/scripts/squashfs mksquashfs-lzma
354 @$(LINUXDIR)/scripts/squashfs/mksquashfs-lzma $(TARGETDIR) $(PLATFORMDIR)/target.image -all-root -noappend -nopad | tee target.info
356 # Package kernel and filesystem
357 # if grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \
358 # cp $(PLATFORMDIR)/target.image $(LINUXDIR)/arch/mips/ramdisk/$${CONFIG_EMBEDDED_RAMDISK_IMAGE} ; \
359 # $(MAKE) -C $(LINUXDIR) zImage ; \
360 # else \
361 # cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz $(PLATFORMDIR)/ ; \
362 # trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.image ; \
363 # fi
365 # Pad self-booting Linux to a 64 KB boundary
366 # cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/zImage $(PLATFORMDIR)/
367 # dd conv=sync bs=64k < $(PLATFORMDIR)/zImage > $(PLATFORMDIR)/linux.bin
368 # Append filesystem to self-booting Linux
369 # cat $(PLATFORMDIR)/target.image >> $(PLATFORMDIR)/linux.bin
372 libc: $(LIBDIR)/ld-uClibc.so.0
373 # $(MAKE) -C ../../../tools-src/uClibc all
374 # $(MAKE) -C ../../../tools-src/uClibc install
378 # cleaners
381 clean: clean-build $(obj-clean)
382 rm -rf layer7/squished
383 make -C config clean
385 clean-build: dummy
386 rm -rf $(TARGETDIR)
387 rm -rf $(INSTALLDIR)
388 rm -f $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.image
389 rm -rf $(PLATFORMDIR)/extras
391 distclean: clean
392 ifneq ($(INSIDE_MAK),1)
393 $(MAKE) -C .. $@ INSIDE_MAK=1
394 endif
395 -rm -f $(LIBDIR)/*.so.0 $(LIBDIR)/*.so
398 # configuration
401 CONFIG_IN := config/config.in
403 config/conf config/mconf:
404 @$(MAKE) -C config
406 rconf: config/conf
407 @config/conf $(CONFIG_IN)
409 rmconf: config/mconf
410 @config/mconf $(CONFIG_IN)
412 roldconf: config/conf
413 @config/conf -o $(CONFIG_IN)
415 kconf:
416 @$(MAKE) -C $(LINUXDIR) config
418 kmconf:
419 @$(MAKE) -C $(LINUXDIR) menuconfig
421 koldconf:
422 @$(MAKE) -C $(LINUXDIR) oldconfig
423 @$(MAKE) -C $(LINUXDIR) include/linux/version.h
425 bboldconf:
426 @$(MAKE) -C busybox oldconfig
428 config conf: rconf kconf
430 menuconfig mconf: rmconf kmconf
432 oldconfig oldconf: koldconf roldconf bboldconf
436 # overrides and extra dependencies
439 busybox: dummy
440 @$(MAKE) -C busybox CFLAGS_busybox="$(EXTRACFLAGS)"
442 # V=1
444 busybox-install:
445 rm -rf $(INSTALLDIR)/busybox
446 $(MAKE) -C busybox install CONFIG_PREFIX=$(INSTALLDIR)/busybox
448 busybox-clean:
449 $(MAKE) -C busybox distclean
451 busybox-config:
452 $(MAKE) -C busybox menuconfig
455 httpd: matrixssl shared nvram mssl
456 @$(SEP)
457 @$(MAKE) -C httpd
459 www-install:
460 @$(MAKE) -C www install INSTALLDIR=$(INSTALLDIR)/www TOMATO_EXPERIMENTAL=$(TOMATO_EXPERIMENTAL)
462 matrixssl:
463 @$(SEP)
464 @$(MAKE) -C matrixssl/src
466 matrixssl-install:
467 @true
469 matrixssl-clean:
470 $(MAKE) -C matrixssl/src clean
472 openssl-config:
473 ifeq ($(TCONFIG_OPENVPN),y)
474 cd openssl && \
475 CC=$(CC) && ./Configure linux-mipsel
476 else
477 cd openssl && \
478 CC=$(CC) && ./Configure linux-mipsel no-aes no-idea no-md2 no-mdc2 no-rc5
479 endif
480 @$(MAKE) -C openssl clean
482 openssl: openssl-config
484 openssl-install:
485 install -D openssl/libcrypto.so $(INSTALLDIR)/openssl/usr/lib/libcrypto.so
486 $(STRIP) $(INSTALLDIR)/openssl/usr/lib/libcrypto.so
488 install -D openssl/apps/openssl $(INSTALLDIR)/openssl/usr/sbin/openssl
489 $(STRIP) $(INSTALLDIR)/openssl/usr/sbin/openssl
490 chmod 0500 $(INSTALLDIR)/openssl/usr/sbin/openssl
492 install -D -m 0500 httpd/gencert.sh $(INSTALLDIR)/openssl/usr/sbin/gencert.sh
494 # perl -e 'while (<>) { s/.SECS/time()-(24*60*60)/e; print; }' < httpd/gencert.sh > $(INSTALLDIR)/openssl/usr/sbin/gencert.sh
495 # chmod 0500 $(INSTALLDIR)/openssl/usr/sbin/gencert.sh
497 ifeq ($(TCONFIG_FTP_SSL),y)
498 # !!TB
499 install -D openssl/libssl.so $(INSTALLDIR)/openssl/usr/lib/libssl.so
500 $(STRIP) $(INSTALLDIR)/openssl/usr/lib/libssl.so
501 endif
503 ifeq ($(TCONFIG_OPENVPN),y)
504 install -D openssl/libssl.so $(INSTALLDIR)/openssl/usr/lib/libssl.so
505 $(STRIP) $(INSTALLDIR)/openssl/usr/lib/libssl.so
506 endif
508 mssl: matrixssl
510 mdu: shared mssl
512 rc: nvram shared
514 bridge/Makefile:
515 cd bridge && CFLAGS="-Os -g $(EXTRACFLAGS)" \
516 $(CONFIGURE) --host=mipsel-linux --prefix="" --with-linux-headers=$(LINUXDIR)/include
518 bridge: bridge/Makefile
519 @$(SEP)
520 @$(MAKE) -C bridge
522 bridge-clean:
523 @$(MAKE) -C bridge clean || true
524 @rm -f bridge/Makefile
526 bridge-install:
527 install -D bridge/brctl/brctl $(INSTALLDIR)/bridge/usr/sbin/brctl
528 $(STRIP) $(INSTALLDIR)/bridge/usr/sbin/brctl
530 dnsmasq:
531 @$(SEP)
532 @$(MAKE) -C dnsmasq COPTS="-DNO_IPV6 -DNO_SCRIPT $(EXTRACFLAGS)"
534 dnsmasq-install:
535 install -D dnsmasq/src/dnsmasq $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq
536 $(STRIP) $(INSTALLDIR)/dnsmasq/usr/sbin/dnsmasq
538 iptables:
539 @$(SEP)
540 $(MAKE) -C iptables BINDIR=/usr/sbin LIBDIR=/usr/lib KERNEL_DIR=$(LINUXDIR) COPT_FLAGS="-Os $(EXTRACFLAGS)"
542 iptables-install:
543 install -D iptables/iptables $(INSTALLDIR)/iptables/usr/sbin/iptables
544 cd $(INSTALLDIR)/iptables/usr/sbin && \
545 ln -sf iptables iptables-restore
547 install -d $(INSTALLDIR)/iptables/usr/lib/iptables
548 install -D iptables/extensions/*.so $(INSTALLDIR)/iptables/usr/lib/iptables/
550 install -D iptables/libiptc.so $(INSTALLDIR)/iptables/usr/lib/libiptc.so
552 $(STRIP) $(INSTALLDIR)/iptables/usr/sbin/iptables
553 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/iptables/*.so
554 $(STRIP) $(INSTALLDIR)/iptables/usr/lib/libiptc.so
556 iptables-clean:
557 -$(MAKE) -C iptables KERNEL_DIR=$(LINUXDIR) clean
559 ppp:
560 @$(SEP)
561 $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp
562 # $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp DFLAGS="-DDEBUG -DDEBUGALL"
564 ppp-%:
565 $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp
568 upnp: nvram shared iptables
570 miniupnpd: iptables
571 @$(SEP)
572 $(MAKE) -C miniupnpd -f Makefile.tomato
574 miniupnpd-clean:
575 -$(MAKE) -C miniupnpd -f Makefile.tomato clean
577 miniupnpd-install:
578 install -D miniupnpd/miniupnpd $(INSTALLDIR)/miniupnpd/usr/sbin/miniupnpd
579 $(STRIP) $(INSTALLDIR)/miniupnpd/usr/sbin/miniupnpd
581 # !!TB
582 shared: busybox
584 vsftpd: shared openssl
585 @$(SEP)
586 $(MAKE) -C vsftpd
588 vsftpd-install:
589 install -D vsftpd/vsftpd $(INSTALLDIR)/vsftpd/usr/sbin/vsftpd
590 $(STRIP) -s $(INSTALLDIR)/vsftpd/usr/sbin/vsftpd
592 ntfs-3g/Makefile:
593 cd ntfs-3g && \
594 CC=$(CC) CFLAGS="-Os $(EXTRACFLAGS)" $(CONFIGURE) --host=mipsel-linux --enable-shared=no --enable-static=no \
595 --disable-library --disable-ldconfig --disable-mount-helper --with-fuse=internal \
596 --disable-posix-acls --disable-nfconv --disable-dependency-tracking
598 ntfs-3g: ntfs-3g/Makefile
599 @$(MAKE) -C ntfs-3g CFLAGS="-Os -Wall $(EXTRACFLAGS)"
601 ntfs-3g-clean:
602 @$(MAKE) -C ntfs-3g clean || true
604 ntfs-3g-install: ntfs-3g
605 install -D ntfs-3g/src/ntfs-3g $(INSTALLDIR)/ntfs-3g/bin/ntfs-3g
606 $(STRIP) -s $(INSTALLDIR)/ntfs-3g/bin/ntfs-3g
607 install -d $(INSTALLDIR)/ntfs-3g/sbin && cd $(INSTALLDIR)/ntfs-3g/sbin && \
608 ln -sf ../bin/ntfs-3g mount.ntfs-3g && \
609 ln -sf ../bin/ntfs-3g mount.ntfs
611 libusb10/Makefile: libusb10/Makefile.in
612 cd libusb10 && CFLAGS="-Os -Wall $(EXTRACFLAGS)" LIBS="-lpthread" \
613 $(CONFIGURE) --host=mipsel-linux --prefix=/usr ac_cv_lib_rt_clock_gettime=no
615 libusb10: libusb10/Makefile
616 $(MAKE) -C $@
618 libusb10-install: libusb10
619 install -D libusb10/libusb/.libs/libusb-1.0.so.0.0.0 $(INSTALLDIR)/libusb10/usr/lib/libusb-1.0.so.0
620 $(STRIP) $(INSTALLDIR)/libusb10/usr/lib/*.so.*
621 cd $(INSTALLDIR)/libusb10/usr/lib && \
622 ln -sf libusb-1.0.so.0 libusb-1.0.so.0.0.0 && \
623 ln -sf libusb-1.0.so.0 libusb-1.0.so
625 libusb/Makefile: libusb/Makefile.in
626 cd libusb && CFLAGS="-Wall -Os $(EXTRACFLAGS)" \
627 $(CONFIGURE) --host=mipsel-linux --prefix=/usr \
628 LIBUSB_1_0_CFLAGS="-I$(TOP)/libusb10/libusb" \
629 LIBUSB_1_0_LIBS="-L$(TOP)/libusb10/libusb/.libs -lusb-1.0 -lpthread \
630 -Wl,-R/lib:/usr/lib:/opt/usr/lib:/usr/local/share"
632 libusb: libusb10 libusb/Makefile
633 $(MAKE) -C $@
635 libusb-install: libusb
636 install -D libusb/libusb/.libs/libusb-0.1.so.4.4.4 $(INSTALLDIR)/libusb/usr/lib/libusb-0.1.so.4
637 $(STRIP) $(INSTALLDIR)/libusb/usr/lib/*.so.*
638 cd $(INSTALLDIR)/libusb/usr/lib && \
639 ln -sf libusb-0.1.so.4 libusb-0.1.so.4.4.4 && \
640 ln -sf libusb-0.1.so.4 libusb.so
642 usbmodeswitch: libusb
643 $(MAKE) -C $@ CC=$(CC) CCFLAGS="-Wall -Os $(EXTRACFLAGS) \
644 -Wl,-R/lib:/usr/lib:/opt/usr/lib:/usr/local/share \
645 -I$(TOP)/libusb10/libusb -L$(TOP)/libusb10/libusb/.libs -lusb-1.0 \
646 -I$(TOP)/libusb/libusb -L$(TOP)/libusb/libusb/.libs -lusb -lpthread"
648 usbmodeswitch-install:
649 install -D usbmodeswitch/usb_modeswitch $(INSTALLDIR)/usbmodeswitch/usr/sbin/usb_modeswitch
650 $(STRIP) -s $(INSTALLDIR)/usbmodeswitch/usr/sbin/usb_modeswitch
652 p910nd:
653 sendmail:
654 samba:
655 samba3:
657 nvram: shared
659 prebuilt: shared
661 vlan:
662 @$(SEP)
663 @$(MAKE) -C vlan CROSS=$(CROSS_COMPILE) # STRIPTOOL=$(STRIP)
665 vlan-install:
666 $(MAKE) -C vlan CROSS=$(CROSS_COMPILE) INSTALLDIR=$(INSTALLDIR) install # STRIPTOOL=$(STRIP)
667 $(STRIP) $(INSTALLDIR)/vlan/usr/sbin/vconfig
670 pptp-client-install:
671 install -D pptp-client/pptp $(INSTALLDIR)/pptp-client/usr/sbin/pptp
672 $(STRIP) $(INSTALLDIR)/pptp-client/usr/sbin/pptp
675 pppd:
676 @$(SEP)
677 @$(MAKE) -C pppd/pppd
679 pppd-clean:
680 $(MAKE) -C pppd/pppd clean
682 pppd-install:
683 install -D pppd/pppd/pppd $(INSTALLDIR)/pppd/usr/sbin/pppd
684 $(STRIP) $(INSTALLDIR)/pppd/usr/sbin/pppd
686 # ipupdate-install:
687 # install -D ipupdate/ez-ipupdate $(INSTALLDIR)/ipupdate/usr/sbin/ez-ipupdate
688 # $(STRIP) $(INSTALLDIR)/ipupdate/usr/sbin/ez-ipupdate
691 zebra:
692 @$(SEP)
693 cd zebra && rm -f config.cache && CC=$(CC) AR=$(AR) RANLIB=$(RANLIB) LD=$(LD) CFLAGS="-Os -Wall $(EXTRACFLAGS)" $(CONFIGURE) \
694 --host=mipsel-linux --sysconfdir=/etc \
695 --enable-netlink --disable-ipv6 --disable-ripngd --disable-ospfd --disable-doc \
696 --disable-ospf6d --disable-bgpd --disable-bgpd-announce
697 @$(MAKE) -C zebra CC=$(CC) AR=$(AR) RANLIB=$(RANLIB) LD=$(LD)
699 zebra-install:
700 install -D zebra/zebra/zebra $(INSTALLDIR)/zebra/usr/sbin/zebra
701 install -D zebra/ripd/ripd $(INSTALLDIR)/zebra/usr/sbin/ripd
702 install -D zebra/lib/libzebra.so $(INSTALLDIR)/zebra/usr/lib/libzebra.so
703 $(STRIP) $(INSTALLDIR)/zebra/usr/sbin/zebra
704 $(STRIP) $(INSTALLDIR)/zebra/usr/sbin/ripd
705 $(STRIP) $(INSTALLDIR)/zebra/usr/lib/libzebra.so
708 rp-l2tp-install:
709 install -d $(INSTALLDIR)/rp-l2tp/usr/lib/l2tp
710 install rp-l2tp/handlers/*.so $(INSTALLDIR)/rp-l2tp/usr/lib/l2tp
711 $(STRIP) $(INSTALLDIR)/rp-l2tp/usr/lib/l2tp/*.so
712 install -D rp-l2tp/handlers/l2tp-control $(INSTALLDIR)/rp-l2tp/usr/sbin/l2tp-control
713 $(STRIP) $(INSTALLDIR)/rp-l2tp/usr/sbin/l2tp-control
714 install -D rp-l2tp/l2tpd $(INSTALLDIR)/rp-l2tp/usr/sbin/l2tpd
715 $(STRIP) $(INSTALLDIR)/rp-l2tp/usr/sbin/l2tpd
718 bpalogin-install:
719 install -D bpalogin/bpalogin $(INSTALLDIR)/bpalogin/usr/sbin/bpalogin
720 $(STRIP) $(INSTALLDIR)/bpalogin/usr/sbin/bpalogin
723 # libnet:
724 # @$(SEP)
725 # @-mkdir -p libnet/lib
726 # @$(MAKE) -C libnet CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
728 # libpcap:
729 # @$(SEP)
730 # @$(MAKE) -C libpcap CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
732 libbcm:
733 @[ ! -f libbcm/Makefile ] || $(MAKE) -C libbcm
735 libbcm-install:
736 install -D libbcm/libbcm.so $(INSTALLDIR)/libbcm/usr/lib/libbcm.so
737 $(STRIP) $(INSTALLDIR)/libbcm/usr/lib/libbcm.so
740 iproute2-install:
741 install -D iproute2/tc/tc $(INSTALLDIR)/iproute2/usr/sbin/tc
742 $(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/tc
743 install -D iproute2/ip/ip $(INSTALLDIR)/iproute2/usr/sbin/ip
744 $(STRIP) $(INSTALLDIR)/iproute2/usr/sbin/ip
747 ntpc: nvram shared
750 dropbear: dropbear/config.h
751 @$(SEP)
752 @make -C dropbear PROGRAMS="dropbear dbclient dropbearkey scp" MULTI=1
754 dropbear-install:
755 install -D dropbear/dropbearmulti $(INSTALLDIR)/dropbear/usr/bin/dropbearmulti
756 $(STRIP) $(INSTALLDIR)/dropbear/usr/bin/dropbearmulti
757 cd $(INSTALLDIR)/dropbear/usr/bin && \
758 ln -sf dropbearmulti dropbear && \
759 ln -sf dropbearmulti dropbearconvert && \
760 ln -sf dropbearmulti dropbearkey && \
761 ln -sf dropbearmulti dbclient && \
762 ln -sf dropbearmulti ssh && \
763 ln -sf dropbearmulti scp
765 dropbear-clean:
766 @make -C dropbear clean
768 dropbear/config.h:
769 cd dropbear && CFLAGS="-O2 -Wall $(EXTRACFLAGS)" ac_cv_func_logout=no ac_cv_func_logwtmp=no ./configure --host=mipsel-linux --disable-zlib --enable-syslog --disable-lastlog --disable-utmp --disable-utmpx --disable-wtmp --disable-wtmpx --disable-pututline --disable-pututxline --disable-loginfunc --disable-largefile
770 make -C dropbear clean
772 igmpproxy/src/Makefile: igmpproxy/src/Makefile.in
773 cd igmpproxy && CFLAGS="-O2 -Wall $(EXTRACFLAGS)" \
774 $(CONFIGURE) --prefix=/usr
776 igmpproxy: igmpproxy/src/Makefile
777 @$(SEP)
778 @$(MAKE) -C igmpproxy/src
780 igmpproxy-install:
781 install -D igmpproxy/src/igmpproxy $(INSTALLDIR)/igmpproxy/usr/sbin/igmpproxy
782 $(STRIP) $(INSTALLDIR)/igmpproxy/usr/sbin/igmpproxy
784 igmpproxy-clean:
785 $(MAKE) -C igmpproxy/src clean
786 rm -f igmpproxy/src/Makefile
788 udev:
789 $(MAKE) -C $@ CROSS_COMPILE=$(CROSS_COMPILE) EXTRACFLAGS="$(EXTRA_CFLAGS)" \
790 PROGRAMS=udevtrigger
792 udev-install:
793 install -d $(INSTALLDIR)
794 install -d $(TARGETDIR)
795 $(MAKE) -C udev DESTDIR=$(INSTALLDIR) prefix=/udev install-udevtrigger
796 @mkdir -p $(INSTALLDIR)/udev/rom/etc/udev
797 # remove comments, compress whitespace
798 @sed 's/#.*//g;s/[ \t]\+/ /g;s/^[ \t]*//;s/[ \t]*$$//;/^$$/d' < udev/etc/udev/udev.conf > $(INSTALLDIR)/udev/rom/etc/udev/udev.conf
800 hotplug2:
801 $(MAKE) -C $@ CROSS_COMPILE=$(CROSS_COMPILE) EXTRACFLAGS="$(EXTRA_CFLAGS)"
803 hotplug2-install:
804 $(MAKE) -C hotplug2 install PREFIX=$(INSTALLDIR)/hotplug2 SUBDIRS=""
805 $(MAKE) -C hotplug2/examples install PREFIX=$(INSTALLDIR)/hotplug2/rom KERNELVER=$(LINUX_KERNEL)
807 emf:
808 $(MAKE) -C $(SRCBASE)/emf/emfconf CROSS=$(CROSS_COMPILE) EXTRACFLAGS="$(EXTRACFLAGS)"
810 emf-install:
811 $(MAKE) -C $(SRCBASE)/emf/emfconf INSTALLDIR=$(INSTALLDIR) install
813 igs:
814 $(MAKE) -C $(SRCBASE)/emf/igsconf CROSS=$(CROSS_COMPILE) EXTRACFLAGS="$(EXTRACFLAGS)"
816 igs-install:
817 $(MAKE) -C $(SRCBASE)/emf/igsconf INSTALLDIR=$(INSTALLDIR) install
820 ebtables: dummy
821 @make -C ebtables
823 ebtables-install: dummy
824 install -D ebtables/ebtables $(INSTALLDIR)/ebtables/usr/sbin/ebtables
826 mkdir -p $(INSTALLDIR)/ebtables/usr/lib/
827 cp ebtables/*.so $(INSTALLDIR)/ebtables/usr/lib/
828 cp ebtables/extensions/*.so $(INSTALLDIR)/ebtables/usr/lib/
830 ebtables-clean:
831 make -C ebtables clean
834 lzo-install:
835 install -D lzo/src/.libs/liblzo2.so $(INSTALLDIR)/lzo/usr/lib/liblzo2.so.2
836 $(STRIP) $(INSTALLDIR)/lzo/usr/lib/liblzo2.so.2
837 cd $(INSTALLDIR)/lzo/usr/lib && ln -sf liblzo2.so.2 liblzo2.so
840 openvpn-install:
841 install -D openvpn/openvpn $(INSTALLDIR)/openvpn/usr/sbin/openvpn
842 $(STRIP) $(INSTALLDIR)/openvpn/usr/sbin/openvpn
843 chmod 0500 $(INSTALLDIR)/openvpn/usr/sbin/openvpn
847 # Generic rules
851 @[ ! -d $* ] || ( $(SEP); $(MAKE) -C $* )
854 %-clean:
855 @-[ ! -d $* ] || $(MAKE) -C $* clean
857 %-install:
858 @[ ! -d $* ] || $(MAKE) -C $* install INSTALLDIR=$(INSTALLDIR)/$*
860 %-build:
861 $(MAKE) $*-clean $*
863 $(obj-y) $(obj-n) $(obj-clean) $(obj-install): dummy
865 .PHONY: all clean distclean mrproper install package
866 .PHONY: conf mconf oldconf kconf kmconf config menuconfig oldconfig
867 .PHONY: dummy libnet libpcap