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