# $Id: Portfile 56038 2009-08-23 17:27:46Z takanori@macports.org $

PortSystem      1.0

name            ghostscript
version         8.70
categories      print
maintainers     takanori openmaintainer
description     GPL Ghostscript, An interpreter for PostScript and PDF
long_description \
                Ghostscript is the well-known PostScript interpreter which \
                is available for all common and most esoteric platforms and \
                supports many different printers and some displays.
platforms       darwin
homepage        http://www.cs.wisc.edu/~ghost/
master_sites    sourceforge:${name}:source \
                sourceforge:gs-fonts:fonts
distfiles       ${distname}.tar.gz:source \
                ghostscript-fonts-other-6.0.tar.gz:fonts
patchfiles      patch-base_unix-dll.mak.diff
checksums       ${distname}.tar.gz rmd160 1516246b2a6b41650f2baeac8c7ae0fd88cfe43d \
                ghostscript-fonts-other-6.0.tar.gz rmd160 ab60dbf71e7d91283a106c3df381cadfe173082f

depends_lib     port:xorg-libXext \
                port:xorg-libXt \
                path:lib/pkgconfig/cairo.pc:cairo \
                port:expat \
                port:fontconfig \
                port:jpeg \
                port:libiconv \
                port:libpng \
                port:zlib \
                path:bin/perl:perl5

depends_build   port:pkgconfig \
                port:autoconf

post-extract {
    foreach d {zlib libpng jpeg} {
        move "${worksrcpath}/${d}" "${worksrcpath}/${d}_local"
    }
}

post-patch {
    reinplace "s|__PREFIX__|${prefix}|" ${worksrcpath}/base/unix-dll.mak

    # Ensure that MacPorts perl is used
    foreach f {lib/fixmswrd.pl toolbin/bugsByEngineer.pl toolbin/pscet_status.pl} {
        reinplace "s|#!/usr/bin/perl|#!${prefix}/bin/perl|" ${worksrcpath}/${f}
    }
}

use_autoconf yes
autoconf.cmd autoreconf
autoconf.args -fvi

# Make included JasPer uses its own headers rather than the system ones
configure.cppflags-delete       "-I${prefix}/include"
configure.cppflags-append       "-isystem${prefix}/include"

configure.args  --disable-compile-inits \
                --disable-cups \
                --disable-gtk

build.target        so
use_parallel_build  no

destroot.target     soinstall
post-destroot {
    system "strip ${destroot}${prefix}/bin/gsc ${destroot}${prefix}/bin/gsx"
    ln -s gsc ${destroot}${prefix}/bin/gs

    xinstall -m 755 -d ${destroot}${prefix}/share/${name}/fonts
    foreach f {*.afm *.gsf *.pfa *.pfm} {
        eval xinstall -m 644 [glob ${workpath}/fonts/${f}] ${destroot}${prefix}/share/${name}/fonts
    }

    xinstall -m 755 -d ${destroot}${prefix}/share/doc
    ln -s ../${name}/${version}/doc ${destroot}${prefix}/share/doc/${name}

    xinstall -m 755 -d ${destroot}${prefix}/share/${name}/${version}/examples/cjk
    eval xinstall -m 644 [glob ${worksrcpath}/examples/cjk/*.ps] ${destroot}${prefix}/share/${name}/${version}/examples/cjk
}

livecheck.distname      GPL Ghostscript

universal_variant       no

variant no_x11 {
    depends_lib-delete port:xorg-libXext
    depends_lib-delete port:xorg-libXt
    configure.args-append --without-x
}

variant cups description {Enable cups support} {
    configure.args-delete --disable-cups
    configure.args-append --enable-cups

    # Informing user enable cups will install files outside of the common directory structure
    destroot.violate_mtree yes
}

variant framework description {(removed)} {
    pre-fetch {
        ui_msg "IMPORTANT NOTICE: Support for Ghostscript.framework has been removed. Please use libgs.dylib instead. libgs is now installed by default."
    }
}
