# 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_RUNSV) += runsv.o runit_lib.o
lib-$(CONFIG_RUNSVDIR) += runsvdir.o runit_lib.o
lib-$(CONFIG_SV) += sv.o runit_lib.o
lib-$(CONFIG_SVLOGD) += svlogd.o runit_lib.o
lib-$(CONFIG_CHPST) += chpst.o

lib-$(CONFIG_ENVDIR) += chpst.o
lib-$(CONFIG_ENVUIDGID) += chpst.o
lib-$(CONFIG_SETUIDGID) += chpst.o
lib-$(CONFIG_SOFTLIMIT) += chpst.o
