# $Id: Portfile 68032 2010-05-25 02:43:12Z ryandesign@macports.org $

PortSystem                  1.0
PortGroup                   archcheck 1.0

name                        ImageMagick
conflicts                   cryptlib
version                     6.6.2-0
set reasonable_version      [lindex [split ${version} -] 0]
homepage                    http://www.imagemagick.org/
categories                  graphics devel
maintainers                 ryandesign
license                     ImageMagick
use_7z                      yes
platforms                   darwin
use_parallel_build          yes

description                 Tools and libraries to manipulate images in many formats

long_description            ImageMagick is a robust collection of tools and \
                            libraries to create, edit and compose bitmap images \
                            in a wide variety of formats. You can crop, resize, \
                            rotate, sharpen, color reduce or add effects or text \
                            or straight or curved lines to an image or image \
                            sequence and save your completed work in the same or \
                            differing image format. You can even create images \
                            from scratch. Image processing operations are \
                            available from the command line as well as through \
                            C, Ch, C++, Java, Perl, PHP, Python, Ruby and Tcl/Tk \
                            programming interfaces. Over 90 image formats are \
                            supported, including GIF, JPEG, JPEG 2000, PNG, PDF, \
                            PhotoCD and TIFF.

master_sites                http://image_magick.veidrodis.com/image_magick/ \
                            http://imagemagick.linux-mirror.org/download/ \
                            ftp://ftp.imagemagick.net/pub/${name}/ \
                            ftp://ftp.fifi.org/pub/ImageMagick/
#                            sourceforge:imagemagick
#                            http://ftp.surfnet.nl/pub/ImageMagick/ \
#                            ftp://ftp.nluug.nl/pub/${name}/ \

checksums                   md5     de68da1ce58c01a043425b1c717533a5 \
                            sha1    d86526852cb06f13d7c6044d0b6e5725fe75bca1 \
                            rmd160  5cc539cd7d6b8d3905d6068e9aeb55a23b73680f

patchfiles                  patch-m4_ax_opencl.m4.diff

depends_build               port:pkgconfig

depends_lib                 port:xorg-libXext \
                            port:xorg-libXt \
                            port:bzip2 \
                            port:jpeg \
                            port:lcms \
                            port:libpng \
                            port:tiff \
                            port:zlib \
                            port:freetype \
                            port:fontconfig \
                            port:libiconv \
                            port:expat \
                            port:libxml2

archcheck.files             lib/libXext.dylib \
                            lib/libXt.dylib \
                            lib/libbz2.dylib \
                            lib/libjpeg.dylib \
                            lib/liblcms.dylib \
                            lib/libpng.dylib \
                            lib/libtiff.dylib \
                            lib/libfreetype.dylib \
                            lib/libfontconfig.dylib \
                            lib/libiconv.dylib \
                            lib/libexpat.dylib \
                            lib/libxml2.dylib

use_autoconf                yes

pre-configure {
    if {[file exists ${prefix}/lib/libcl.dylib]} {
        ui_error "ImageMagick cannot be built while cryptlib is active. Pleease deactivate"
        ui_error "cryptlib and try again. You can reactivate cryptlib again later."
        return -code error "cryptlib is installed"
    }
}

configure.args              --enable-shared \
                            --enable-static \
                            --disable-ltdl-install \
                            --with-frozenpaths \
                            --without-openexr \
                            --disable-hdri \
                            --with-dps \
                            --with-bzlib \
                            --with-fontconfig \
                            --with-jpeg \
                            --with-lcms \
                            --with-png \
                            --with-tiff \
                            --with-zlib \
                            --with-modules \
                            --with-xml \
                            --with-x \
                            --without-perl \
                            --without-fpx \
                            --without-gslib \
                            --without-jbig \
                            --without-jp2 \
                            --without-wmf \
                            --without-gvc \
                            --without-rsvg \
                            --without-lqr

post-configure {
    reinplace -E {s|-arch [a-z0-9_]+||g} \
        ${worksrcpath}/magick/Magick-config \
        ${worksrcpath}/magick/MagickCore-config \
        ${worksrcpath}/Magick++/bin/Magick++-config \
        ${worksrcpath}/wand/MagickWand-config \
        ${worksrcpath}/wand/Wand-config
}

