7 CATEGORIES= graphics perl5
8 MASTER_SITES= http://www.imagemagick.org/download/ \
9 http://www.imagemagick.org/download/legacy/ \
10 http://servingzone.com/mirrors/ImageMagick/ \
11 http://mirror.checkdomain.de/imagemagick/ \
12 http://image_magick.veidrodis.com/image_magick/ \
13 http://imagemagick.spd.co.il/ \
14 http://www.champground.com/imagemagick/ \
15 http://ftp.surfnet.nl/pub/ImageMagick/ \
16 http://mirror.searchdaimon.com/ImageMagick/ \
17 http://mirror.is.co.za/pub/imagemagick/ \
18 http://imagemagick.mirrorcatalogs.com/ \
19 ftp://ftp.imagemagick.org/pub/ImageMagick/ \
20 ftp://mirror.aarnet.edu.au/pub/imagemagick/ \
21 ftp://mirror.checkdomain.de/imagemagick/ \
22 ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ \
23 ftp://ftp.u-aizu.ac.jp/pub/graphics/image/ImageMagick/imagemagick.org/ \
24 ftp://ftp.nluug.nl/pub/ImageMagick/ \
25 ftp://mirror.searchdaimon.com/ImageMagick/ \
26 ftp://sunsite.icm.edu.pl/packages/ImageMagick/ \
27 ftp://ftp.tpnet.pl/pub/graphics/ImageMagick/ \
28 ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/ \
29 ftp://ftp.is.co.za/pub/imagemagick/ \
30 ftp://ftp.fifi.org/pub/ImageMagick/
32 MAINTAINER= kwm@FreeBSD.org
33 COMMENT= Image processing tools
37 # This port uses .la files, keep libtool:keepla! (magick/module.c)
38 USES= gmake libtool:keepla pathfix perl5 pkgconfig shebangfix tar:xz
39 SHEBANG_FILES= www/source/examples.pl
40 USE_AUTOTOOLS= libltdl
42 CONFIGURE_ENV= MAKE=${MAKE_CMD}
43 CONFIGURE_ARGS= --without-dps \
47 CPPFLAGS+= -I${LOCALBASE}/include
48 LDFLAGS+= -L${LOCALBASE}/lib
50 SAMPLE_FILES= coder.xml colors.xml delegates.xml log.xml magic.xml mime.xml \
51 policy.xml quantization-table.xml thresholds.xml type-dejavu.xml \
52 type-ghostscript.xml type-windows.xml type.xml
55 PLIST_SUB= PORTVERSION=${PORTVERSION:R}
57 OPTIONS_DEFINE= BZIP2 DOCS DJVU FFTW FONTCONFIG FPX FREETYPE \
58 GRAPHVIZ GSLIB JPEG2000 JBIG JPEG LCMS2 LZMA LQR MODULES \
59 OPENEXR OPENMP PANGO PDF PERL PNG SVG TESTS TIFF WEBP WMF \
61 OPTIONS_DEFAULT= 16BIT_PIXEL BZIP2 FFTW FONTCONFIG FPX FREETYPE \
62 JPEG2000 JBIG JPEG LCMS2 LZMA LQR MODULES PDF PERL PNG SVG \
63 TIFF WEBP WMF THREADS X11
64 OPTIONS_GROUP= HALFSUPPORTED
65 OPTIONS_GROUP_HALFSUPPORTED= 16BIT_PIXEL HDRI
67 HALFSUPPORTED_DESC= Half supported options (see help dialog)
68 16BIT_PIXEL_DESC= 16bit pixel support
69 JPEG2000_DESC= OpenJPEG 2000 support via openjpeg
70 DJVU_DESC= DJVU format support (needs THREADS)
71 GSLIB_DESC= libgs (Postscript SHLIB) support
72 HDRI_DESC= High dynamic range images support
73 MODULES_DESC= Modules support
74 TESTS_DESC= Run bundled self-tests after build
76 .include <bsd.port.options.mk>
78 .if ${PORT_OPTIONS:MHDRI}
79 CONFIGURE_ARGS+= --enable-hdri
82 CONFIGURE_ARGS+= --disable-hdri
85 PLIST_SUB+= HDRI=${_HDRI}
87 .if ${PORT_OPTIONS:MTHREADS}
88 _IMAGEMAGICK_THREADS=yes
89 _IMAGEMAGICK_THREADS_MSG=with threads
91 PERL_THREADED!= ${SH} -c 'case `perl --version` in *freebsd-thread*) ${ECHO_CMD} yes ;; esac'; ${ECHO_CMD}
93 # if ${PERL} doesn't exists, assume we dealing with threaded perl.
97 _IMAGEMAGICK_THREADS=no
98 _IMAGEMAGICK_THREADS_MSG=without threads
99 _IMAGEMAGICK_THREADS_IGNORE_MSG=. Define WITH_THREADS
102 .if ${PORT_OPTIONS:MPERL}
103 CONFIGURE_ARGS+= --with-perl=${PERL5} \
104 --with-perl-options="MAKE=${MAKE_CMD}"
105 PLIST_SUB+= WITH_PERL=''
106 # PerlMagick does not work with threads, if perl is not threaded, and vice versa
107 . if defined(PERL_THREADED)
108 _IMAGEMAGICK_THREADS_PERL_MSG=Perl is threaded
109 _IMAGEMAGICK_THREADS=yes
111 _IMAGEMAGICK_THREADS_PERL_MSG=Perl is non-threaded
112 _IMAGEMAGICK_THREADS_IGNORE_MSG=. ${_IMAGEMAGICK_THREADS_PERL_MSG}. Reinstall Perl with threads or undefine WITH_IMAGEMAGICK_PERL
113 . if ${_IMAGEMAGICK_THREADS} == "yes"
114 IGNORE=${_IMAGEMAGICK_THREADS_IGNORE_MSG} or undefine WITH_THREADS
116 _IMAGEMAGICK_THREADS=no
119 CONFIGURE_ARGS+= --without-perl
120 PLIST_SUB+= WITH_PERL='@comment '
123 .if ${_IMAGEMAGICK_THREADS} == "yes"
124 CONFIGURE_ARGS+= --with-threads
125 CONFIGURE_ENV+= PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
126 PTHREAD_LIBS="${PTHREAD_LIBS}"
127 LDFLAGS+= ${PTHREAD_LIBS}
129 CONFIGURE_ARGS+= --without-threads
130 _IMAGEMAGICK_THREADS=no
134 .if ${PORT_OPTIONS:MOPENMP}
135 . if ${_IMAGEMAGICK_THREADS} == "no"
136 IGNORE=OpenMP requires threads${_IMAGEMAGICK_THREADS_IGNORE_MSG}
138 CONFIGURE_ARGS+= --enable-openmp
139 USES+= compiler:openmp
142 CONFIGURE_ARGS+= --disable-openmp
145 .if ${PORT_OPTIONS:M16BIT_PIXEL}
148 # Faster, but poor quality
149 CONFIGURE_ARGS+= --with-quantum-depth=8
152 PLIST_SUB+= QBIT=${_QBIT}
154 .if defined(WITH_WINDOWS_FONT_DIR)
155 CONFIGURE_ARGS+= --with-windows-font-dir=${WITH_WINDOWS_FONT_DIR}
158 # Loadable coders, smaller executable, but PerlMagick not really works
159 # ('make test' there works)
160 .if ${PORT_OPTIONS:MMODULES}
161 CONFIGURE_ARGS+= --with-modules
162 PLIST_SUB+= MODULES=''
164 CONFIGURE_ARGS+= --without-modules
165 PLIST_SUB+= MODULES='@comment '
168 .if ${PORT_OPTIONS:MOPENEXR}
169 . if ${_IMAGEMAGICK_THREADS} == "no"
170 IGNORE=OpenEXR requires threads. ${_IMAGEMAGICK_THREADS_IGNORE_MSG}
172 LIB_DEPENDS+= libIlmImf.so:${PORTSDIR}/graphics/OpenEXR
173 PLIST_SUB+= OPENEXR=""
176 CONFIGURE_ARGS+= --without-openexr
177 PLIST_SUB+= OPENEXR="@comment "
180 .if ${PORT_OPTIONS:MDJVU}
181 . if ${_IMAGEMAGICK_THREADS} == "no"
182 IGNORE=DjVu requires threads${_IMAGEMAGICK_THREADS_IGNORE_MSG}
184 LIB_DEPENDS+= libdjvulibre.so:${PORTSDIR}/graphics/djvulibre
187 CONFIGURE_ARGS+= --without-djvu
188 PLIST_SUB+= DJVU="@comment "
191 .if ${PORT_OPTIONS:MJPEG}
192 LIB_DEPENDS+= libjpeg.so:${PORTSDIR}/graphics/jpeg
195 CONFIGURE_ARGS+= --without-jpeg
196 PLIST_SUB+= JPEG="@comment "
199 .if ${PORT_OPTIONS:MPNG}
200 LIB_DEPENDS+= libpng15.so:${PORTSDIR}/graphics/png
203 CONFIGURE_ARGS+= --without-png
204 PLIST_SUB+= PNG="@comment "
207 .if ${PORT_OPTIONS:MTIFF}
208 LIB_DEPENDS+= libtiff.so:${PORTSDIR}/graphics/tiff
211 CONFIGURE_ARGS+= --without-tiff
212 PLIST_SUB+= TIFF="@comment "
215 .if ${PORT_OPTIONS:MGSLIB}
216 CONFIGURE_ARGS+= --with-gslib
219 CONFIGURE_ARGS+= --without-gslib
222 .if ${PORT_OPTIONS:MLQR}
223 CONFIGURE_ARGS+= --with-lqr
224 LIB_DEPENDS+= liblqr-1.so:${PORTSDIR}/graphics/liblqr-1
226 CONFIGURE_ARGS+= --without-lqr
229 .if ${PORT_OPTIONS:MFFTW}
230 CONFIGURE_ARGS+= --with-fftw
231 LIB_DEPENDS+= libfftw3.so:${PORTSDIR}/math/fftw3
233 CONFIGURE_ARGS+= --without-fftw
236 # Produce BZip compressed MIFF images
237 .if empty(PORT_OPTIONS:MBZIP2)
238 CONFIGURE_ARGS+= --without-bzlib
241 # FPX (FlashPIX) images
242 .if ${PORT_OPTIONS:MFPX}
243 LIB_DEPENDS+= libfpx.so:${PORTSDIR}/graphics/libfpx
244 CONFIGURE_ARGS+= --with-fpx
247 CONFIGURE_ARGS+= --without-fpx
248 PLIST_SUB+= FPX="@comment "
251 # JBIG images (lossless compression for bi-level images)
252 .if ${PORT_OPTIONS:MJBIG}
253 LIB_DEPENDS+= libjbig.so:${PORTSDIR}/graphics/jbigkit
256 CONFIGURE_ARGS+= --without-jbig
257 PLIST_SUB+= JBIG="@comment "
260 # JPEG2000 images (wavelet-based lossy compression)
261 .if ${PORT_OPTIONS:MJPEG2000}
262 LIB_DEPENDS+= libopenjp2.so:${PORTSDIR}/graphics/openjpeg
263 PLIST_SUB+= JPEG2000=""
265 CONFIGURE_ARGS+= --without-openjp2
266 PLIST_SUB+= JPEG2000="@comment "
269 # GraphViz dot graphs
270 .if ${PORT_OPTIONS:MGRAPHVIZ}
271 LIB_DEPENDS+= libgvc.so:${PORTSDIR}/graphics/graphviz
272 CFLAGS+= -I${LOCALBASE}/include/graphviz
273 LDFLAGS+= -L${LOCALBASE}/lib/graphviz
275 CONFIGURE_ARGS+= --without-gvc
279 # needs manula override for base system...
280 .if ! ${PORT_OPTIONS:MLZMA}
281 CONFIGURE_ARGS+= --without-lzma
284 # LCMS (Little CMS) color management version 2 and 1 (mutually exclusive)
285 .if ${PORT_OPTIONS:MLCMS2}
286 LIB_DEPENDS+= liblcms2.so:${PORTSDIR}/graphics/lcms2
288 CONFIGURE_ARGS+= --without-lcms2
291 # Freetype (TrueType Font) support
292 .if ${PORT_OPTIONS:MFREETYPE}
293 LIB_DEPENDS+= libfreetype.so:${PORTSDIR}/print/freetype2
295 CONFIGURE_ARGS+= --with-freetype
297 CONFIGURE_ARGS+= --without-freetype
301 .if ${PORT_OPTIONS:MWEBP}
302 LIB_DEPENDS+= libwebp.so:${PORTSDIR}/graphics/webp
303 CONFIGURE_ARGS+= --with-webp
306 CONFIGURE_ARGS+= --without-webp
307 PLIST_SUB+= WEBP="@comment "
311 .if ${PORT_OPTIONS:MFONTCONFIG}
312 LIB_DEPENDS+= libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig
313 CONFIGURE_ARGS+= --with-fontconfig
314 CONFIGURE_ENV+= FONTCONFIG_CFLAGS="-I${LOCALBASE}/include" \
315 FONTCONFIG_LIBS="-L${LOCALBASE}/lib"
316 MAKE_ENV+= FONTCONFIG_CFLAGS="-I${LOCALBASE}/include"
318 CONFIGURE_ARGS+= --without-fontconfig
321 # WMF (Windows Meta File) images
322 .if ${PORT_OPTIONS:MWMF}
323 . if ${PORT_OPTIONS:MX11}
324 LIB_DEPENDS+= libwmf.so:${PORTSDIR}/graphics/libwmf
326 LIB_DEPENDS+= libwmf.so:${PORTSDIR}/graphics/libwmf-nox11
328 CONFIGURE_ARGS+= --with-wmf=yes
329 CFLAGS+= -I${LOCALBASE}/include/freetype2
332 CONFIGURE_ARGS+= --without-wmf
333 PLIST_SUB+= WMF="@comment "
336 # SVG (Scalable Vector Graphics) requires both libxml2 and X11
337 .if ${PORT_OPTIONS:MSVG} && ${PORT_OPTIONS:MX11}
339 LIB_DEPENDS+= librsvg-2.so:${PORTSDIR}/graphics/librsvg2
340 CONFIGURE_ARGS+= --with-rsvg --with-xml
341 CONFIGURE_ENV+= RSVG_CFLAGS="-I${LOCALBASE}/include/librsvg-2.0" \
342 RSVG_LIBS="-L${LOCALBASE}/lib"
344 CONFIGURE_ARGS+= --without-rsvg --without-xml
348 .if ${PORT_OPTIONS:MPANGO} && ${PORT_OPTIONS:MX11}
352 CONFIGURE_ARGS+= --without-pango
353 PLIST_SUB+= PANGO="@comment "
356 # PDF (Adobe Portable Document Format) support
357 .if ${PORT_OPTIONS:MPDF}
361 .if ! ${PORT_OPTIONS:MX11}
362 CONFIGURE_ARGS+= --without-x
363 CONFLICTS+= ImageMagick-6*
364 PLIST_SUB+= X11='@comment '
365 PKGNAMESUFFIX= -nox11
367 CONFLICTS+= ImageMagick-nox11-6*
368 CONFLICTS+= display-[0-9]*
369 CONFIGURE_ARGS+= --with-x
374 .if ${PORT_OPTIONS:MDOCS}
375 INSTALL_TARGET= install-strip install-docDATA install-data-html
377 INSTALL_TARGET= install-strip
380 .if ${PORT_OPTIONS:MTESTS}
381 USE_GHOSTSCRIPT_BUILD=yes
385 .if defined(_IMAGEMAGICK_THREADS_PERL_MSG)
386 @${ECHO_CMD} '###################################################################'
387 @${ECHO_CMD} NOTICE: ${_IMAGEMAGICK_THREADS_PERL_MSG}. Building ImageMagick ${_IMAGEMAGICK_THREADS_MSG}.
388 @${ECHO_CMD} '###################################################################'
391 .if ${PORT_OPTIONS:MSVG} && ! ${PORT_OPTIONS:MX11}
392 @${ECHO_CMD} NOTICE: SVG format support disabled, requires X11
396 .if ${PORT_OPTIONS:MPERL}
397 @${RM} -f ${STAGEDIR}${PREFIX}/lib/perl5/${PERL_VER}/${PERL_ARCH}/perllocal.pod*
398 @${RM} -f ${STAGEDIR}${SITE_PERL}/${PERL_ARCH}/auto/Image/Magick/.packlist
400 .if ${PORT_OPTIONS:MMODULES}
401 @${TOUCH} ${STAGEDIR}${PREFIX}/lib/ImageMagick-${PORTVERSION:R}/modules-${_QBIT}${_HDRI}/coders/.keep
402 @${TOUCH} ${STAGEDIR}${PREFIX}/lib/ImageMagick-${PORTVERSION:R}/modules-${_QBIT}${_HDRI}/filters/.keep
404 .for i in ${SAMPLE_FILES}
405 @${MV} ${STAGEDIR}${PREFIX}/etc/ImageMagick-6/${i} \
406 ${STAGEDIR}${PREFIX}/etc/ImageMagick-6/${i}.sample
410 .if ${PORT_OPTIONS:MTESTS}
411 -cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} limits -m 20m ${MAKE} check
414 .include <bsd.port.mk>