1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-03 06:04:53 +00:00

MozJPEG is a fork of libjpeg-turbo with 'jpgcrush' functionality built in.

The goal is to provide a production-quality JPEG encoder that improves
compression while maintaining compatibility with the vast majority of deployed
decoders.

The 'jpgcrush' feature finds the progressive coding configuration which uses the
fewest bits. This most frequently reduces file size by 2-10%, but those are not
hard limits. Significantly greater reductions have been observed.

Library configuration defaults are the same as for libjpeg-turbo, in order to
make transitions as painless as possible. There are new configuration options
for new features, but they are not enabled by default.

The 'cjpeg' program defaults are not the same as for the equivalent program in
libjpeg-turbo. The 'cjpeg' defaults for mozjpeg are set to aggressively optimize
for smaller file sizes.

WWW: https://github.com/mozilla/mozjpeg/

PR:		ports/187398
Submitted by:	Horia Racoviceanu <horia@racoviceanu.com>
This commit is contained in:
Steve Wills 2014-03-13 20:00:11 +00:00
parent 3967e48c49
commit a194e4a6e8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=348122
5 changed files with 168 additions and 0 deletions

View File

@ -583,6 +583,7 @@
SUBDIR += mingplot
SUBDIR += mirage
SUBDIR += mmrecover
SUBDIR += mozjpeg
SUBDIR += mscgen
SUBDIR += mtpaint
SUBDIR += multican

120
graphics/mozjpeg/Makefile Normal file
View File

@ -0,0 +1,120 @@
# Created by: Horia Racoviceanu <horia@racoviceanu.com>
# $FreeBSD$
PORTNAME= mozjpeg
PORTVERSION= 1.0
CATEGORIES= graphics
MAINTAINER= horia@racoviceanu.com
COMMENT= Fork of libjpeg-turbo with 'jpgcrush' functionality
LICENSE= BSD3CLAUSE
BUILD_DEPENDS= nasm:${PORTSDIR}/devel/nasm
USE_GITHUB= yes
GH_ACCOUNT= mozilla
GH_TAGNAME= ${GH_COMMIT}
GH_COMMIT= febf346
USE_AUTOTOOLS= aclocal:env autoconf automake libtool
USE_LDCONFIG= ${PREFIX}/include/${PORTNAME} ${PREFIX}/lib/${PORTNAME}
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --docdir=${PREFIX}/share/doc/${PORTNAME} \
--includedir=${PREFIX}/include/${PORTNAME} \
--libdir=${PREFIX}/lib/${PORTNAME}
LIBTOOL_ARGS+= --finish ${PREFIX}/lib/${PORTNAME}
LDFLAGS+= -L${PREFIX}/lib/${PORTNAME}
PLIST_SUB= PORTNAME=${PORTNAME} \
SOMAJORVERSION=${SOMAJORVERSION}
PORTDOCS= *
DOCSRCDIR1= ${WRKSRC}/doc/html
DOCSDIR1= ${DOCSDIR}/html
DOCSRCDIR2= ${DOCSRCDIR1}/search
DOCSDIR2= ${DOCSDIR1}/search
DOC_FILES= *.css *.html *.js *.png
PORTEXAMPLES= *
OPTIONS_DEFINE= DOCS EXAMPLES GCC SIMD TURBOJPEG
OPTIONS_GROUP= ARITHMETIC_CODING
OPTIONS_GROUP_ARITHMETIC_CODING= DECODING ENCODING
OPTIONS_MULTI= LIBRARIES
OPTIONS_MULTI_LIBRARIES= SHARED STATIC
OPTIONS_SINGLE= API_ABI_EMULATION
OPTIONS_SINGLE_API_ABI_EMULATION= JPEG6B JPEG7 JPEG8
OPTIONS_DEFAULT= DECODING ENCODING GCC JPEG6B SHARED SIMD STATIC TURBOJPEG
OPTIONS_SUB= yes
GCC_DESC= Use the GNU Compiler Collection (GCC) for best performance
SIMD_DESC= Include SIMD extensions (MMX, SSE2, NEON)
TURBOJPEG_DESC= Include the TurboJPEG wrapper library and associated tests
ENCODING_DESC= Enable arithmetic encoding
DECODING_DESC= Enable arithmetic decoding
STATIC_DESC= Build static libraries
SHARED_DESC= Build shared libraries
JPEG6B_DESC= API/ABI-compatible with libjpeg v6b
JPEG7_DESC= API/ABI-compatible with libjpeg v7 (implies arith-coding)
JPEG8_DESC= API/ABI-compatible with libjpeg v8 (implies arith-coding)
GCC_USE= GCC=any
SIMD_CONFIGURE_WITH= simd
TURBOJPEG_CONFIGURE_WITH= turbojpeg
JPEG7_CONFIGURE_WITH= jpeg7
JPEG8_CONFIGURE_WITH= jpeg8
STATIC_CONFIGURE_ENABLE= static
SHARED_CONFIGURE_ENABLE= shared
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MJPEG6B}
. if ! ${PORT_OPTIONS:MENCODING}
CONFIGURE_ARGS+= --without-arith-enc
. endif
. if ! ${PORT_OPTIONS:MDECODING}
CONFIGURE_ARGS+= --without-arith-dec
. endif
SOMAJORVERSION= 63
.else
SOMAJORVERSION= 8
.endif
post-patch:
@${REINPLACE_CMD} -e "s|docdir = \$$(datadir)/doc|&/mozjpeg|; \
s|exampledir = \$$(datadir)/doc|exampledir = ${EXAMPLESDIR}|" \
${WRKSRC}/Makefile.am
run-autotools: run-autotools-autoreconf
run-autotools-autoreconf:
cd ${CONFIGURE_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} ${AUTORECONF} -fiv
post-install:
@${MKDIR} ${STAGEDIR}${DOCSDIR2}
${INSTALL_DATA} ${DOC_FILES:S|^|${DOCSRCDIR1}/|} ${STAGEDIR}${DOCSDIR1}
${INSTALL_DATA} ${DOC_FILES:S|^|${DOCSRCDIR2}/|} ${STAGEDIR}${DOCSDIR2}
.if ${PORT_OPTIONS:MSHARED}
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/libjpeg.so.${SOMAJORVERSION}
.endif
.if ${PORT_OPTIONS:MSHARED} && ${PORT_OPTIONS:MTURBOJPEG}
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/libturbojpeg.so.1
.endif
.include <bsd.port.mk>

