# 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.

libs-y				+= libunarchive/

lib-y:=
lib-$(CONFIG_AR)		+= ar.o
lib-$(CONFIG_BUNZIP2)		+= bunzip2.o
lib-$(CONFIG_UNLZMA)		+= unlzma.o
lib-$(CONFIG_CPIO)		+= cpio.o
lib-$(CONFIG_DPKG)		+= dpkg.o
lib-$(CONFIG_DPKG_DEB)		+= dpkg_deb.o
lib-$(CONFIG_GUNZIP)		+= gunzip.o
lib-$(CONFIG_GZIP)		+= gzip.o
lib-$(CONFIG_RPM2CPIO)		+= rpm2cpio.o
lib-$(CONFIG_RPM)		+= rpm.o
lib-$(CONFIG_TAR)		+= tar.o
lib-$(CONFIG_UNCOMPRESS)	+= uncompress.o
lib-$(CONFIG_UNZIP)		+= unzip.o
