# 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:=

INSERT
lib-$(CONFIG_ACPID)             += acpid.o
lib-$(CONFIG_BLKID)             += blkid.o
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_FLOCK)             += flock.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_LSPCI)             += lspci.o
lib-$(CONFIG_LSUSB)             += lsusb.o
lib-$(CONFIG_MDEV)              += mdev.o
lib-$(CONFIG_MKFS_EXT2)         += mkfs_ext2.o
lib-$(CONFIG_MKFS_MINIX)        += mkfs_minix.o
lib-$(CONFIG_MKFS_REISER)       += mkfs_reiser.o
lib-$(CONFIG_MKFS_VFAT)         += mkfs_vfat.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_RDEV)              += rdev.o
lib-$(CONFIG_READPROFILE)       += readprofile.o
lib-$(CONFIG_RTCWAKE)           += rtcwake.o
lib-$(CONFIG_SCRIPT)            += script.o
lib-$(CONFIG_SCRIPTREPLAY)      += scriptreplay.o
lib-$(CONFIG_SETARCH)           += setarch.o
lib-$(CONFIG_SWAPONOFF)         += swaponoff.o
lib-$(CONFIG_SWITCH_ROOT)       += switch_root.o
lib-$(CONFIG_UMOUNT)            += umount.o
