Update sysutils/cfengine36 to version 3.6.1_1,1
[dports.git] / graphics / ImageMagick / Makefile
1 # $FreeBSD$
2
3 PORTNAME=       ImageMagick
4 DISTVERSION=    6.8.9-4
5 PORTREVISION=   3
6 PORTEPOCH=      1
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/
31
32 MAINTAINER=     kwm@FreeBSD.org
33 COMMENT=        Image processing tools
34
35 #LICENSE=       APACHE20
36
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
41 GNU_CONFIGURE=  yes
42 CONFIGURE_ENV=  MAKE=${MAKE_CMD}
43 CONFIGURE_ARGS= --without-dps \
44                 --without-lcms
45 USE_LDCONFIG=   yes
46
47 CPPFLAGS+=      -I${LOCALBASE}/include
48 LDFLAGS+=       -L${LOCALBASE}/lib
49
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
53
54
55 PLIST_SUB=      PORTVERSION=${PORTVERSION:R}
56
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 \
60                 THREADS X11
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
66
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
75
76 .include <bsd.port.options.mk>
77
78 .if ${PORT_OPTIONS:MHDRI}
79 CONFIGURE_ARGS+=        --enable-hdri
80 _HDRI=HDRI
81 .else
82 CONFIGURE_ARGS+=        --disable-hdri
83 _HDRI=""
84 .endif
85 PLIST_SUB+=     HDRI=${_HDRI}
86
87 .if ${PORT_OPTIONS:MTHREADS}
88 _IMAGEMAGICK_THREADS=yes
89 _IMAGEMAGICK_THREADS_MSG=with threads
90 . if exists(${PERL})
91 PERL_THREADED!= ${SH} -c 'case `perl --version` in *freebsd-thread*) ${ECHO_CMD} yes ;; esac'; ${ECHO_CMD}
92 . else
93 # if ${PERL} doesn't exists, assume we dealing with threaded perl.
94 PERL_THREADED=  yes
95 . endif
96 .else
97 _IMAGEMAGICK_THREADS=no
98 _IMAGEMAGICK_THREADS_MSG=without threads
99 _IMAGEMAGICK_THREADS_IGNORE_MSG=. Define WITH_THREADS
100 .endif
101
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
110 . else
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
115 .  endif
116 _IMAGEMAGICK_THREADS=no
117 . endif
118 .else
119 CONFIGURE_ARGS+=        --without-perl
120 PLIST_SUB+=             WITH_PERL='@comment '
121 .endif
122
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}
128 .else
129 CONFIGURE_ARGS+=        --without-threads
130 _IMAGEMAGICK_THREADS=no
131 .endif
132
133 # OpenMP
134 .if ${PORT_OPTIONS:MOPENMP}
135 . if ${_IMAGEMAGICK_THREADS} == "no"
136 IGNORE=OpenMP requires threads${_IMAGEMAGICK_THREADS_IGNORE_MSG}
137 . else
138 CONFIGURE_ARGS+=        --enable-openmp
139 USES+=          compiler:openmp
140 . endif
141 .else
142 CONFIGURE_ARGS+=        --disable-openmp
143 .endif
144
145 .if ${PORT_OPTIONS:M16BIT_PIXEL}
146 _QBIT=Q16
147 .else
148 # Faster, but poor quality
149 CONFIGURE_ARGS+=        --with-quantum-depth=8
150 _QBIT=Q8
151 .endif
152 PLIST_SUB+=             QBIT=${_QBIT}
153
154 .if defined(WITH_WINDOWS_FONT_DIR)
155 CONFIGURE_ARGS+=        --with-windows-font-dir=${WITH_WINDOWS_FONT_DIR}
156 .endif
157
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=''
163 .else
164 CONFIGURE_ARGS+=        --without-modules
165 PLIST_SUB+=             MODULES='@comment '
166 .endif
167
168 .if ${PORT_OPTIONS:MOPENEXR}
169 . if ${_IMAGEMAGICK_THREADS} == "no"
170 IGNORE=OpenEXR requires threads. ${_IMAGEMAGICK_THREADS_IGNORE_MSG}
171 . else
172 LIB_DEPENDS+=           libIlmImf.so:${PORTSDIR}/graphics/OpenEXR
173 PLIST_SUB+=             OPENEXR=""
174 . endif
175 .else
176 CONFIGURE_ARGS+=        --without-openexr
177 PLIST_SUB+=             OPENEXR="@comment "
178 .endif
179
180 .if ${PORT_OPTIONS:MDJVU}
181 . if ${_IMAGEMAGICK_THREADS} == "no"
182 IGNORE=DjVu requires threads${_IMAGEMAGICK_THREADS_IGNORE_MSG}
183 . endif
184 LIB_DEPENDS+=           libdjvulibre.so:${PORTSDIR}/graphics/djvulibre
185 PLIST_SUB+=             DJVU=""
186 .else
187 CONFIGURE_ARGS+=        --without-djvu
188 PLIST_SUB+=             DJVU="@comment "
189 .endif
190
191 .if ${PORT_OPTIONS:MJPEG}
192 LIB_DEPENDS+=           libjpeg.so:${PORTSDIR}/graphics/jpeg
193 PLIST_SUB+=             JPEG=""
194 .else
195 CONFIGURE_ARGS+=        --without-jpeg
196 PLIST_SUB+=             JPEG="@comment "
197 .endif
198
199 .if ${PORT_OPTIONS:MPNG}
200 LIB_DEPENDS+=           libpng15.so:${PORTSDIR}/graphics/png
201 PLIST_SUB+=             PNG=""
202 .else
203 CONFIGURE_ARGS+=        --without-png
204 PLIST_SUB+=             PNG="@comment "
205 .endif
206
207 .if ${PORT_OPTIONS:MTIFF}
208 LIB_DEPENDS+=           libtiff.so:${PORTSDIR}/graphics/tiff
209 PLIST_SUB+=             TIFF=""
210 .else
211 CONFIGURE_ARGS+=        --without-tiff
212 PLIST_SUB+=             TIFF="@comment "
213 .endif
214
215 .if ${PORT_OPTIONS:MGSLIB}
216 CONFIGURE_ARGS+=        --with-gslib
217 USE_GHOSTSCRIPT=        yes
218 .else
219 CONFIGURE_ARGS+=        --without-gslib
220 .endif
221
222 .if ${PORT_OPTIONS:MLQR}
223 CONFIGURE_ARGS+=        --with-lqr
224 LIB_DEPENDS+=           liblqr-1.so:${PORTSDIR}/graphics/liblqr-1
225 .else
226 CONFIGURE_ARGS+=        --without-lqr
227 .endif
228
229 .if ${PORT_OPTIONS:MFFTW}
230 CONFIGURE_ARGS+=        --with-fftw
231 LIB_DEPENDS+=           libfftw3.so:${PORTSDIR}/math/fftw3
232 .else
233 CONFIGURE_ARGS+=        --without-fftw
234 .endif
235
236 # Produce BZip compressed MIFF images
237 .if empty(PORT_OPTIONS:MBZIP2)
238 CONFIGURE_ARGS+=        --without-bzlib
239 .endif
240
241 # FPX (FlashPIX) images
242 .if ${PORT_OPTIONS:MFPX}
243 LIB_DEPENDS+=           libfpx.so:${PORTSDIR}/graphics/libfpx
244 CONFIGURE_ARGS+=        --with-fpx
245 PLIST_SUB+=             FPX=""
246 .else
247 CONFIGURE_ARGS+=        --without-fpx
248 PLIST_SUB+=             FPX="@comment "
249 .endif
250
251 # JBIG images (lossless compression for bi-level images)
252 .if ${PORT_OPTIONS:MJBIG}
253 LIB_DEPENDS+=           libjbig.so:${PORTSDIR}/graphics/jbigkit
254 PLIST_SUB+=             JBIG=""
255 .else
256 CONFIGURE_ARGS+=        --without-jbig
257 PLIST_SUB+=             JBIG="@comment "
258 .endif
259
260 # JPEG2000 images (wavelet-based lossy compression)
261 .if ${PORT_OPTIONS:MJPEG2000}
262 LIB_DEPENDS+=           libopenjp2.so:${PORTSDIR}/graphics/openjpeg
263 PLIST_SUB+=             JPEG2000=""
264 .else
265 CONFIGURE_ARGS+=        --without-openjp2
266 PLIST_SUB+=             JPEG2000="@comment "
267 .endif
268
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
274 .else
275 CONFIGURE_ARGS+=        --without-gvc
276 .endif
277
278 # LZMA support
279 # needs manula override for base system...
280 .if ! ${PORT_OPTIONS:MLZMA}
281 CONFIGURE_ARGS+=        --without-lzma
282 .endif
283
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
287 .else
288 CONFIGURE_ARGS+=        --without-lcms2
289 .endif
290
291 # Freetype (TrueType Font) support
292 .if ${PORT_OPTIONS:MFREETYPE}
293 LIB_DEPENDS+=           libfreetype.so:${PORTSDIR}/print/freetype2
294 USE_GHOSTSCRIPT=        yes
295 CONFIGURE_ARGS+=        --with-freetype
296 .else
297 CONFIGURE_ARGS+=        --without-freetype
298 .endif
299
300 # Webp support
301 .if ${PORT_OPTIONS:MWEBP}
302 LIB_DEPENDS+=           libwebp.so:${PORTSDIR}/graphics/webp
303 CONFIGURE_ARGS+=        --with-webp
304 PLIST_SUB+=             WEBP=""
305 .else
306 CONFIGURE_ARGS+=        --without-webp
307 PLIST_SUB+=             WEBP="@comment "
308 .endif
309
310 # Fontconfig support
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"
317 .else
318 CONFIGURE_ARGS+=        --without-fontconfig
319 .endif
320
321 # WMF (Windows Meta File) images
322 .if ${PORT_OPTIONS:MWMF}
323 . if ${PORT_OPTIONS:MX11}
324 LIB_DEPENDS+=           libwmf.so:${PORTSDIR}/graphics/libwmf
325 . else
326 LIB_DEPENDS+=           libwmf.so:${PORTSDIR}/graphics/libwmf-nox11
327 . endif
328 CONFIGURE_ARGS+=        --with-wmf=yes
329 CFLAGS+=                -I${LOCALBASE}/include/freetype2
330 PLIST_SUB+=             WMF=""
331 .else
332 CONFIGURE_ARGS+=        --without-wmf
333 PLIST_SUB+=             WMF="@comment "
334 .endif
335
336 # SVG (Scalable Vector Graphics) requires both libxml2 and X11
337 .if ${PORT_OPTIONS:MSVG} && ${PORT_OPTIONS:MX11}
338 USE_GNOME+=             libxml2
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"
343 .else
344 CONFIGURE_ARGS+=        --without-rsvg --without-xml
345 .endif
346
347 # Pango support
348 .if ${PORT_OPTIONS:MPANGO} && ${PORT_OPTIONS:MX11}
349 USE_GNOME+=             pango
350 PLIST_SUB+=             PANGO=""
351 .else
352 CONFIGURE_ARGS+=        --without-pango
353 PLIST_SUB+=             PANGO="@comment "
354 .endif
355
356 # PDF (Adobe Portable Document Format) support
357 .if ${PORT_OPTIONS:MPDF}
358 USE_GHOSTSCRIPT=        yes
359 .endif
360
361 .if ! ${PORT_OPTIONS:MX11}
362 CONFIGURE_ARGS+=        --without-x
363 CONFLICTS+=             ImageMagick-6*
364 PLIST_SUB+=             X11='@comment '
365 PKGNAMESUFFIX=          -nox11
366 .else
367 CONFLICTS+=             ImageMagick-nox11-6*
368 CONFLICTS+=             display-[0-9]*
369 CONFIGURE_ARGS+=        --with-x
370 USE_XORG=               xext xt
371 PLIST_SUB+=             X11=''
372 .endif
373
374 .if ${PORT_OPTIONS:MDOCS}
375 INSTALL_TARGET= install-strip install-docDATA install-data-html
376 .else
377 INSTALL_TARGET= install-strip
378 .endif
379
380 .if ${PORT_OPTIONS:MTESTS}
381 USE_GHOSTSCRIPT_BUILD=yes
382 .endif
383
384 pre-configure:
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} '###################################################################'
389 .endif
390
391 .if ${PORT_OPTIONS:MSVG} && ! ${PORT_OPTIONS:MX11}
392         @${ECHO_CMD} NOTICE: SVG format support disabled, requires X11
393 .endif
394
395 post-install: test
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
399 .endif
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
403 .endif
404 .for i in ${SAMPLE_FILES}
405         @${MV} ${STAGEDIR}${PREFIX}/etc/ImageMagick-6/${i} \
406                 ${STAGEDIR}${PREFIX}/etc/ImageMagick-6/${i}.sample
407 .endfor
408
409 test check:
410 .if ${PORT_OPTIONS:MTESTS}
411         -cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} limits -m 20m ${MAKE} check
412 .endif
413
414 .include <bsd.port.mk>