# 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)		+= bbunzip.o
lib-$(CONFIG_BZIP2)		+= bzip2.o bbunzip.o
lib-$(CONFIG_UNLZMA)		+= bbunzip.o
lib-$(CONFIG_CPIO)		+= cpio.o
lib-$(CONFIG_DPKG)		+= dpkg.o
lib-$(CONFIG_DPKG_DEB)		+= dpkg_deb.o
lib-$(CONFIG_GUNZIP)		+= bbunzip.o
lib-$(CONFIG_GZIP)		+= gzip.o bbunzip.o
lib-$(CONFIG_LZOP)		+= lzop.o lzo1x_1.o lzo1x_1o.o lzo1x_d.o
lib-$(CONFIG_LZOP_COMPR_HIGH)	+= lzo1x_9x.o
lib-$(CONFIG_RPM2CPIO)		+= rpm2cpio.o
lib-$(CONFIG_RPM)		+= rpm.o
lib-$(CONFIG_TAR)		+= tar.o
lib-$(CONFIG_UNCOMPRESS)	+= bbunzip.o
lib-$(CONFIG_UNZIP)		+= unzip.o