View File

@ -0,0 +1,2 @@
SHA256 (mozjpeg-1.0.tar.gz) = 6c4845d7fa0bddd77e4a209e8e81bde11af8524dcd2cb0bb10bfd9519548ec95
SIZE (mozjpeg-1.0.tar.gz) = 1032706

View File

@ -0,0 +1,19 @@
MozJPEG is a fork of libjpeg-turbo with 'jpgcrush' functionality built in.
The goal is to provide a production-quality JPEG encoder that improves
compression while maintaining compatibility with the vast majority of deployed
decoders.
The 'jpgcrush' feature finds the progressive coding configuration which uses the
fewest bits. This most frequently reduces file size by 2-10%, but those are not
hard limits. Significantly greater reductions have been observed.
Library configuration defaults are the same as for libjpeg-turbo, in order to
make transitions as painless as possible. There are new configuration options
for new features, but they are not enabled by default.
The 'cjpeg' program defaults are not the same as for the equivalent program in
libjpeg-turbo. The 'cjpeg' defaults for mozjpeg are set to aggressively optimize
for smaller file sizes.
WWW: https://github.com/mozilla/mozjpeg/

View File

@ -0,0 +1,26 @@
bin/cjpeg
bin/djpeg
bin/jpegtran
bin/rdjpgcom
%%TURBOJPEG%%bin/tjbench
bin/wrjpgcom
include/%%PORTNAME%%/jconfig.h
include/%%PORTNAME%%/jerror.h
include/%%PORTNAME%%/jmorecfg.h
include/%%PORTNAME%%/jpeglib.h
%%TURBOJPEG%%include/%%PORTNAME%%/turbojpeg.h
%%STATIC%%lib/%%PORTNAME%%/libjpeg.a
lib/%%PORTNAME%%/libjpeg.la
%%SHARED%%lib/%%PORTNAME%%/libjpeg.so
%%SHARED%%lib/%%PORTNAME%%/libjpeg.so.%%SOMAJORVERSION%%
%%STATIC%%%%TURBOJPEG%%lib/%%PORTNAME%%/libturbojpeg.a
%%TURBOJPEG%%lib/%%PORTNAME%%/libturbojpeg.la
%%SHARED%%%%TURBOJPEG%%lib/%%PORTNAME%%/libturbojpeg.so
%%SHARED%%%%TURBOJPEG%%lib/%%PORTNAME%%/libturbojpeg.so.1
man/man1/cjpeg.1.gz
man/man1/djpeg.1.gz
man/man1/jpegtran.1.gz
man/man1/rdjpgcom.1.gz
man/man1/wrjpgcom.1.gz
@dirrm lib/%%PORTNAME%%
@dirrm include/%%PORTNAME%%