# 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_CHVT)		+= chvt.o
lib-$(CONFIG_CLEAR)		+= clear.o
lib-$(CONFIG_DEALLOCVT)		+= deallocvt.o
lib-$(CONFIG_DUMPKMAP)		+= dumpkmap.o
lib-$(CONFIG_SETCONSOLE)	+= setconsole.o
lib-$(CONFIG_KBD_MODE)		+= kbd_mode.o
lib-$(CONFIG_LOADFONT)		+= loadfont.o
lib-$(CONFIG_LOADKMAP)		+= loadkmap.o
lib-$(CONFIG_OPENVT)		+= openvt.o
lib-$(CONFIG_RESET)		+= reset.o
lib-$(CONFIG_RESIZE)		+= resize.o
lib-$(CONFIG_SETFONT)		+= loadfont.o
lib-$(CONFIG_SETKEYCODES)	+= setkeycodes.o
lib-$(CONFIG_SETLOGCONS)	+= setlogcons.o
lib-$(CONFIG_SHOWKEY)		+= showkey.o
