# 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_ADJTIMEX)    += adjtimex.o
lib-$(CONFIG_BBCONFIG)    += bbconfig.o
lib-$(CONFIG_CHRT)        += chrt.o
lib-$(CONFIG_CROND)       += crond.o
lib-$(CONFIG_CRONTAB)     += crontab.o
lib-$(CONFIG_DC)          += dc.o
lib-$(CONFIG_DEVFSD)      += devfsd.o
lib-$(CONFIG_EJECT)       += eject.o
lib-$(CONFIG_HDPARM)      += hdparm.o
lib-$(CONFIG_LAST)        += last.o
lib-$(CONFIG_LESS)        += less.o
lib-$(CONFIG_MAKEDEVS)    += makedevs.o
lib-$(CONFIG_MOUNTPOINT)  += mountpoint.o
lib-$(CONFIG_MT)          += mt.o
lib-$(CONFIG_RAIDAUTORUN) += raidautorun.o
lib-$(CONFIG_READAHEAD)   += readahead.o
lib-$(CONFIG_RUNLEVEL)    += runlevel.o
lib-$(CONFIG_RX)          += rx.o
lib-$(CONFIG_SETSID)      += setsid.o
lib-$(CONFIG_STRINGS)     += strings.o
lib-$(CONFIG_TASKSET)     += taskset.o
lib-$(CONFIG_TIME)        += time.o
lib-$(CONFIG_WATCHDOG)    += watchdog.o
