# 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_DMESG)		+= dmesg.o
lib-$(CONFIG_FBSET)		+= fbset.o
lib-$(CONFIG_FDFLUSH)		+= freeramdisk.o
lib-$(CONFIG_FDFORMAT)		+= fdformat.o
lib-$(CONFIG_FDISK)		+= fdisk.o
lib-$(CONFIG_FINDFS)		+= findfs.o
lib-$(CONFIG_FREERAMDISK)	+= freeramdisk.o
lib-$(CONFIG_FSCK_MINIX)	+= fsck_minix.o
lib-$(CONFIG_GETOPT)		+= getopt.o
lib-$(CONFIG_HEXDUMP)		+= hexdump.o
lib-$(CONFIG_HWCLOCK)		+= hwclock.o
lib-$(CONFIG_IPCRM)		+= ipcrm.o
lib-$(CONFIG_IPCS)		+= ipcs.o
lib-$(CONFIG_LOSETUP)		+= losetup.o
lib-$(CONFIG_MDEV)		+= mdev.o
lib-$(CONFIG_MKFS_MINIX)	+= mkfs_minix.o
lib-$(CONFIG_MKSWAP)		+= mkswap.o
lib-$(CONFIG_MORE)		+= more.o
lib-$(CONFIG_MOUNT)		+= mount.o
lib-$(CONFIG_PIVOT_ROOT)	+= pivot_root.o
lib-$(CONFIG_RDATE)		+= rdate.o
lib-$(CONFIG_READPROFILE)	+= readprofile.o
lib-$(CONFIG_RTCWAKE)		+= rtcwake.o
lib-$(CONFIG_SCRIPT)		+= script.o
lib-$(CONFIG_SETARCH)		+= setarch.o
lib-$(CONFIG_SWAPONOFF)		+= swaponoff.o
lib-$(CONFIG_SWITCH_ROOT)	+= switch_root.o
lib-$(CONFIG_UMOUNT)		+= umount.o
