aboutsummaryrefslogtreecommitdiffstats
path: root/openwrt/package/Makefile
blob: fff49ab33b97f51ad814003c5761dcb2ba1ed7e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
# Main makefile for the packages
include $(TOPDIR)/rules.mk
include $(TOPDIR)/package/depend.mk

package-$(BR2_PACKAGE_6TUNNEL) += 6tunnel
package-$(BR2_PACKAGE_AICCU) += aiccu
package-$(BR2_PACKAGE_AIRCRACK) += aircrack
package-$(BR2_PACKAGE_AIRCRACK_NG) += aircrack-ng
package-$(BR2_PACKAGE_AMWALL) += amwall
package-$(BR2_PACKAGE_ARPD) += arpd
package-$(BR2_PACKAGE_ARPTABLES) += arptables
package-$(BR2_PACKAGE_ARPWATCH) += arpwatch
package-$(BR2_PACKAGE_ASTERISK) += asterisk
package-$(BR2_COMPILE_ATFTP) += atftp
package-$(BR2_PACKAGE_AUTOSSH) += autossh
package-$(BR2_COMPILE_AVAHI) += avahi
package-$(BR2_COMPILE_AXTLS) += axtls
package-$(BR2_COMPILE_BC) += bc
package-$(BR2_COMPILE_BIND) += bind
package-$(BR2_PACKAGE_BITCHX) += bitchx
package-$(BR2_PACKAGE_BITLBEE) += bitlbee
package-$(BR2_PACKAGE_BLUEZ_LIBS) += bluez-libs
package-$(BR2_PACKAGE_BLUEZ_UTILS) += bluez-utils
package-$(BR2_PACKAGE_BRIDGE) += bridge
package-$(BR2_PACKAGE_BUSYBOX) += busybox
package-$(BR2_PACKAGE_BWM) += bwm
package-$(BR2_PACKAGE_CBTT) += cbtt
package-$(BR2_PACKAGE_CGILIB) += cgilib
package-$(BR2_PACKAGE_CHILLISPOT) += chillispot
package-$(BR2_PACKAGE_CIFSMOUNT) += cifsmount
package-$(BR2_PACKAGE_CLICK) += click
package-$(BR2_PACKAGE_CLINKC) += clinkc
package-$(BR2_PACKAGE_COLLECTD) += collectd
package-$(BR2_PACKAGE_CTORRENT) += ctorrent
package-$(BR2_PACKAGE_CUPS) += cups
package-$(BR2_COMPILE_CURL) += curl
package-$(BR2_PACKAGE_CUTTER) += cutter
package-$(BR2_COMPILE_CYRUS_SASL) += cyrus-sasl
package-$(BR2_COMPILE_DB) += libdb
package-$(BR2_PACKAGE_DECO) += deco
package-$(BR2_COMPILE_DHCP) += dhcp
package-$(BR2_PACKAGE_DHCP6) += dhcp6
package-$(BR2_PACKAGE_DHCP_FORWARDER) += dhcp-forwarder
package-$(BR2_PACKAGE_DNSMASQ) += dnsmasq
package-$(BR2_PACKAGE_DOSFSTOOLS) += dosfstools
package-$(BR2_PACKAGE_DROPBEAR) += dropbear
package-$(BR2_PACKAGE_DSNIFF) += dsniff
package-$(BR2_PACKAGE_E2FSPROGS) += e2fsprogs
package-$(BR2_PACKAGE_EBTABLES) += ebtables
package-$(BR2_PACKAGE_ELINKS) += elinks
package-$(BR2_PACKAGE_ETHER_WAKE) += ether-wake
package-$(BR2_COMPILE_EXPAT) += expat
package-$(BR2_PACKAGE_EZIPUPDATE) += ez-ipupdate
package-$(BR2_PACKAGE_FAKEIDENTD) += fakeidentd
package-$(BR2_PACKAGE_FETCHMAIL) += fetchmail
package-$(BR2_COMPILE_FLAC) += flac
package-$(BR2_PACKAGE_FPING) += fping
package-$(BR2_PACKAGE_FPROBE) += fprobe
package-$(BR2_PACKAGE_FPROBE_ULOG) += fprobe-ulog
package-$(BR2_PACKAGE_FREERADIUS) += freeradius
package-$(BR2_COMPILE_FREETYPE) += freetype
package-$(BR2_PACKAGE_FRICKIN) += frickin
package-$(BR2_COMPILE_FUSE) += fuse
package-$(BR2_PACKAGE_GCOM) += gcom
package-$(BR2_PACKAGE_GDBSERVER) += gdbserver
package-$(BR2_COMPILE_GLIB) += glib
package-$(BR2_PACKAGE_GMEDIASERVER) += gmediaserver
package-$(BR2_COMPILE_GMP) += gmp
package-$(BR2_COMPILE_GNUTLS) += gnutls
package-$(BR2_PACKAGE_GPSD) += gpsd
package-$(BR2_PACKAGE_GPG) += gpg
package-$(BR2_COMPILE_GSM) += gsm
package-$(BR2_PACKAGE_HASERL) += haserl
package-$(BR2_PACKAGE_HDPARM) += hdparm
package-$(BR2_PACKAGE_HEYU) += heyu
package-$(BR2_PACKAGE_HOSTAP_UTILS) += hostap-utils
package-$(BR2_COMPILE_HOSTAPD) += hostapd
package-$(BR2_COMPILE_HOWL) += howl
package-$(BR2_PACKAGE_HTPDATE) += htpdate
package-$(BR2_PACKAGE_HTTPING) += httping
package-$(BR2_PACKAGE_ICECAST) += icecast
package-$(BR2_PACKAGE_ID3LIB) += id3lib
package-$(BR2_PACKAGE_IFTOP) += iftop
package-$(BR2_PACKAGE_IGMPPROXY) += igmpproxy
package-$(BR2_PACKAGE_IPCAD) += ipcad
package-$(BR2_PACKAGE_IPERF) += iperf
package-$(BR2_PACKAGE_IPKG) += ipkg
package-$(BR2_COMPILE_IPROUTE2) += iproute2
package-$(BR2_PACKAGE_IPSEC_TOOLS) += ipsec-tools
package-$(BR2_PACKAGE_IPSET) += ipset
package-$(BR2_COMPILE_IPTABLES) += iptables
package-$(BR2_PACKAGE_IPTABLES_SNMP) += iptables-snmp
package-$(BR2_PACKAGE_IPTRAF) += iptraf
package-$(BR2_PACKAGE_IRSSI) += irssi
package-$(BR2_PACKAGE_JAMVM) += jamvm
package-$(BR2_COMPILE_JPEG) += jpeg
package-$(BR2_COMPILE_KISMET) += kismet
package-$(BR2_COMPILE_KNOCK) += knock
package-$(BR2_PACKAGE_L2TPD) += l2tpd
package-$(BR2_PACKAGE_L2TPNS) += l2tpns
package-$(BR2_PACKAGE_LCD4LINUX) += lcd4linux
package-$(BR2_PACKAGE_LESS) += less
package-$(BR2_PACKAGE_LIBAMSEL) += libamsel
package-$(BR2_PACKAGE_LIBAO) += libao
package-$(BR2_PACKAGE_LIBART) += libart
package-$(BR2_PACKAGE_LIBCLI) += libcli
package-$(BR2_PACKAGE_LIBDAEMON) += libdaemon
package-$(BR2_PACKAGE_LIBDNET) += libdnet
package-$(BR2_PACKAGE_LIBELF) += libelf
package-$(BR2_PACKAGE_LIBEVENT) += libevent
package-$(BR2_PACKAGE_LIBFFI_SABLE) += libffi-sable
package-$(BR2_PACKAGE_LIBGCRYPT) += libgcrypt
package-$(BR2_PACKAGE_LIBGD) += libgd
package-$(BR2_PACKAGE_LIBGDBM) += libgdbm
package-$(BR2_PACKAGE_LIBGPG_ERROR) += libgpg-error
package-$(BR2_PACKAGE_LIBICONV) += libiconv
package-$(BR2_PACKAGE_LIBID3TAG) += libid3tag
package-$(BR2_PACKAGE_LIBLZO) += liblzo
package-$(BR2_PACKAGE_LIBMAD) += libmad
package-$(BR2_PACKAGE_LIBMCRYPT) += libmcrypt
package-$(BR2_PACKAGE_LIBNET) += libnet
package-$(BR2_PACKAGE_LIBNIDS) += libnids
package-$(BR2_PACKAGE_LIBOGG) += libogg
package-$(BR2_PACAKGE_LIBOL) += libol
package-$(BR2_PACKAGE_LIBOSIP2) += libosip2
package-$(BR2_PACKAGE_LIBPCAP) += libpcap
package-$(BR2_PACKAGE_LIBPNG) += libpng
package-$(BR2_PACKAGE_LIBPTHREAD) += libpthread
package-$(BR2_PACKAGE_LIBTASN1) += libtasn1
package-$(BR2_COMPILE_LIBTOOL) += libtool
package-$(BR2_PACKAGE_LIBUPNP) += libupnp
package-$(BR2_PACKAGE_LIBUSB) += libusb
package-$(BR2_PACKAGE_LIBVORBIS) += libvorbis
package-$(BR2_PACKAGE_LIBVORBISIDEC) += libvorbisidec
package-$(BR2_PACKAGE_LIBWRAP) += tcp_wrappers
package-$(BR2_PACKAGE_LIBXML2) += libxml2
package-$(BR2_PACKAGE_LIBXSLT) += libxslt
package-$(BR2_PACKAGE_LIGHTTPD) += lighttpd
package-$(BR2_PACKAGE_LINUX_ATM) += linux-atm
package-$(BR2_PACKAGE_LOGROTATE) += logrotate
package-$(BR2_PACKAGE_LRZSZ) += lrzsz
package-$(BR2_COMPILE_LUA) += lua
package-$(BR2_PACKAGE_MACCHANGER) += macchanger
package-$(BR2_PACKAGE_MADPLAY) += madplay
package-$(BR2_PACKAGE_MARADNS) += maradns
package-$(BR2_COMPILE_MATRIXSSL) += matrixssl
package-$(BR2_PACKAGE_MATRIXTUNNEL) += matrixtunnel
package-$(BR2_PACKAGE_MGETTY) += mgetty
package-$(BR2_PACKAGE_MIAU) += miau
package-$(BR2_PACKAGE_MIAX) += miax
package-$(BR2_PACKAGE_MICROCOM) += microcom
package-$(BR2_PACKAGE_MICROPERL) += microperl
package-$(BR2_COMPILE_MINI_HTTPD) += mini_httpd
package-$(BR2_PACKAGE_MINI_SENDMAIL) += mini_sendmail
package-$(BR2_COMPILE_MIREDO) += miredo
package-$(BR2_COMPILE_MONIT) += monit
package-$(BR2_PACKAGE_MOTION) += motion
package-$(BR2_PACKAGE_MPD) += mpd
package-$(BR2_PACKAGE_MRD6) += mrd6
package-$(BR2_PACKAGE_MT_DAAPD) += mt-daapd
package-$(BR2_PACKAGE_MTD) += mtd
package-$(BR2_PACKAGE_MTR) += mtr
package-$(BR2_PACKAGE_MUTT) += mutt
package-$(BR2_COMPILE_MYSQL) += mysql
package-$(BR2_PACKAGE_NANO) += nano
package-$(BR2_COMPILE_NCURSES) += ncurses
package-$(BR2_COMPILE_NDISC6) += ndisc
package-$(BR2_COMPILE_NET_SNMP) += net-snmp
package-$(BR2_PACKAGE_NETPERF) += netperf
package-$(BR2_PACKAGE_NETSTAT_NAT) += netstat-nat
package-$(BR2_PACKAGE_NFS_SERVER) += nfs-server
package-$(BR2_PACKAGE_NMAP) += nmap
package-$(BR2_PACKAGE_NOCATSPLASH) += nocatsplash
package-$(BR2_PACKAGE_NTPCLIENT) += ntpclient
package-$(BR2_PACKAGE_NVRAM) += nvram
package-$(BR2_PACKAGE_OLSRD) += olsrd
package-$(BR2_COMPILE_OPENCDK) += opencdk
package-$(BR2_COMPILE_OPENH323) += openh323
package-$(BR2_COMPILE_OPENLDAP) += openldap
package-$(BR2_PACKAGE_OPENNTPD) += openntpd
package-$(BR2_PACKAGE_OPENSER) += openser
package-$(BR2_COMPILE_OPENSSH) += openssh
package-$(BR2_COMPILE_OPENSSL) += openssl
package-$(BR2_PACKAGE_OPENSWAN) += openswan
package-$(BR2_PACKAGE_OPENVPN) += openvpn
package-$(BR2_COMPILE_OSIRIS) += osiris
package-$(BR2_PACKAGE_PALANTIR) += palantir
package-$(BR2_PACKAGE_P910ND) += p910nd
package-$(BR2_PACKAGE_PARPROUTED) += parprouted
package-$(BR2_PACKAGE_PCIUTILS) += pciutils
package-$(BR2_COMPILE_PCMCIA_CS) += pcmcia-cs
package-$(BR2_COMPILE_PCRE) += pcre
package-$(BR2_PACKAGE_PEERCAST) += peercast
package-$(BR2_PACKAGE_PEERGUARDIAN) += peerguardian
package-$(BR2_COMPILE_PHP4) += php4
package-$(BR2_COMPILE_PHP5) += php5
package-$(BR2_PACKAGE_PICOCOM) += picocom
package-$(BR2_PACKAGE_PIPACS) += pipacs
package-$(BR2_COMPILE_PMACCT) += pmacct
package-$(BR2_COMPILE_POPT) += popt
package-$(BR2_PACKAGE_PORTMAP) += portmap
package-$(BR2_PACKAGE_PORTSENTRY) += portsentry
package-$(BR2_COMPILE_POSTGRESQL) += postgresql
package-$(BR2_PACKAGE_PPP) += ppp
package-$(BR2_PACKAGE_PPTP) += pptp
package-$(BR2_PACKAGE_PPTPD) += pptpd
package-$(BR2_PACKAGE_PRIVOXY) += privoxy
package-$(BR2_PACKAGE_PROCMAIL) += procmail
package-$(BR2_PACKAGE_PSYBNC) += psybnc
package-$(BR2_PACKAGE_PTUNNEL) += ptunnel
package-$(BR2_COMPILE_PWLIB) += pwlib
package-$(BR2_PACKAGE_QUAGGA) += quagga
package-$(BR2_COMPILE_RADIUSCLIENT_NG) += radiusclient-ng
package-$(BR2_PACKAGE_RADVD) += radvd
package-$(BR2_PACKAGE_RARPD) += rarpd
package-$(BR2_COMPILE_READLINE) += readline
package-$(BR2_PACKAGE_REAIM) += reaim
package-$(BR2_PACKAGE_ROBOCFG) += robocfg
package-$(BR2_COMPILE_RP_L2TP) += rp-l2tp
package-$(BR2_COMPILE_RP_PPPOE) += rp-pppoe
package-$(BR2_PACKAGE_RRDCOLLECT) += rrdcollect
package-$(BR2_COMPILE_RRDTOOL) += rrdtool
package-$(BR2_COMPILE_RRDTOOL1) += rrdtool1
package-$(BR2_COMPILE_RRS) += rrs
package-$(BR2_PACKAGE_RSYNC) += rsync
package-$(BR2_PACKAGE_SABLEVM) += sablevm
package-$(BR2_COMPILE_SABLEVM_CLASSPATH) += sablevm-classpath
package-$(BR2_COMPILE_SAMBA) += samba
package-$(BR2_PACKAGE_SANE_BACKENDS) += sane-backends
package-$(BR2_PACKAGE_SCANLOGD) += scanlogd
package-$(BR2_PACKAGE_SCDP) += scdp
package-$(BR2_PACKAGE_SCREEN) += screen
package-$(BR2_PACKAGE_SDK) += sdk
package-$(BR2_PACKAGE_SER2NET) += ser2net
package-$(BR2_PACKAGE_SERDISPLIB) += serdisplib
package-$(BR2_PACKAGE_SETPWC) += setpwc
package-$(BR2_PACKAGE_SETSERIAL) += setserial
package-$(BR2_PACKAGE_SHAT) += shat
package-$(BR2_COMPILE_SHFS) += shfs
package-$(BR2_PACKAGE_SIPP) += sipp
package-$(BR2_PACKAGE_SIPROXD) += siproxd
package-$(BR2_PACKAGE_SIPSAK) += sipsak
package-$(BR2_PACKAGE_SLURM) += slurm
package-$(BR2_COMPILE_SNORT) += snort
package-$(BR2_COMPILE_SNORT_WIRELESS) += snort-wireless
package-$(BR2_PACKAGE_SOCAT) += socat
package-$(BR2_COMPILE_SPEEX) += speex
package-$(BR2_COMPILE_SQLITE) += sqlite
package-$(BR2_COMPILE_SQLITE2) += sqlite2
package-$(BR2_PACKAGE_SQUID) += squid
package-$(BR2_PACKAGE_SSMTP) += ssmtp
package-$(BR2_PACKAGE_SSLTUNNEL) += ssltunnel
package-$(BR2_PACKAGE_SRELAY) += srelay
package-$(BR2_PACKAGE_STRACE) += strace
package-$(BR2_PACKAGE_SYSLOG_NG) += syslog-ng
package-$(BR2_PACKAGE_TCPDUMP) += tcpdump
package-$(BR2_PACKAGE_TINC) += tinc
package-$(BR2_PACKAGE_TINYPROXY) += tinyproxy
package-$(BR2_PACKAGE_TOR) += tor
package-$(BR2_PACKAGE_TTCP) += ttcp
package-$(BR2_PACKAGE_UCLIBCXX) += uclibc++
package-$(BR2_PACKAGE_UDP_BROADCAST_RELAY) += udp-broadcast-relay
package-$(BR2_PACKAGE_ULOGD) += ulogd
package-$(BR2_PACKAGE_UPDATEDD) += updatedd
package-$(BR2_COMPILE_USBUTILS) += usbutils
package-$(BR2_PACKAGE_USTL) += ustl
package-$(BR2_COMPILE_UTIL_LINUX) += util-linux
package-$(BR2_PACKAGE_UDEV) += udev
package-$(BR2_PACKAGE_VIM) += vim
package-$(BR2_PACKAGE_VGP) += vgp
package-$(BR2_PACKAGE_VNCREPEATER) += vncrepeater
package-$(BR2_PACKAGE_VNC_REFLECTOR) += vnc-reflector
package-$(BR2_PACKAGE_VNSTAT) += vnstat
package-$(BR2_PACKAGE_VPNC) += vpnc
package-$(BR2_PACKAGE_VRRPD) += vrrpd
package-$(BR2_PACKAGE_VTUN) += vtun
package-$(BR2_PACKAGE_VSFTPD) += vsftpd
package-$(BR2_PACKAGE_WAKELAN) += wakelan
package-$(BR2_PACKAGE_WATCHDOG) += watchdog
package-$(BR2_PACKAGE_WCCPD) += wccpd
package-$(BR2_PACKAGE_WEECHAT) += weechat
package-$(BR2_PACKAGE_WIFICONF) += wificonf
package-$(BR2_PACKAGE_WIFIDOG) += wifidog
package-$(BR2_PACKAGE_WIVIZ) += wiviz
package-$(BR2_PACKAGE_WIRELESS_TOOLS) += wireless-tools
package-$(BR2_PACKAGE_WKNOCK) += wknock
package-$(BR2_PACKAGE_WOL) += wol
package-$(BR2_PACKAGE_WONDERSHAPER) += wondershaper
package-$(BR2_PACKAGE_WPA_SUPPLICANT) += wpa_supplicant
package-$(BR2_PACKAGE_WPUT) += wput
package-$(BR2_PACKAGE_WRT_RADAUTH) += wrt-radauth
package-$(BR2_PACKAGE_WX200D) += wx200d
package-$(BR2_PACKAGE_XINETD) += xinetd
package-$(BR2_PACKAGE_XSUPPLICANT) += xsupplicant
package-$(BR2_PACKAGE_ZLIB) += zlib

