1SUMMARY="MMX, SSE, and SSE2 SIMD accelerated JPEG library"
2DESCRIPTION="libjpeg-turbo is a JPEG image codec that uses SIMD instructions \
3(MMX, SSE2, AVX2, NEON, AltiVec) to accelerate baseline JPEG compression and \
4decompression on x86, x86-64, ARM, and PowerPC systems. On such systems, \
5libjpeg-turbo is generally 2-6x as fast as libjpeg, all else being equal. On \
6other types of systems, libjpeg-turbo can still outperform libjpeg by a \
7significant amount, by virtue of its highly-optimized Huffman coding routines.
8In many cases, the performance of libjpeg-turbo rivals that of proprietary \
9high-speed JPEG codecs.
10libjpeg-turbo implements both the traditional libjpeg API as well as the less \
11powerful but more straightforward TurboJPEG API. libjpeg-turbo also features \
12colorspace extensions that allow it to compress from/decompress to 32-bit and \
13big-endian pixel buffers (RGBX, XBGR, etc.), as well as a full-featured Java \
14interface.
15libjpeg-turbo was originally based on libjpeg/SIMD, an MMX-accelerated \
16derivative of libjpeg v6b developed by Miyasaka Masaru. The TigerVNC and \
17VirtualGL projects made numerous enhancements to the codec in 2009, and in \
18early 2010, libjpeg-turbo spun off into an independent project, with the goal \
19of making high-speed JPEG compression/decompression technology available to \
20a broader range of users and developers."
21HOMEPAGE="https://www.libjpeg-turbo.org/"
22COPYRIGHT="1991-2019 Thomas G. Lane, Guido Vollbeding
23	1997-2010 Guido Vollbeding
24	2000-2022 D. R. Commander
25	2009 Bill Allombert
26	1999-2006 MIYASAKA Masaru
27	2011 Siarhei Siamashka
28	2013 Linaro Limited
29	2014 MIPS Technologies, Inc.
30	2015 Google, Inc.
31	2015 Matthieu Darbois
32	2015 Viktor Szathm��ry"
33LICENSE="BSD (3-clause)
34	IJG
35	Zlib"
36REVISION="2"
37SOURCE_URI="https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-$portVersion.tar.gz"
38CHECKSUM_SHA256="d3ed26a1131a13686dfca4935e520eb7c90ae76fbc45d98bb50a8dc86230342b"
39SOURCE_DIR="libjpeg-turbo-$portVersion"
40
41ARCHITECTURES="all"
42SECONDARY_ARCHITECTURES="x86"
43
44libjpegVersion="62.3.0"
45libjpegVersionCompat="$libjpegVersion compat >= ${libjpegVersion%%.*}"
46libturbojpegVersion="0.2.0"
47libturbojpegVersionCompat="$libturbojpegVersion compat >= ${libturbojpegVersion%%.*}"
48
49PROVIDES="
50	libjpeg_turbo$secondaryArchSuffix = $portVersion
51	lib:libjpeg$secondaryArchSuffix = $libjpegVersionCompat
52	lib:libturbojpeg$secondaryArchSuffix = $libturbojpegVersionCompat
53	"
54REQUIRES="
55	haiku$secondaryArchSuffix
56	"
57
58PROVIDES_devel="
59	libjpeg_turbo${secondaryArchSuffix}_devel = $portVersion
60	devel:libjpeg$secondaryArchSuffix = $libjpegVersionCompat
61	devel:libturbojpeg$secondaryArchSuffix = $libturbojpegVersionCompat
62	"
63REQUIRES_devel="
64	libjpeg_turbo$secondaryArchSuffix == $portVersion base
65	"
66CONFLICTS_devel="
67	jpeg${secondaryArchSuffix}_devel
68	"
69
70PROVIDES_tools="
71	libjpeg_turbo${secondaryArchSuffix}_tools = $portVersion
72	cmd:cjpeg$secondaryArchSuffix = $portVersion
73	cmd:djpeg$secondaryArchSuffix = $portVersion
74	cmd:jpegtran$secondaryArchSuffix = $portVersion
75	cmd:rdjpgcom$secondaryArchSuffix = $portVersion
76	cmd:tjbench$secondaryArchSuffix = $portVersion
77	cmd:wrjpgcom$secondaryArchSuffix = $portVersion
78	"
79REQUIRES_tools="
80	haiku$secondaryArchSuffix
81	libjpeg_turbo$secondaryArchSuffix == $portVersion base
82	"
83CONFLICTS_tools="
84	jpeg${secondaryArchSuffix}_tools
85	"
86
87BUILD_REQUIRES="
88	haiku${secondaryArchSuffix}_devel
89	"
90BUILD_PREREQUIRES="
91	cmd:cmake
92	cmd:gcc$secondaryArchSuffix
93	cmd:ld$secondaryArchSuffix
94	cmd:libtoolize$secondaryArchSuffix
95	cmd:make
96	cmd:nasm
97	cmd:pkg_config$secondaryArchSuffix
98	"
99
100defineDebugInfoPackage libjpeg_turbo$secondaryArchSuffix \
101	$libDir/libjpeg.so.$libjpegVersion \
102	$libDir/libturbojpeg.so.$libturbojpegVersion
103
104BUILD()
105{
106	cmake -S. -Bbuild \
107		$cmakeDirArgs \
108		-DCMAKE_BUILD_TYPE=RelWithDebInfo \
109		-DENABLE_STATIC=OFF
110	make -C build $jobArgs
111}
112
113INSTALL()
114{
115	make -C build install
116
117	prepareInstalledDevelLibs libjpeg libturbojpeg
118	fixPkgconfig
119
120	# devel package
121	packageEntries devel \
122		$developDir \
123		$libDir/cmake
124
125	# tools package
126	packageEntries tools \
127		$binDir \
128		$documentationDir
129}
130
131TEST()
132{
133	make -C build test
134}
135