2 # Broadcom Linux Router Makefile
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.
20 ifeq ($(TOMATO_DEV
),jon
)
21 SEP
=echo
-e
"\033[41;1m $@ \033[0m"
50 # obj-y += libbcmcrypto
54 # !!TB - updated Broadcom Wireless driver 4.150.10.X
66 obj-
$(TCONFIG_FTP
) += vsftpd
67 obj-
$(TCONFIG_SAMBASRV
) += samba
68 obj-
$(TCONFIG_USB_EXTRAS
) += mkdosfs
71 ifeq ($(TEST_MINIUPNPD
),1)
74 obj-y
+= miniupnpd
# !!TB
79 # configurable packages
81 obj-
$(TCONFIG_L2TP
) += rp-l2tp
82 obj-
$(TCONFIG_PPTP
) += pptp-client
83 # obj-$(TCONFIG_HEARTBEAT) += bpalogin
84 # obj-$(TCONFIG_DDNS) += ipupdate
85 obj-
$(TCONFIG_HTTPS
) += openssl
86 obj-
$(TCONFIG_HTTPS
) += matrixssl
87 obj-
$(TCONFIG_SSH
) += dropbear
88 obj-
$(TCONFIG_ZEBRA
) += zebra
89 obj-
$(TCONFIG_IPP2P
) += ipp2p
91 ifeq ($(TCONFIG_L2TP
),y
)
94 ifeq ($(TCONFIG_PPTP
),y
)
97 obj-
$(NEED_PPPD
) += pppd
100 obj-clean
:= $(foreach obj
, $(obj-y
) $(obj-n
) $(obj-
), $(obj
)-clean)
101 obj-install
:= $(foreach obj
,$(obj-y
),$(obj
)-install)
109 all: clean-build libc
$(obj-y
) kernel
112 kernel
: $(LINUXDIR
)/.config
115 @if
! grep
-q
"CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR
)/.config
; then \
116 $(MAKE
) -C
$(LINUXDIR
) zImage
; \
118 if grep
-q
"CONFIG_MODULES=y" $(LINUXDIR
)/.config
; then \
119 $(MAKE
) -C
$(LINUXDIR
) modules
; \
124 $(MAKE
) -C
$(LINUXDIR
) modules
129 install package
: $(obj-install
) $(LINUXDIR
)/.config
132 install -d
$(TARGETDIR
)
136 $(MAKE
) -C
$(LINUXDIR
) modules_install DEPMOD
=/bin
/true INSTALL_MOD_PATH
=$(TARGETDIR
)
137 ##!!TB find $(TARGETDIR)/lib/modules -name *.o -exec mipsel-linux-strip --strip-unneeded {} \;
138 ##!!TB - do not strip ftp nat/conntrack, imq, scsi_mod and loop kernel modules (needed to keep parameters)
139 find
$(TARGETDIR
)/lib
/modules
! \
( -name imq.o
-prune \
) ! \
( -name
*ftp.o
-prune \
) ! \
( -name scsi_mod.o
-prune \
) ! \
( -name loop.o
-prune \
) -a
-name
*.o
-exec mipsel-linux-strip
--strip-unneeded
{} \
;
141 -cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/net
&& mv diag
/* .
&& rm -rf diag
144 -cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/net
&& mv et
.4702/* .
&& rm -rf et
.4702 || true
145 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/net
&& mv et
/* .
&& rm -rf et
146 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/net
&& mv wl
/* .
&& rm -rf wl
147 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv cifs
/* .
&& rm -rf cifs
148 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv jffs2
/* .
&& rm -rf jffs2 || true
149 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv jffs
/* .
&& rm -rf jffs || true
150 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/lib
&& mv zlib_inflate
/* .
&& rm -rf zlib_inflate
151 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/lib
&& mv zlib_deflate
/* .
&& rm -rf zlib_deflate
152 rm -rf
$(TARGETDIR
)/lib
/modules
/2.4.20/pcmcia
155 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv ext2
/* .
&& rm -rf ext2 || true
156 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv ext3
/* .
&& rm -rf ext3 || true
157 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv jbd
/* .
&& rm -rf jbd || true
158 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv fat
/* .
&& rm -rf fat || true
159 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv vfat
/* .
&& rm -rf vfat || true
160 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv ntfs
/* .
&& rm -rf ntfs || true
161 ifneq ($(TCONFIG_SAMBASRV
),y
)
162 rm -rf
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
/nls || true
164 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
&& mv nls
/* .
&& rm -rf nls || true
165 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/usb
&& mv hcd
/* .
&& rm -rf hcd || true
166 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/usb
&& mv host
/* .
&& rm -rf host || true
167 cd
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/usb
&& mv storage
/* .
&& rm -rf storage || true
170 for
dir in
$(wildcard $(patsubst %,$(INSTALLDIR
)/%,$(obj-y
))) ; do \
171 (cd
$${dir} && tar cpf
- .
) |
(cd
$(TARGETDIR
) && tar xpf
-) \
174 ifneq ($(TCONFIG_JFFS2
),y
)
175 rm -f
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
/jffs2.o || true
176 rm -f
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
/jffs.o || true
177 rm -rf
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/lib
/zlib_
*
180 ifneq ($(TCONFIG_CIFS
),y
)
181 rm -f
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
/cifs.o
184 ifneq ($(TCONFIG_L7
),y
)
185 rm -f
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/net
/ipv4
/netfilter
/ipt_layer7.o
186 rm -f
$(TARGETDIR
)/usr
/lib
/iptables
/libipt_layer7.so
190 install $(LIBDIR
)/ld-uClibc.so
.0 $(TARGETDIR
)/lib
/
191 install $(LIBDIR
)/libcrypt.so
.0 $(TARGETDIR
)/lib
/
192 install $(LIBDIR
)/libc.so
.0 $(TARGETDIR
)/lib
/
193 install $(LIBDIR
)/libdl.so
.0 $(TARGETDIR
)/lib
/
194 install $(LIBDIR
)/libm.so
.0 $(TARGETDIR
)/lib
/
195 ifeq ($(TCONFIG_SSH
),y
)
196 # libutil is not used when excluding SSH, and libfoo.pl goes into
197 # an infinite loop if it is included. So only include it when using SSH.
198 install $(LIBDIR
)/libutil.so
.0 $(TARGETDIR
)/lib
/
200 install $(LIBDIR
)/libnsl.so
.0 $(TARGETDIR
)/lib
/
202 @cd
$(TARGETDIR
) && $(TOP
)/others
/rootprep.sh
205 busybox
/examples
/depmod.pl
-k
$(LINUXDIR
)/vmlinux
-b
$(TARGETDIR
)/lib
/modules
/2.4.20/
208 @
rm -f
$(TARGETDIR
)/lib
/modules
/2.4.20/build
211 @chmod
0555 $(TARGETDIR
)/lib
/*.so
*
213 # separated extra stuff
214 # !!TB - moved to run after libfoo.pl - to make sure shared libs include all symbols needed by extras
215 @
rm -rf
$(PLATFORMDIR
)/extras
216 @mkdir
$(PLATFORMDIR
)/extras
217 @mv
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/net
/ipv4
/ip_gre.o
$(PLATFORMDIR
)/extras
/
218 @mv
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/net
/tun.o
$(PLATFORMDIR
)/extras
/
220 @mv
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/fs
/ntfs.o
$(PLATFORMDIR
)/extras
/ || true
221 @mv
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/usb
/scanner.o
$(PLATFORMDIR
)/extras
/ || true
222 ifneq ($(TCONFIG_USB_EXTRAS
),y
)
223 @mv
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/block
/loop.o
$(PLATFORMDIR
)/extras
/ || true
224 @
rm -rf
$(TARGETDIR
)/lib
/modules
/2.4.20/kernel
/drivers
/block || true
227 @mkdir
-p
$(TARGETDIR
)/rom
/etc
/l7-protocols
228 ifeq ($(TCONFIG_L7PAT
),y
)
229 @cd layer7
&& .
/squish.sh
230 cp layer7
/squished
/*.pat
$(TARGETDIR
)/rom
/etc
/l7-protocols
233 @
$(MAKE
) -C
$(SRCBASE
)/linux
/linux
/scripts
/squashfs mksquashfs-lzma
234 @
$(SRCBASE
)/linux
/linux
/scripts
/squashfs
/mksquashfs-lzma
$(TARGETDIR
) $(PLATFORMDIR
)/target.image | tee target.
info
236 # Package kernel and filesystem
237 # if grep -q "CONFIG_EMBEDDED_RAMDISK=y" $(LINUXDIR)/.config ; then \
238 # cp $(PLATFORMDIR)/target.image $(LINUXDIR)/arch/mips/ramdisk/$${CONFIG_EMBEDDED_RAMDISK_IMAGE} ; \
239 # $(MAKE) -C $(LINUXDIR) zImage ; \
241 # cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz $(PLATFORMDIR)/ ; \
242 # trx -o $(PLATFORMDIR)/linux.trx $(PLATFORMDIR)/vmlinuz $(PLATFORMDIR)/target.image ; \
245 # Pad self-booting Linux to a 64 KB boundary
246 # cp $(LINUXDIR)/arch/mips/brcm-boards/bcm947xx/compressed/zImage $(PLATFORMDIR)/
247 # dd conv=sync bs=64k < $(PLATFORMDIR)/zImage > $(PLATFORMDIR)/linux.bin
248 # Append filesystem to self-booting Linux
249 # cat $(PLATFORMDIR)/target.image >> $(PLATFORMDIR)/linux.bin
252 libc
: $(LIBDIR
)/ld-uClibc.so
.0
253 $(MAKE
) -C ..
/..
/..
/tools-src
/uClibc
all
254 $(MAKE
) -C ..
/..
/..
/tools-src
/uClibc
install
261 clean: clean-build
$(obj-clean
)
262 rm -rf layer7
/squished
268 rm -f
$(PLATFORMDIR
)/linux.trx
$(PLATFORMDIR
)/vmlinuz
$(PLATFORMDIR
)/target.image
269 rm -rf
$(PLATFORMDIR
)/extras
272 ifneq ($(INSIDE_MAK
),1)
273 $(MAKE
) -C ..
$@ INSIDE_MAK
=1
275 -rm -f
$(LIBDIR
)/*.so
.0 $(LIBDIR
)/*.so
281 CONFIG_IN
:= config
/config.in
283 config
/conf config
/mconf
:
287 @config
/conf
$(CONFIG_IN
)
290 @config
/mconf
$(CONFIG_IN
)
292 roldconf
: config
/conf
293 @config
/conf
-o
$(CONFIG_IN
)
296 @
$(MAKE
) -C
$(LINUXDIR
) config
299 @
$(MAKE
) -C
$(LINUXDIR
) menuconfig
302 @
$(MAKE
) -C
$(LINUXDIR
) oldconfig
304 config conf
: rconf kconf
306 menuconfig mconf
: rmconf kmconf
308 oldconfig oldconf
: roldconf koldconf
312 # overrides and extra dependencies
320 rm -rf
$(INSTALLDIR
)/busybox
321 $(MAKE
) -C busybox
install CONFIG_PREFIX
=$(INSTALLDIR
)/busybox
324 $(MAKE
) -C busybox objsizes CFLAGS
="-Os"
327 # busybox: busybox/include/bb_config.h
328 # @$(MAKE) -C busybox CROSS_CFLAGS="-mips2"
329 # busybox/include/bb_config.h:
330 # @$(MAKE) -C busybox oldconfig
331 # @$(MAKE) -C busybox clean
333 # rm -rf $(INSTALLDIR)/busybox
334 # $(MAKE) -C busybox install PREFIX=$(INSTALLDIR)/busybox
336 httpd
: matrixssl shared nvram mssl
343 @
$(MAKE
) -C matrixssl
/src
349 $(MAKE
) -C matrixssl
/src
clean
353 install -D openssl
/libcrypto.so
$(INSTALLDIR
)/openssl
/usr
/lib
/libcrypto.so
354 $(STRIP
) $(INSTALLDIR
)/openssl
/usr
/lib
/libcrypto.so
356 install -D
-m
500 openssl
/apps
/openssl
$(INSTALLDIR
)/openssl
/usr
/sbin
/openssl
357 $(STRIP
) $(INSTALLDIR
)/openssl
/usr
/sbin
/openssl
359 install -D
-m
0500 httpd
/gencert.sh
$(INSTALLDIR
)/openssl
/usr
/sbin
/gencert.sh
361 # perl -e 'while (<>) { s/.SECS/time()-(24*60*60)/e; print; }' < httpd/gencert.sh > $(INSTALLDIR)/openssl/usr/sbin/gencert.sh
362 # chmod 0500 $(INSTALLDIR)/openssl/usr/sbin/gencert.sh
364 ifeq ($(TCONFIG_FTP_SSL
),y
)
366 install -D openssl
/libssl.so
$(INSTALLDIR
)/openssl
/usr
/lib
/libssl.so
367 $(STRIP
) $(INSTALLDIR
)/openssl
/usr
/lib
/libssl.so
379 @
$(MAKE
) -C bridge brctl
/brctl
382 install -D bridge
/brctl
/brctl
$(INSTALLDIR
)/bridge
/usr
/sbin
/brctl
383 $(STRIP
) $(INSTALLDIR
)/bridge
/usr
/sbin
/brctl
387 install -D dnsmasq
/src
/dnsmasq
$(INSTALLDIR
)/dnsmasq
/usr
/sbin
/dnsmasq
388 $(STRIP
) $(INSTALLDIR
)/dnsmasq
/usr
/sbin
/dnsmasq
392 $(MAKE
) -C iptables BINDIR
=/usr
/sbin LIBDIR
=/usr
/lib KERNEL_DIR
=$(LINUXDIR
)
395 install -D iptables
/iptables
$(INSTALLDIR
)/iptables
/usr
/sbin
/iptables
396 cd
$(INSTALLDIR
)/iptables
/usr
/sbin
&& \
397 ln
-sf iptables iptables-restore
399 install -d
$(INSTALLDIR
)/iptables
/usr
/lib
/iptables
400 install -D iptables
/extensions
/*.so
$(INSTALLDIR
)/iptables
/usr
/lib
/iptables
/
402 install -D iptables
/libiptc.so
$(INSTALLDIR
)/iptables
/usr
/lib
/libiptc.so
404 $(STRIP
) $(INSTALLDIR
)/iptables
/usr
/sbin
/iptables
405 $(STRIP
) $(INSTALLDIR
)/iptables
/usr
/lib
/iptables
/*.so
406 $(STRIP
) $(INSTALLDIR
)/iptables
/usr
/lib
/libiptc.so
409 -$(MAKE
) -C iptables KERNEL_DIR
=$(LINUXDIR
) clean
413 $(MAKE
) -C ppp
/pppoecd
$* INSTALLDIR
=$(INSTALLDIR
)/ppp
414 # $(MAKE) -C ppp/pppoecd $* INSTALLDIR=$(INSTALLDIR)/ppp DFLAGS="-DDEBUG -DDEBUGALL"
417 $(MAKE
) -C ppp
/pppoecd
$* INSTALLDIR
=$(INSTALLDIR
)/ppp
421 upnp
: nvram shared iptables
424 # install -D miniupnpd/miniupnpd $(INSTALLDIR)/miniupnpd/usr/sbin/miniupnpd
425 # $(STRIP) $(INSTALLDIR)/miniupnpd/usr/sbin/miniupnpd
438 vsftpd
: shared openssl
443 install -D vsftpd
/vsftpd
$(INSTALLDIR
)/vsftpd
/usr
/sbin
/vsftpd
444 $(STRIP
) -s
$(INSTALLDIR
)/vsftpd
/usr
/sbin
/vsftpd
448 @
$(MAKE
) -C vlan CROSS
=$(CROSS_COMPILE
) # STRIPTOOL=$(STRIP)
451 $(MAKE
) -C vlan CROSS
=$(CROSS_COMPILE
) INSTALLDIR
=$(INSTALLDIR
) install # STRIPTOOL=$(STRIP)
452 $(STRIP
) $(INSTALLDIR
)/vlan
/usr
/sbin
/vconfig
456 install -D pptp-client
/pptp
$(INSTALLDIR
)/pptp-client
/usr
/sbin
/pptp
457 $(STRIP
) $(INSTALLDIR
)/pptp-client
/usr
/sbin
/pptp
462 @
$(MAKE
) -C pppd
/pppd
465 $(MAKE
) -C pppd
/pppd
clean
468 install -D pppd
/pppd
/pppd
$(INSTALLDIR
)/pppd
/usr
/sbin
/pppd
469 $(STRIP
) $(INSTALLDIR
)/pppd
/usr
/sbin
/pppd
472 # install -D ipupdate/ez-ipupdate $(INSTALLDIR)/ipupdate/usr/sbin/ez-ipupdate
473 # $(STRIP) $(INSTALLDIR)/ipupdate/usr/sbin/ez-ipupdate
478 @
$(MAKE
) -C zebra CC
=$(CC
) AR
=$(AR
) RANLIB
=$(RANLIB
)
481 install -D zebra
/zebra
/zebra
$(INSTALLDIR
)/zebra
/usr
/sbin
/zebra
482 install -D zebra
/ripd
/ripd
$(INSTALLDIR
)/zebra
/usr
/sbin
/ripd
483 install -D zebra
/lib
/libzebra.so
$(INSTALLDIR
)/zebra
/usr
/lib
/libzebra.so
484 $(STRIP
) $(INSTALLDIR
)/zebra
/usr
/sbin
/zebra
485 $(STRIP
) $(INSTALLDIR
)/zebra
/usr
/sbin
/ripd
486 $(STRIP
) $(INSTALLDIR
)/zebra
/usr
/lib
/libzebra.so
490 install -d
$(INSTALLDIR
)/rp-l2tp
/usr
/lib
/l2tp
491 install rp-l2tp
/handlers
/*.so
$(INSTALLDIR
)/rp-l2tp
/usr
/lib
/l2tp
492 $(STRIP
) $(INSTALLDIR
)/rp-l2tp
/usr
/lib
/l2tp
/*.so
493 install -D rp-l2tp
/handlers
/l2tp-control
$(INSTALLDIR
)/rp-l2tp
/usr
/sbin
/l2tp-control
494 $(STRIP
) $(INSTALLDIR
)/rp-l2tp
/usr
/sbin
/l2tp-control
495 install -D rp-l2tp
/l2tpd
$(INSTALLDIR
)/rp-l2tp
/usr
/sbin
/l2tpd
496 $(STRIP
) $(INSTALLDIR
)/rp-l2tp
/usr
/sbin
/l2tpd
500 install -D bpalogin
/bpalogin
$(INSTALLDIR
)/bpalogin
/usr
/sbin
/bpalogin
501 $(STRIP
) $(INSTALLDIR
)/bpalogin
/usr
/sbin
/bpalogin
506 # @-mkdir -p libnet/lib
507 # @$(MAKE) -C libnet CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
511 # @$(MAKE) -C libpcap CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
514 @
[ ! -f libbcm
/Makefile
] ||
$(MAKE
) -C libbcm
517 install -D libbcm
/libbcm.so
$(INSTALLDIR
)/libbcm
/usr
/lib
/libbcm.so
518 $(STRIP
) $(INSTALLDIR
)/libbcm
/usr
/lib
/libbcm.so
522 install -D iproute2
/tc
/tc
$(INSTALLDIR
)/iproute2
/usr
/sbin
/tc
523 $(STRIP
) $(INSTALLDIR
)/iproute2
/usr
/sbin
/tc
524 install -D iproute2
/ip
/ip
$(INSTALLDIR
)/iproute2
/usr
/sbin
/ip
525 $(STRIP
) $(INSTALLDIR
)/iproute2
/usr
/sbin
/ip
531 dropbear
: dropbear
/config.h
533 @make
-C dropbear PROGRAMS
="dropbear dbclient dropbearkey scp" MULTI
=1
536 install -D dropbear
/dropbearmulti
$(INSTALLDIR
)/dropbear
/usr
/bin
/dropbearmulti
537 $(STRIP
) $(INSTALLDIR
)/dropbear
/usr
/bin
/dropbearmulti
538 cd
$(INSTALLDIR
)/dropbear
/usr
/bin
&& \
539 ln
-sf dropbearmulti dropbear
&& \
540 ln
-sf dropbearmulti dropbearconvert
&& \
541 ln
-sf dropbearmulti dropbearkey
&& \
542 ln
-sf dropbearmulti dbclient
&& \
543 ln
-sf dropbearmulti ssh
&& \
544 ln
-sf dropbearmulti scp
547 @make
-C dropbear
clean
550 cd dropbear
&& CFLAGS
="-O2 -Wall" 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
551 make
-C dropbear
clean
557 ebtables-install
: dummy
558 install -D ebtables
/ebtables
$(INSTALLDIR
)/ebtables
/usr
/sbin
/ebtables
560 mkdir
-p
$(INSTALLDIR
)/ebtables
/usr
/lib
/
561 cp ebtables
/*.so
$(INSTALLDIR
)/ebtables
/usr
/lib
/
562 cp ebtables
/extensions
/*.so
$(INSTALLDIR
)/ebtables
/usr
/lib
/
565 make
-C ebtables
clean
572 @
[ ! -d
$* ] ||
( $(SEP
); $(MAKE
) -C
$* )
576 @
-[ ! -d
$* ] ||
$(MAKE
) -C
$* clean
579 @
[ ! -d
$* ] ||
$(MAKE
) -C
$* install INSTALLDIR
=$(INSTALLDIR
)/$*
584 $(obj-y
) $(obj-n
) $(obj-clean
) $(obj-install
): dummy
586 .PHONY
: all clean distclean mrproper
install package
587 .PHONY
: conf mconf oldconf kconf kmconf config menuconfig oldconfig
588 .PHONY
: dummy libnet libpcap