#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#

mainmenu_option next_comment
comment 'Archival Utilities'

bool 'ar'	    CONFIG_AR
bool 'bunzip2'	    CONFIG_BUNZIP2
bool 'cpio'	    CONFIG_CPIO
bool 'dpkg'	    CONFIG_DPKG
bool 'dpkg_deb'	    CONFIG_DPKG_DEB
bool 'gunzip'	    CONFIG_GUNZIP
bool 'gzip'	    CONFIG_GZIP
bool 'rpm2cpio'     CONFIG_RPM2CPIO
bool 'tar'	    CONFIG_TAR
if [ "$CONFIG_TAR" = "y" ] ; then
    bool '  Enable archive creation'	CONFIG_FEATURE_TAR_CREATE
    bool '  Enable -X and --exclude options (exclude files)'	CONFIG_FEATURE_TAR_EXCLUDE
    bool '  Enable -z option (currently only for extracting)'	CONFIG_FEATURE_TAR_GZIP
fi
if [ "$CONFIG_CPIO" = "y" -o "$CONFIG_TAR" = "y" ] ; then
    bool '  Enable tape drive support' CONFIG_FEATURE_UNARCHIVE_TAPE
fi
bool 'unzip'	    CONFIG_UNZIP
endmenu
