# 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_FREE)	+= free.o
lib-$(CONFIG_FUSER)	+= fuser.o
lib-$(CONFIG_KILL)	+= kill.o
lib-$(CONFIG_ASH)	+= kill.o  # used for built-in kill by ash
lib-$(CONFIG_NMETER)    += nmeter.o
lib-$(CONFIG_PIDOF)	+= pidof.o
lib-$(CONFIG_PS)	+= ps.o
lib-$(CONFIG_RENICE)	+= renice.o
lib-$(CONFIG_BB_SYSCTL)	+= sysctl.o
lib-$(CONFIG_TOP)	+= top.o
lib-$(CONFIG_UPTIME)	+= uptime.o
lib-$(CONFIG_WATCH)     += watch.o
