# Makefile for busybox
#
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
#
# Licensed under the GPL v2, see the file LICENSE in this tarball.

lib-y:=
lib-$(CONFIG_ARP)          += arp.o interface.o
lib-$(CONFIG_ARPING)       += arping.o
lib-$(CONFIG_BRCTL)        += brctl.o
lib-$(CONFIG_DNSD)         += dnsd.o
lib-$(CONFIG_ETHER_WAKE)   += ether-wake.o
lib-$(CONFIG_FAKEIDENTD)   += isrv_identd.o isrv.o
lib-$(CONFIG_FETCHMAIL)    += sendmail.o
lib-$(CONFIG_FTPGET)       += ftpgetput.o
lib-$(CONFIG_FTPPUT)       += ftpgetput.o
lib-$(CONFIG_HOSTNAME)     += hostname.o
lib-$(CONFIG_HTTPD)        += httpd.o
lib-$(CONFIG_IFCONFIG)     += ifconfig.o interface.o
lib-$(CONFIG_IFENSLAVE)    += ifenslave.o interface.o
lib-$(CONFIG_IFUPDOWN)     += ifupdown.o
lib-$(CONFIG_INETD)        += inetd.o
lib-$(CONFIG_IP)           += ip.o
lib-$(CONFIG_IPCALC)       += ipcalc.o
lib-$(CONFIG_NAMEIF)       += nameif.o
lib-$(CONFIG_NC)           += nc.o
lib-$(CONFIG_NETSTAT)      += netstat.o
lib-$(CONFIG_NSLOOKUP)     += nslookup.o
lib-$(CONFIG_PING)         += ping.o
lib-$(CONFIG_PING6)        += ping.o
lib-$(CONFIG_PSCAN)        += pscan.o
lib-$(CONFIG_ROUTE)        += route.o
lib-$(CONFIG_SENDMAIL)     += sendmail.o
lib-$(CONFIG_SLATTACH)     += slattach.o
lib-$(CONFIG_TC)           += tc.o
lib-$(CONFIG_TELNET)       += telnet.o
lib-$(CONFIG_TELNETD)      += telnetd.o
lib-$(CONFIG_TFTP)         += tftp.o
lib-$(CONFIG_TFTPD)        += tftp.o
lib-$(CONFIG_TRACEROUTE)   += traceroute.o
lib-$(CONFIG_VCONFIG)      += vconfig.o
lib-$(CONFIG_WGET)         += wget.o
lib-$(CONFIG_ZCIP)         += zcip.o

lib-$(CONFIG_TCPSVD)       += tcpudp.o tcpudp_perhost.o
lib-$(CONFIG_UDPSVD)       += tcpudp.o tcpudp_perhost.o
