# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 119131 2014-04-17 22:40:03Z pixilla@macports.org $

PortSystem 1.0
PortGroup xmlcatalog 1.0

name            openjade
version         1.3.2
revision        8
categories      textproc
license         MIT
maintainers     fourpalms.org:lockhart openmaintainer
description     James Clark's implementation of DSSSL
long_description \
    OpenJade is an implementation of ISO/IEC 10179:1996 \
    standard DSSSL language.
homepage        http://openjade.sourceforge.net/
platforms       darwin freebsd
master_sites    sourceforge

checksums       md5 7df692e3186109cc00db6825b777201e

patchfiles      clang.patch \
                patch-GroveApp.h \
                patch-GroveBuilder.cxx \
                patch-Node.h \
                openjade-getoptperl.patch \
                delete_la_files.patch

depends_lib     port:opensp
depends_run     port:xmlcatmgr

set openjade.catalog ${prefix}/share/sgml/catalog
set openjade.rootcatalog ${prefix}/share/sgml/openjade/catalog

sgml.catalog ${openjade.rootcatalog}
# Add the root catalog to the openjade catalog
sgml.addtocatalog "${openjade.catalog}" "${sgml.rootcatalog}"

configure.args --enable-http --enable-html --enable-mif \
               --disable-dependency-tracking \
               --enable-default-catalog=${openjade.catalog} \
               --datadir=${prefix}/share/sgml/openjade \
               --mandir=${prefix}/share/man

# Fix build failure on Tiger due to use of -isystem
compiler.blacklist    gcc-4.0 gcc-3.3

# TODO: Simplify once MacPorts 2.3 is released
set cxx_stdlibflags {}
if {[info exists configure.cxx_stdlib] && ${configure.cxx_stdlib} ne {} && [string match *clang* ${configure.cxx}]} {
    set cxx_stdlibflags "-stdlib=${configure.cxx_stdlib}"
}

configure.env-append      LIBS="-L${prefix}/lib"
configure.cxxflags-append "-isystem ${prefix}/include -fno-rtti"
configure.ldflags-delete  "-L${prefix}/lib"

post-configure  {
    reinplace "s|^#pragma implementation||g" ${worksrcpath}/grove/Node.cxx
    reinplace "s|^#pragma implementation||g" ${worksrcpath}/msggen.pl
    reinplace "s|^#pragma implementation||g" ${worksrcpath}/spgrove/GroveApp.cxx
    reinplace "s|^#pragma implementation||g" ${worksrcpath}/style/MessageModule.cxx
    reinplace "s|^#pragma interface||g" ${worksrcpath}/generic/EventGenerator.h
    reinplace "s|^#pragma interface||g" ${worksrcpath}/generic/ParserEventGeneratorKit.h
    reinplace "s|^#pragma interface||g" ${worksrcpath}/generic/SGMLApplication.h
    reinplace "s|^#pragma interface||g" ${worksrcpath}/grove/Node.h
    reinplace "s|^#pragma interface||g" ${worksrcpath}/msggen.pl
    reinplace "s|^#pragma interface||g" ${worksrcpath}/spgrove/GroveApp.h
    reinplace "s|^CXX=.*$|CXX='${configure.cxx} [get_canonical_archflags] ${cxx_stdlibflags}'|g" ${worksrcpath}/libtool 
    reinplace "s|^CC=.*$|CC='${configure.cc} [get_canonical_archflags]'|g" ${worksrcpath}/libtool 
}

destroot.target install install-man

post-destroot {
    system "install -d -m 755 ${destroot}${prefix}/share/sgml/openjade"
    system "install -m 644 ${worksrcpath}/dsssl/* ${destroot}${prefix}/share/sgml/openjade"
}
