libjpeg-turbo: new recipe (#2336)

Passes all tests on all architectures: GREAT SUCCESS!
This commit is contained in:
miqlas
2018-03-18 17:52:44 +01:00
committed by fbrosson
parent e045dfe503
commit 24e3433861
3 changed files with 242 additions and 0 deletions

View File

@@ -0,0 +1,139 @@
SUMMARY="MMX, SSE, and SSE2 SIMD accelerated JPEG library"
DESCRIPTION="libjpeg-turbo is a JPEG image codec that uses SIMD instructions \
(MMX, SSE2, AVX2, NEON, AltiVec) to accelerate baseline JPEG compression and \
decompression on x86, x86-64, ARM, and PowerPC systems. On such systems, \
libjpeg-turbo is generally 2-6x as fast as libjpeg, all else being equal. On \
other types of systems, libjpeg-turbo can still outperform libjpeg by a \
significant amount, by virtue of its highly-optimized Huffman coding routines.
In many cases, the performance of libjpeg-turbo rivals that of proprietary \
high-speed JPEG codecs.
libjpeg-turbo implements both the traditional libjpeg API as well as the less \
powerful but more straightforward TurboJPEG API. libjpeg-turbo also features \
colorspace extensions that allow it to compress from/decompress to 32-bit and \
big-endian pixel buffers (RGBX, XBGR, etc.), as well as a full-featured Java \
interface.
libjpeg-turbo was originally based on libjpeg/SIMD, an MMX-accelerated \
derivative of libjpeg v6b developed by Miyasaka Masaru. The TigerVNC and \
VirtualGL projects made numerous enhancements to the codec in 2009, and in \
early 2010, libjpeg-turbo spun off into an independent project, with the goal \
of making high-speed JPEG compression/decompression technology available to \
a broader range of users and developers."
HOMEPAGE="https://www.libjpeg-turbo.org/"
COPYRIGHT="1991-2018 Thomas G. Lane, Guido Vollbeding
1997-2010 Guido Vollbeding
2000-2017 D. R. Commander
2009 Bill Allombert
1999-2006 MIYASAKA Masaru
2011 Siarhei Siamashka
2013 Linaro Limited
2014 MIPS Technologies, Inc.
2015 Google, Inc.
2015 Matthieu Darbois"
LICENSE="BSD (3-clause)
IJG
Zlib"
REVISION="1"
SOURCE_URI="https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-$portVersion.tar.gz"
CHECKSUM_SHA256="b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523"
SOURCE_DIR="libjpeg-turbo-$portVersion"
PATCHES="libjpeg_turbo-$portVersion.patchset"
ARCHITECTURES="?x86_gcc2 ?x86 ?x86_64 ?arm"
SECONDARY_ARCHITECTURES="?x86"
libjpegVersion="62.2.0"
libjpegVersionCompat="$libjpegVersion compat >= ${libjpegVersion%%.*}"
libturbojpegVersion="0.1.0"
libturbojpegVersionCompat="$libturbojpegVersion compat >= ${libturbojpegVersion%%.*}"
PROVIDES="
jpeg_turbo$secondaryArchSuffix = $portVersion
lib:libjpeg$secondaryArchSuffix = $libjpegVersion
lib:libturbojpeg$secondaryArchSuffix = $libturbojpegVersion
"
REQUIRES="
haiku$secondaryArchSuffix
"
CONFLICTS="
jpeg$secondaryArchSuffix
"
PROVIDES_devel="
jpeg_turbo${secondaryArchSuffix}_devel = $portVersion
devel:libjpeg$secondaryArchSuffix = $libjpegVersion
devel:libturbojpeg$secondaryArchSuffix = $libturbojpegVersion
"
REQUIRES_devel="
jpeg_turbo$secondaryArchSuffix == $portVersion base
"
CONFLICTS_devel="
jpeg${secondaryArchSuffix}_devel
"
PROVIDES_tools="
jpeg_turbo${secondaryArchSuffix}_tools = $portVersion
cmd:cjpeg$secondaryArchSuffix = $portVersion
cmd:djpeg$secondaryArchSuffix = $portVersion
cmd:jpegtran$secondaryArchSuffix = $portVersion
cmd:rdjpgcom$secondaryArchSuffix = $portVersion
cmd:tjbench$secondaryArchSuffix = $portVersion
cmd:wrjpgcom$secondaryArchSuffix = $portVersion
"
REQUIRES_tools="
haiku$secondaryArchSuffix
jpeg_turbo$secondaryArchSuffix == $portVersion base
"
CONFLICTS_tools="
jpeg${secondaryArchSuffix}_tools
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:aclocal
cmd:automake
cmd:autoreconf
cmd:awk
cmd:gcc$secondaryArchSuffix
cmd:grep
cmd:ld$secondaryArchSuffix
cmd:libtoolize$secondaryArchSuffix
cmd:make
cmd:nasm
cmd:pkg_config$secondaryArchSuffix
"
defineDebugInfoPackage jpeg_turbo$secondaryArchSuffix \
$libDir/libjpeg.so.$libjpegVersion \
$libDir/libturbojpeg.so.$libturbojpegVersion
BUILD()
{
autoreconf -fi
runConfigure ./configure
make $jobArgs
}
INSTALL()
{
make install
rm -f "$libDir"/lib*jpeg.la
prepareInstalledDevelLibs libjpeg libturbojpeg
# devel package
packageEntries devel \
$developDir
# tools package
packageEntries tools \
$binDir \
$documentationDir
}
TEST()
{
make test
}

View File

@@ -0,0 +1,73 @@
In plain English:
1. We don't promise that this software works. (But if you find any bugs,
please let us know!)
2. You can use this software for whatever you want. You don't have to pay us.
3. You may not pretend that you wrote this software. If you use it in a
program, you must acknowledge somewhere in your documentation that
you've used the IJG code.
In legalese:
The authors make NO WARRANTY or representation, either express or implied,
with respect to this software, its quality, accuracy, merchantability, or
fitness for a particular purpose. This software is provided "AS IS", and you,
its user, assume the entire risk as to its quality and accuracy.
This software is copyright (C) 1991-2012, Thomas G. Lane, Guido Vollbeding.
All Rights Reserved except as specified below.
Permission is hereby granted to use, copy, modify, and distribute this
software (or portions thereof) for any purpose, without fee, subject to these
conditions:
(1) If any part of the source code for this software is distributed, then this
README file must be included, with this copyright and no-warranty notice
unaltered; and any additions, deletions, or changes to the original files
must be clearly indicated in accompanying documentation.
(2) If only executable code is distributed, then the accompanying
documentation must state that "this software is based in part on the work of
the Independent JPEG Group".
(3) Permission for use of this software is granted only if the user accepts
full responsibility for any undesirable consequences; the authors accept
NO LIABILITY for damages of any kind.
These conditions apply to any software derived from or based on the IJG code,
not just to the unmodified library. If you use our work, you ought to
acknowledge us.
Permission is NOT granted for the use of any IJG author's name or company name
in advertising or publicity relating to this software or products derived from
it. This software may be referred to only as "the Independent JPEG Group's
software".
We specifically permit and encourage the use of this software as the basis of
commercial products, provided that all warranty or liability claims are
assumed by the product vendor.
ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
ansi2knr.c is NOT covered by the above copyright and conditions, but instead
by the usual distribution terms of the Free Software Foundation; principally,
that you must include source code if you redistribute it. (See the file
ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part
of any program generated from the IJG code, this does not limit you more than
the foregoing paragraphs do.
The Unix configuration script "configure" was produced with GNU Autoconf.
It is copyright by the Free Software Foundation but is freely distributable.
The same holds for its supporting scripts (config.guess, config.sub,
ltmain.sh). Another support script, install-sh, is copyright by X Consortium
but is also freely distributable.
The IJG distribution formerly included code to read and write GIF files.
To avoid entanglement with the Unisys LZW patent, GIF reading support has
been removed altogether, and the GIF writer has been simplified to produce
"uncompressed GIFs". This technique does not use the LZW algorithm; the
resulting GIF files are larger than usual, but are readable by all standard
GIF decoders.
We are required to state that
"The Graphics Interchange Format(c) is the Copyright property of
CompuServe Incorporated. GIF(sm) is a Service Mark property of
CompuServe Incorporated."

View File

@@ -0,0 +1,30 @@
From bf7be1f0e2f9c6758e0f5f4f5ae2c21dc4e3ab12 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Fri, 16 Mar 2018 18:34:16 +0100
Subject: Basi Haiku arch support
diff --git a/acinclude.m4 b/acinclude.m4
index 113169f..fce8884 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -77,6 +77,16 @@ case "$host_os" in
;;
esac
;;
+ haiku*)
+ case "$host_cpu" in
+ x86_64)
+ objfmt='ELF64'
+ ;;
+ *)
+ objfmt='ELF'
+ ;;
+ esac
+ ;;
*)
objfmt='ELF ?'
;;
--
2.16.2