# $Id: Portfile 56245 2009-08-25 17:20:24Z jwa@macports.org $

PortSystem 1.0

name		swig
version		1.3.40

categories	devel
maintainers	kevin jwa

description	Tool to wrap C/C++ libraries in high-level languages.
long_description	\
    SWIG is a software development tool that connects programs written in C \
    and C++ with a variety of high-level programming languages. SWIG is \
    primarily used with common scripting languages such as Perl, Python, \
    Tcl/Tk, Ruby, Guile and MzScheme, however the list of supported languages \
    also includes non-scripting languages such as Java and OCAML. SWIG is \
    most commonly used to create high-level interpreted programming \
    environments, user interfaces, and as a tool for testing and \
    prototyping C/C++ software. SWIG may be freely used, distributed, and \
    modified for commercial and noncommercial use.

homepage	http://www.swig.org/
platforms	darwin
master_sites	sourceforge
checksums           md5     2df766c9e03e02811b1ab4bba1c7b9cc \
                    sha1    7e7a426579f2d2d967b731abf062b33aa894fb4e \
                    rmd160  318a59b0ea2b20ca987f7e662e0d7138c869295a


depends_build	port:bison \
    port:gsed

post-patch {
    # The configure script should use GNU sed
    reinplace "s/\[\[:<:\]\]sed\[\[:>:\]\]/gsed/g" ${worksrcpath}/configure
}

default_variants	+python +perl +ruby +php5
configure.args  --with-java

build.target

set languages   {typemaps java}
set docdir      ${prefix}/share/doc/${name}-${version}

test.run        yes
test.target     check

pre-destroot {
    # This must be evaluated after variants selection.
    destroot.args   lib-languages="[join ${languages}]"
}

post-destroot {
    xinstall -d ${destroot}${docdir}
    xinstall -m 0644 -W ${worksrcpath} ANNOUNCE CHANGES FUTURE LICENSE NEW README \
        TODO ${destroot}${docdir}
}

variant doc description {Install extra documentation} {
    post-destroot {
        xinstall -d ${destroot}${docdir}/html
        eval xinstall -m 0644 [glob ${worksrcpath}/Doc/Manual/*.{css,html,pdf,png}] \
            ${destroot}${docdir}/html
    }
}

set bindings {
    python      port:python_select     python=${prefix}/bin/python
    perl        path:bin/perl:perl5    perl5=${prefix}/bin/perl
    gcj         port:gcc43             "gcj=${prefix}/bin/gcj-mp-4.3 --with-gcjh=${prefix}/bin/gcjh-mp-4.3"
    guile       port:guile             guile
    mzscheme    port:mzscheme          mzscheme
    ruby        port:ruby              ruby
    php5        path:bin/php:php5      php
    ocaml       port:ocaml             ocaml
    pike        port:pike              pike
    lua         port:lua               lua
    chicken     port:chicken           chicken
    allegro     port:allegro           allegrocl
    clisp       port:clisp             clisp
    r           port:R                 r
    tcl         port:tcl               tcl
    csharp      port:mono              csharp
    octave      port:octave            octave
}

foreach {variant port arg} ${bindings} {
    set arg_name    [lindex [split ${arg} =] 0]

    configure.args-append   --without-${arg_name}

    eval [subst {
        variant ${variant} {
            configure.args-delete   --without-${arg_name}
            configure.args-append   --with-${arg}

            depends_lib-append   ${port}

            lappend languages       ${arg_name}
        }
    }]
}

livecheck.check     sourceforge
livecheck.regex     <title>${name} ${name}-(.*) released.*</title>
