SUMMARY="Free general-purpose data compression software"
HOMEPAGE="http://tukaani.org/xz/"
SRC_URI="http://tukaani.org/xz/xz-5.0.4.tar.bz2"
CHECKSUM_MD5="741cd3a5f64b23b7bac56ec5b2258715"
LICENSE="
	GNU LGPL v2.1
	GNU GPL v2
	GNU GPL v3
	"
COPYRIGHT="2005-2012 Lasse Collin"
REVISION="3"
ARCHITECTURES="x86 x86_64"
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
	# x86_gcc2 is fine as primary target architecture as long as we're building
	# for a different secondary architecture.
	ARCHITECTURES="$ARCHITECTURES x86_gcc2"
else
	ARCHITECTURES="$ARCHITECTURES !x86_gcc2"
fi
SECONDARY_ARCHITECTURES="x86"

ADDITIONAL_FILES="xz_utils-expander-rules"

# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
commandSuffix=$secondaryArchSuffix
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
	commandSuffix=
	commandBinDir=$prefix/bin
fi

PROVIDES="
	xz_utils$secondaryArchSuffix = $portVersion compat >= 5
	cmd:lzcat$commandSuffix = $portVersion compat >= 5
	cmd:lzcmp$commandSuffix = $portVersion compat >= 5
	cmd:lzdiff$commandSuffix = $portVersion compat >= 5
	cmd:lzegrep$commandSuffix = $portVersion compat >= 5
	cmd:lzfgrep$commandSuffix = $portVersion compat >= 5
	cmd:lzgrep$commandSuffix = $portVersion compat >= 5
	cmd:lzless$commandSuffix = $portVersion compat >= 5
	cmd:lzma$commandSuffix = $portVersion compat >= 5
	cmd:lzmadec$commandSuffix = $portVersion compat >= 5
	cmd:lzmainfo$commandSuffix = $portVersion compat >= 5
	cmd:lzmore$commandSuffix = $portVersion compat >= 5
	cmd:unlzma$commandSuffix = $portVersion compat >= 5
	cmd:unxz$commandSuffix = $portVersion compat >= 5
	cmd:xz$commandSuffix = $portVersion compat >= 5
	cmd:xzcat$commandSuffix = $portVersion compat >= 5
	cmd:xzcmp$commandSuffix = $portVersion compat >= 5
	cmd:xzdec$commandSuffix = $portVersion compat >= 5
	cmd:xzdiff$commandSuffix = $portVersion compat >= 5
	cmd:xzegrep$commandSuffix = $portVersion compat >= 5
	cmd:xzfgrep$commandSuffix = $portVersion compat >= 5
	cmd:xzgrep$commandSuffix = $portVersion compat >= 5
	cmd:xzless$commandSuffix = $portVersion compat >= 5
	cmd:xzmore$commandSuffix = $portVersion compat >= 5
	lib:liblzma$secondaryArchSuffix = $portVersion compat >= 5
	devel:liblzma$secondaryArchSuffix = $portVersion compat >= 5
	"
REQUIRES="
	haiku$secondaryArchSuffix >= $haikuVersion
	"
BUILD_REQUIRES="
	"
BUILD_PREREQUIRES="
	haiku${secondaryArchSuffix}_devel >= $haikuVersion
	cmd:gcc$secondaryArchSuffix
	cmd:ld$secondaryArchSuffix
	cmd:libtoolize
	cmd:make
	"

SOURCE_DIR="xz-$portVersion"

BUILD()
{
	touch po/t-cs.gmo
	runConfigure --omit-dirs binDir ./configure --bindir=$commandBinDir
	make $jobArgs
}

INSTALL()
{
	make install

	expanderRulesDir=$dataDir/expander/rules
	mkdir -p $expanderRulesDir
	cp "$portDir/additional-files/xz_utils-expander-rules" \
		"$expanderRulesDir/xz_utils"

	fixPkgconfig liblzma
	prepareInstalledDevelLibs liblzma
}

TEST()
{
	make check
}

DESCRIPTION="
XZ Utils is free general-purpose data compression software with high \
compression ratio. XZ Utils were written for POSIX-like systems, but also work \
on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.
The core of the XZ Utils compression code is based on LZMA SDK, but it has \
been modified quite a lot to be suitable for XZ Utils. The primary compression \
algorithm is currently LZMA2, which is used inside the .xz container format. \
With typical files, XZ Utils create 30 % smaller output than gzip and 15 % \
smaller output than bzip2.
XZ Utils consist of several components:
* liblzma is a compression library with API similar to that of zlib.
* xz is a command line tool with syntax similar to that of gzip.
* xzdec is a decompression-only tool smaller than the full-featured xz tool.
* A set of shell scripts (xzgrep, xzdiff, etc.) have been adapted from gzip to \
ease viewing, grepping, and comparing compressed files.
* Emulation of command line tools of LZMA Utils eases transition from LZMA \
Utils to XZ Utils.
While liblzma has a zlib-like API, liblzma doesn't include any file I/O \
functions. A separate I/O library is planned, which would abstract handling of \
.gz, .bz2, and .xz files with an easy to use API.
"
