libjpeg-turbo: Add new package

It's faster than regular libjpeg with ASM optimizations for various
platforms. Tests with djpeg indicate that it's twice as fast.

This is meant to replace the regular libjpeg.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2018-06-21 19:49:45 -07:00
parent 73d6ad6e1a
commit 8abf547919
No known key found for this signature in database
GPG Key ID: 36D31CFA845F0E3B
1 changed files with 94 additions and 0 deletions

View File

@ -0,0 +1,94 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=libjpeg-turbo
PKG_VERSION:=2.0.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
PKG_HASH:=16f8f6f2715b3a38ab562a84357c793dd56ae9899ce130563c72cd93d8357b5d
PKG_MAINTAINER:=Rosen Penev <rosenp@gmail.com>
PKG_LICENSE:=BSD-3-Clause IJG zlib
PKG_LICENSE_FILES:=LICENSE.md
PKG_USE_MIPS16:=0 #Allows ASM compilation for speed.
PKG_BUILD_PARALLEL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/libjpeg-turbo/Default
TITLE:=libjpeg-turbo
URL:=https://www.libjpeg-turbo.org/
endef
define Package/libjpeg-turbo
$(call Package/libjpeg-turbo/Default)
SECTION:=libs
CATEGORY:=Libraries
TITLE+= runtime library
PROVIDES:=libjpeg
endef
define Package/libjpeg-turbo-utils
$(call Package/libjpeg-turbo/Default)
SECTION:=utils
CATEGORY:=Utilities
SUBMENU:=Image Manipulation
DEPENDS:=+libjpeg-turbo
TITLE+= manipulation tools
PROVIDES:=jpeg-tools
endef
define Package/libjpeg-turbo/description
libjpeg-turbo is a speed focused fork of libjpeg.
endef
define Package/libjpeg-turbo-utils/description
These are the JPEG utilities that come with libjpeg-turbo.
endef
CMAKE_OPTIONS += \
-DENABLE_SHARED=ON \
-DENABLE_STATIC=OFF \
-DREQUIRE_SIMD=OFF \
-DWITH_12BIT=OFF \
-DWITH_ARITH_DEC=OFF \
-DWITH_ARITH_ENC=OFF \
-DWITH_JAVA=OFF \
-DWITH_JPEG7=OFF \
-DWITH_JPEG8=OFF \
-DWITH_MEM_SRCDST=OFF \
-DWITH_SIMD=O$(if $(findstring mips,$(CONFIG_ARCH)),FF,N) \
-DWITH_TURBOJPEG=OFF
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libjpeg.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libjpeg.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libjpeg.pc
$(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libturbojpeg.pc
$(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libturbojpeg.pc
endef
define Package/libjpeg-turbo/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libjpeg.so* $(1)/usr/lib
endef
define Package/libjpeg-turbo-utils/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/rdjpgcom $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/wrjpgcom $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cjpeg $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/djpeg $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/jpegtran $(1)/usr/bin
endef
$(eval $(call BuildPackage,libjpeg-turbo))
$(eval $(call BuildPackage,libjpeg-turbo-utils))