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

lib-y:=
lib-$(CONFIG_APP_UDHCPC)        += common.o options.o packet.o \
                                   signalpipe.o socket.o
lib-$(CONFIG_APP_UDHCPD)        += common.o options.o packet.o \
                                   signalpipe.o socket.o
lib-$(CONFIG_APP_UDHCPC)        += dhcpc.o clientpacket.o clientsocket.o \
                                   script.o
lib-$(CONFIG_APP_UDHCPD)        += dhcpd.o arpping.o files.o leases.o \
                                   serverpacket.o static_leases.o
lib-$(CONFIG_APP_DUMPLEASES)    += dumpleases.o
lib-$(CONFIG_APP_DHCPRELAY)     += dhcprelay.o
lib-$(CONFIG_FEATURE_RFC3397)   += domain_codec.o
