summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/Makefile1
-rw-r--r--graphics/mozjpeg/Makefile120
-rw-r--r--graphics/mozjpeg/distinfo2
-rw-r--r--graphics/mozjpeg/pkg-descr19
-rw-r--r--graphics/mozjpeg/pkg-plist26
5 files changed, 168 insertions, 0 deletions
diff --git a/graphics/Makefile b/graphics/Makefile
index 85a6b206be59..7efbffdaa099 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -583,6 +583,7 @@
SUBDIR += mingplot
SUBDIR += mirage
SUBDIR += mmrecover
+ SUBDIR += mozjpeg
SUBDIR += mscgen
SUBDIR += mtpaint
SUBDIR += multican
diff --git a/graphics/mozjpeg/Makefile b/graphics/mozjpeg/Makefile
new file mode 100644
index 000000000000..722d627e8bda
--- /dev/null
+++ b/graphics/mozjpeg/Makefile
@@ -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>
diff --git a/graphics/mozjpeg/distinfo b/graphics/mozjpeg/distinfo
new file mode 100644
index 000000000000..7e00de5948bc
--- /dev/null
+++ b/graphics/mozjpeg/distinfo
@@ -0,0 +1,2 @@
+SHA256 (mozjpeg-1.0.tar.gz) = 6c4845d7fa0bddd77e4a209e8e81bde11af8524dcd2cb0bb10bfd9519548ec95
+SIZE (mozjpeg-1.0.tar.gz) = 1032706
diff --git a/graphics/mozjpeg/pkg-descr b/graphics/mozjpeg/pkg-descr
new file mode 100644
index 000000000000..eab772213d24
--- /dev/null
+++ b/graphics/mozjpeg/pkg-descr
@@ -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/
diff --git a/graphics/mozjpeg/pkg-plist b/graphics/mozjpeg/pkg-plist
new file mode 100644
index 000000000000..60671e6af85d
--- /dev/null
+++ b/graphics/mozjpeg/pkg-plist
@@ -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%%