# 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_BEEP)        += beep.o
lib-$(CONFIG_CHAT)        += chat.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_DEVMEM)      += devmem.o
lib-$(CONFIG_EJECT)       += eject.o
lib-$(CONFIG_FBSPLASH)    += fbsplash.o
lib-$(CONFIG_FLASH_ERASEALL) += flash_eraseall.o
lib-$(CONFIG_FLASH_LOCK)     += flash_lock_unlock.o
lib-$(CONFIG_FLASH_UNLOCK)   += flash_lock_unlock.o
lib-$(CONFIG_IONICE)      += ionice.o
lib-$(CONFIG_HDPARM)      += hdparm.o
lib-$(CONFIG_INOTIFYD)    += inotifyd.o
lib-$(CONFIG_FEATURE_LAST_SMALL)+= last.o
lib-$(CONFIG_FEATURE_LAST_FANCY)+= last_fancy.o
lib-$(CONFIG_LESS)        += less.o
lib-$(CONFIG_MAKEDEVS)    += makedevs.o
lib-$(CONFIG_MAN)         += man.o
lib-$(CONFIG_MICROCOM)    += microcom.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_TIMEOUT)     += timeout.o
lib-$(CONFIG_TTYSIZE)     += ttysize.o
lib-$(CONFIG_VOLNAME)     += volname.o
lib-$(CONFIG_WALL)        += wall.o
lib-$(CONFIG_WATCHDOG)    += watchdog.o
