Ticket #30765: swig-unified.diff

File swig-unified.diff, 5.6 KB (added by jmroot (Joshua Root), 13 years ago)
  • Portfile

     
    55name            swig
    66version         2.0.4
    77
    8 # remember to update the binding ports at the same time as swig
    9 
    108categories      devel
    119maintainers     kevin jwa
    1210
     
    2422
    2523homepage        http://www.swig.org/
    2624platforms       darwin
    27 master_sites    sourceforge
     25master_sites    sourceforge:project/swig/swig/swig-${version}
    2826
    2927checksums           md5     4319c503ee3a13d2a53be9d828c3adc0 \
    3028                    sha1    ace563563a8f6f367ba82236e5bea240adea0d94 \
     
    3331depends_build   port:bison \
    3432    port:gsed
    3533
    36 depends_lib     port:pcre
    37 
    3834post-patch {
    3935    # The configure script should use GNU sed
    4036    reinplace "s/\[\[:<:\]\]sed\[\[:>:\]\]/gsed/g" ${worksrcpath}/configure
    4137}
    4238
    43 foreach lang {python perl5 gcj guile mzscheme ruby php ocaml pike lua chicken allegrocl clisp r tcl csharp octave java go} {
    44     configure.args-append --without-${lang}
    45 }
    46 
    4739build.target
    4840
    49 set languages   [list typemaps]
    50 set docdir      ${prefix}/share/doc/${name}-${version}
    51 
    5241test.run        yes
    5342test.target     check
    5443
    55 pre-destroot {
    56     # This must be evaluated after variants selection.
    57     destroot.args   lib-languages="[join ${languages}]"
     44array set bindings {
     45    allegro     {port:allegro           allegrocl}
     46    chicken     {port:chicken           chicken}
     47    clisp       {port:clisp             clisp}
     48    csharp      {port:mono              csharp}
     49    gcj         {port:gcc44             "gcj=${prefix}/bin/gcj-mp-4.4 --with-gcjh=${prefix}/bin/gcjh-mp-4.4"}
     50    go          {port:go                go}
     51    guile       {port:guile             guile}
     52    java        {bin:java:kaffe         java}
     53    lua         {port:lua               lua}
     54    mzscheme    {port:mzscheme          mzscheme}
     55    ocaml       {port:ocaml             ocaml}
     56    octave      {path:bin/octave:octave octave}
     57    perl        {path:bin/perl:perl5    perl5=${prefix}/bin/perl}
     58    php5        {path:bin/php:php5      php}
     59    pike        {port:pike              pike}
     60    python      {port:python_select     python}
     61    r           {port:R                 r}
     62    ruby        {port:ruby              ruby}
     63    tcl         {port:tcl               tcl}
    5864}
     65array set prettynames {allegrocl Allegro chicken Chicken clisp CLISP csharp "C#"
     66    gcj GCJ go Go guile Guile java Java lua Lua mzscheme MzScheme
     67    ocaml "Objective Caml" octave Octave perl5 Perl php "PHP 5" pike Pike
     68    python Python r R ruby Ruby tcl Tcl}
    5969
    60 post-destroot {
    61     xinstall -d ${destroot}${docdir}
    62     xinstall -m 0644 -W ${worksrcpath} ANNOUNCE CHANGES LICENSE README \
    63         TODO ${destroot}${docdir}
     70options         swig.lang
     71default         swig.lang ""
     72
     73foreach lang [lsort [array names bindings]] {
     74    set arg      [lindex $bindings($lang) 1]
     75    set arg_name [lindex [split ${arg} =] 0]
     76    subport swig-${lang} "
     77        depends_lib-append      [lindex $bindings($lang) 0]
     78        configure.args-append   --with-${arg}
     79        destroot.args           lib-languages=\"${arg_name}\"
     80        swig.lang               $arg_name
     81    "
     82    if {${swig.lang} != $arg_name} {
     83        configure.args-append --without-${arg_name}
     84    }
    6485}
    6586
    66 variant doc description {Install extra documentation} {
     87subport swig-gcj {
     88    variant gcc43 conflicts gcc44 description {build using GCJ 4.3} {
     89        depends_lib-delete port:gcc44
     90        depends_lib-append port:gcc43
     91        configure.args-delete --with-gcj=${prefix}/bin/gcj-mp-4.4 --with-gcjh=${prefix}/bin/gcjh-mp-4.4
     92        configure.args-append --with-gcj=${prefix}/bin/gcj-mp-4.3 --with-gcjh=${prefix}/bin/gcjh-mp-4.3
     93    }
     94   
     95    # just a placeholder variant until gcc45 gets added
     96    variant gcc44 conflicts gcc43 description {build using GCJ 4.4} {}
     97   
     98    if {![variant_isset gcc43]} {
     99        default_variants +gcc44
     100    }
     101}
     102
     103if {${swig.lang} == ""} {
     104    depends_lib     port:pcre
     105
     106    set docdir      ${prefix}/share/doc/${name}-${version}
     107   
     108    destroot.args   lib-languages="typemaps"
     109   
    67110    post-destroot {
    68         xinstall -d ${destroot}${docdir}/html
    69         eval xinstall -m 0644 [glob ${worksrcpath}/Doc/Manual/*.{css,html,pdf,png}] \
    70             ${destroot}${docdir}/html
     111        xinstall -d ${destroot}${docdir}
     112        xinstall -m 0644 -W ${worksrcpath} ANNOUNCE CHANGES LICENSE README \
     113            TODO ${destroot}${docdir}
    71114    }
     115   
     116    variant doc description {Install extra documentation} {
     117        post-destroot {
     118            xinstall -d ${destroot}${docdir}/html
     119            eval xinstall -m 0644 [glob ${worksrcpath}/Doc/Manual/*.{css,html,pdf,png}] \
     120                ${destroot}${docdir}/html
     121        }
     122    }
     123   
     124    livecheck.type      regex
     125    livecheck.url       http://www.swig.org/download.html
     126    livecheck.regex     ${name}-(\\d+(?:\\.\\d+)*)
     127} else {
     128    description     $prettynames(${swig.lang}) binding for swig
     129    long_description    \
     130        SWIG is a software development tool that connects programs written in C \
     131        and C++ with a variety of high-level programming languages. This is the \
     132        $prettynames(${swig.lang}) binding.
     133    supported_archs     noarch
     134    depends_lib-append  port:swig
     135    livecheck.type      none
     136    post-destroot {
     137        delete ${destroot}${prefix}/bin
     138        delete ${destroot}${prefix}/share/man
     139        foreach f [glob -directory ${destroot}${prefix}/share/swig/${version} *] {
     140            if {[file tail $f] != ${swig.lang}} {
     141                delete $f
     142            }
     143        }
     144    }
    72145}
    73 
    74 livecheck.type      regex
    75 livecheck.url       http://www.swig.org/download.html
    76 livecheck.regex     ${name}-(\\d+(?:\\.\\d+)*)