# 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_KILL)	+= kill.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_FUSER)	+= fuser.o