test.run                    yes
test.target                 check
test.env                    DYLD_LIBRARY_PATH=${worksrcpath}/magick/.libs

variant graphviz description {Support Graphviz} {
    depends_lib-append      path:bin/dot:graphviz
    archcheck.files-append  lib/libgvc.dylib
    configure.args-delete   --without-gvc
    configure.args-append   --with-gvc
}

variant gs description {Include Ghostscript library support} {
    depends_lib-append      port:ghostscript
    archcheck.files-append  lib/libgs.dylib
    configure.args-delete   --without-gslib
    configure.args-append   --with-gslib
}

variant hdri description {Support High Dynamic Range Imaging using OpenEXR} {
    depends_lib-append      port:openexr
    archcheck.files-append  lib/libIlmImf.dylib
    configure.args-delete   --without-openexr \
                            --disable-hdri
    configure.args-append   --with-openexr \
                            --enable-hdri
}

variant jbig description {Support JBIG} {
    depends_lib-append      port:jbigkit
    archcheck.files-append  lib/libjbig.dylib
    configure.args-delete   --without-jbig
    configure.args-append   --with-jbig
}

variant jpeg2 description {Support JPEG-2000 using JasPer} {
    depends_lib-append      port:jasper
    archcheck.files-append  lib/libjasper.dylib
    configure.args-delete   --without-jp2
    configure.args-append   --with-jp2
}

variant lqr description {Support Liquid Rescale (experimental)} {
    depends_lib-append      port:liblqr
    archcheck.files-append  lib/liblqr-1.dylib
    configure.args-delete   --without-lqr
    configure.args-append   --with-lqr
}

variant mpeg description {Support MPEG-1 and MPEG-2 video} {
    depends_lib-append      port:mpeg2vidcodec
}

variant no_plus_plus description {Do not install Magick++} {
    configure.args-append   --without-magick-plus-plus
}

variant no_x11 {
    depends_lib-delete      port:xorg-libXext \
                            port:xorg-libXt
    archcheck.files-delete  lib/libXext.dylib \
                            lib/libXt.dylib \
    configure.args-delete   --with-x
    configure.args-append   --without-x
}

variant perl description {Install PerlMagick} {
    depends_lib-append      path:bin/perl:perl5
    configure.args-delete   --without-perl
    configure.args-append   --with-perl=${prefix}/bin/perl
    post-destroot {
        foreach packlist [exec find ${destroot} -name .packlist] {
            ui_info "Fixing packlist ${packlist}"
            reinplace "s|${destroot}||" ${packlist}
        }
        foreach badfile [exec find ${destroot} -name perllocal.pod] {
            ui_info "Removing ${badfile}"
            file delete ${badfile}
        }
    }
}

variant q8 conflicts q16 q32 description {Use 8 bits per pixel quantum} {
    configure.args-append   --with-quantum-depth=8
}
variant q16 conflicts q8 q32 description {Use 16 bits per pixel quantum} {
    configure.args-append   --with-quantum-depth=16
}
variant q32 conflicts q8 q16 description {Use 32 bits per pixel quantum} {
    configure.args-append   --with-quantum-depth=32
}
if {![variant_isset q8] && ![variant_isset q32]} {
    default_variants +q16
}

variant rsvg description {Support SVG using librsvg} {
    depends_lib-append      port:librsvg
    archcheck.files-append  lib/librsvg-2.dylib
    configure.args-delete   --without-rsvg
    configure.args-append   --with-rsvg
}

variant wmf description {Support the Windows Metafile Format} {
    depends_lib-append      port:libwmf
    archcheck.files-append  lib/libwmf.dylib
    configure.args-delete   --without-wmf
    configure.args-append   --with-wmf
}

livecheck.version           ${reasonable_version}
livecheck.type              regex
livecheck.url               http://ftp.surfnet.nl/pub/ImageMagick/
livecheck.regex             ${name}-(\\d+(?:\\.\\d+)*)(?:-\\d+)?