DEV_LIBS:=tcp_wrappers glib ncurses openssl pcre popt zlib libnet libpcap mysql postgresql iptables matrixssl liblzo gmp fuse portmap libelf uclibc++ speex libpng libgd wireless-tools nvram linux-atm libamsel libao libart libdaemon libdb libdnet libevent libffi-sable libgcrypt libgdbm libgpg-error libid3tag libmad libnet libnids libogg libol libosip2 libpcap radiusclient-ng libtasn1 libupnp libusb libvorbis libvorbisidec libxml2 libxslt id3lib net-snmp
DEV_LIBS_COMPILE:=$(patsubst %,%-compile,$(DEV_LIBS))
SDK_DEFAULT_PACKAGES:=busybox dnsmasq iptables wireless-tools dropbear bridge ipkg ppp
SDK_DEFAULT_COMPILE:=$(patsubst %,%-compile,$(SDK_DEFAULT_PACKAGES))
COMPILE_PACKAGES:=$(patsubst %,%-compile,$(package-y) $(package-m))
INSTALL_PACKAGES:=$(patsubst %,%-install,$(package-y))

all: compile
clean: $(patsubst %,%-clean,$(package-) $(package-y) $(package-m))
compile: $(COMPILE_PACKAGES)
install: base-files-install $(INSTALL_PACKAGES)

