# Makefile for busybox
#
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
#
# Licensed under GPLv2 or later, see file LICENSE in this source tree.

lib-y:=

COMMON_FILES:= \
\
	data_skip.o \
	data_extract_all.o \
	data_extract_to_stdout.o \
\
	filter_accept_all.o \
	filter_accept_list.o \
	filter_accept_reject_list.o \
\
	header_skip.o \
	header_list.o \
	header_verbose_list.o \
\
	seek_by_read.o \
	seek_by_jump.o \
\
	data_align.o \
	find_list_entry.o \
	init_handle.o

DPKG_FILES:= \
	get_header_ar.o \
	unpack_ar_archive.o \
	get_header_tar.o \
	filter_accept_list_reassign.o

INSERT

lib-$(CONFIG_AR)                        += get_header_ar.o unpack_ar_archive.o
lib-$(CONFIG_BUNZIP2)                   += decompress_bunzip2.o
lib-$(CONFIG_UNLZMA)                    += decompress_unlzma.o
lib-$(CONFIG_UNXZ)                      += decompress_unxz.o
lib-$(CONFIG_CPIO)                      += get_header_cpio.o
lib-$(CONFIG_DPKG)                      += $(DPKG_FILES)
lib-$(CONFIG_DPKG_DEB)                  += $(DPKG_FILES)
lib-$(CONFIG_GUNZIP)                    += decompress_unzip.o
lib-$(CONFIG_RPM2CPIO)                  += decompress_unzip.o get_header_cpio.o
lib-$(CONFIG_RPM)                       += open_transformer.o decompress_unzip.o get_header_cpio.o
lib-$(CONFIG_TAR)                       += get_header_tar.o
lib-$(CONFIG_UNCOMPRESS)                += decompress_uncompress.o
lib-$(CONFIG_UNZIP)                     += decompress_unzip.o
lib-$(CONFIG_LZOP)                      += lzo1x_1.o lzo1x_1o.o lzo1x_d.o
lib-$(CONFIG_LZOP_COMPR_HIGH)           += lzo1x_9x.o
lib-$(CONFIG_FEATURE_SEAMLESS_Z)        += open_transformer.o decompress_uncompress.o
lib-$(CONFIG_FEATURE_SEAMLESS_GZ)       += open_transformer.o decompress_unzip.o get_header_tar_gz.o
lib-$(CONFIG_FEATURE_SEAMLESS_BZ2)      += open_transformer.o decompress_bunzip2.o get_header_tar_bz2.o
lib-$(CONFIG_FEATURE_SEAMLESS_LZMA)     += open_transformer.o decompress_unlzma.o get_header_tar_lzma.o
lib-$(CONFIG_FEATURE_SEAMLESS_XZ)       += open_transformer.o decompress_unxz.o
lib-$(CONFIG_FEATURE_COMPRESS_USAGE)    += decompress_bunzip2.o
lib-$(CONFIG_FEATURE_COMPRESS_BBCONFIG) += decompress_bunzip2.o
lib-$(CONFIG_FEATURE_TAR_TO_COMMAND)    += data_extract_to_command.o

ifneq ($(lib-y),)
lib-y += $(COMMON_FILES)
endif