$(COMPILE_PACKAGES): base-files-compile
$(INSTALL_PACKAGES): base-files-install

sdk-compile: $(DEV_LIBS_COMPILE) $(SDK_DEFAULT_COMPILE)

$(STAMP_DIR):
	mkdir -p $@

$(TARGET_DIR):
	mkdir -p $(TARGET_DIR)

%-prepare: $(STAMP_DIR) $(TARGET_DIR)
	@[ -f $(STAMP_DIR)/.$@ ] || { \
		$(START_TRACE) "package/$(patsubst %-prepare,%,$@)-prepare: "; \
		$(MAKE) -C $(patsubst %-prepare,%,$@) prepare && { \
			touch $(STAMP_DIR)/.$@; \
			$(CMD_TRACE) " done"; \
			$(END_TRACE); \
		} \
	}

%-compile:
	@[ -f $(STAMP_DIR)/.$@ ] || { \
		$(START_TRACE) "package/$(patsubst %-compile,%,$@)-compile: "; \
		$(MAKE) -C $(patsubst %-compile,%,$@) compile && { \
			touch $(STAMP_DIR)/.$(patsubst %-compile,%,$@)-prepare; \
			touch $(STAMP_DIR)/.$@; \
			$(CMD_TRACE) " done"; \
			$(END_TRACE); \
		} \
	}

%-install: %-compile
	@$(START_TRACE) "package/$(patsubst %-install,%,$@)-install: "
	@$(MAKE) -C $(patsubst %-install,%,$@) install
	@$(CMD_TRACE) " done"
	@$(END_TRACE)

%-rebuild: 
	@$(START_TRACE) "package/$(patsubst %-rebuild,%,$@)-rebuild: "
	@rm -f $(STAMP_DIR)/.$(patsubst %-rebuild,%,$@)-*
	$(MAKE) -C $(patsubst %-rebuild,%,$@) rebuild
	@$(CMD_TRACE) " done"
	@$(END_TRACE)

%-clean:
	@$(START_TRACE) "package/$(patsubst %-clean,%,$@)-clean: "
	@$(MAKE) -C $(patsubst %-clean,%,$@) clean
	@rm -f $(STAMP_DIR)/.$(patsubst %-clean,%,$@)-*
	@$(CMD_TRACE) " done"
	@$(END_TRACE)