# $Id: Portfile 55727 2009-08-17 22:40:07Z raimue@macports.org $

PortSystem          1.0

name                vim
set vim_version     7.2
set vim_patchlevel  245
version             ${vim_version}.${vim_patchlevel}
categories          editors
maintainers         raimue
description         Vi \"workalike\" with many additional features
long_description \
    Vim is an advanced text editor that seeks to provide the power of the   \
    de-facto Unix editor 'Vi', with a more complete feature set.

homepage            http://www.vim.org/
platforms           darwin freebsd

use_bzip2           yes

distfiles \
    [suffix ${name}-${vim_version}]:vim \
    ${name}-${vim_version}-extra.tar.gz:extra \
    ${name}-${vim_version}-lang.tar.gz:extra
checksums \
  [suffix ${name}-${vim_version}] \
    md5     f0901284b338e448bfd79ccca0041254 \
    sha1    a4b6641ca528fada71ea77c998a441495ed4984c \
    rmd160  eaff64d0fec09d725addf8de569f508b80a5766e \
  ${name}-${vim_version}-extra.tar.gz \
    md5     35e04482f07c57221c9a751aaa3b8dac \
    sha1    6a17629093e59958bff336b6c122dea1b8b1b649 \
    rmd160  05976466c8a6c1bd2fb2b1d58eb4613947de07df \
  ${name}-${vim_version}-lang.tar.gz \
    md5     d8884786979e0e520c112faf2e176f05 \
    sha1    970e0dda7e5b2308cf33488be1ea33d593d951cb \
    rmd160  946bd64fbf030b341cc13bee7101f2c0acb26ce2

distname            ${name}[strsed ${vim_version} {g/\.//}]
dist_subdir         ${distname}

depends_build       bin:gnutar:gnutar \
                    bin:grep:grep
depends_lib         port:ncurses \
                    port:libiconv \
                    port:ctags

configure.args      --enable-gui=no \
                    --without-x \
                    --disable-gpm \
                    --disable-nls \
                    --mandir=${prefix}/share/man \
                    --with-tlib=ncurses \
                    --enable-multibyte

extract.only        [suffix ${name}-${vim_version}]
post-extract {
    system "gnutar xvfz ${distpath}/${name}-${vim_version}-extra.tar.gz -C \
      ${workpath}"
    system "gnutar xvfz ${distpath}/${name}-${vim_version}-lang.tar.gz -C \
      ${workpath}"
}

post-patch {
	set features [open ${worksrcpath}/src/feature.h a+]
	puts $features "#define SYS_VIMRC_FILE \"${prefix}/etc/vimrc\""
	close $features
}

use_parallel_build  yes

post-destroot {
    ln -s ${prefix}/bin/vim ${destroot}${prefix}/bin/vi
}

test.run            yes

variant athena description {Build GUI version using Athena widgets} conflicts gtk1 gtk2 motif {
    configure.args-delete   --enable-gui=no --without-x
    configure.args-append   --enable-gui=athena --with-x --disable-darwin
    depends_lib-append      port:xorg-libXaw
}
variant gtk1 description {Build GUI version using GTK 1.x widgets} conflicts athena gtk2 motif {
    configure.args-delete   --enable-gui=no --without-x
    configure.args-append   --enable-gui=gtk --with-x --disable-darwin
    depends_lib-append      port:gtk1
}
variant gtk2 description {Build GUI version using GTK 2.x widgets} conflicts athena gtk1 motif {
    configure.args-delete   --enable-gui=no --without-x
    configure.args-append   --enable-gui=gtk2 --with-x --disable-darwin
    depends_lib-append      port:gtk2
}
variant motif description {Build GUI version with Motif widgets} conflicts athena gtk1 gtk2 {
    configure.args-delete   --enable-gui=no --without-x
    configure.args-append   --enable-gui=motif --with-x --disable-darwin
    depends_lib-append      lib:libXm:openmotif
}

variant tiny description {Build tiny feature set} {
    configure.args-append --with-features=tiny
}
variant small description {Build small feature set} conflicts tiny {
    configure.args-append --with-features=small
}
variant big description {Build big feature set} conflicts tiny small	{
    configure.args-append --with-features=big
}
variant huge description {Build huge feature set} conflicts tiny small big {
    configure.args-append --with-features=huge
}
variant xim description {Build with support for X Input Method} {
    configure.args-append --with-xim
}

variant perl description {Enable Perl scripting} {
    configure.args-append   --enable-perlinterp
    depends_lib-append      path:bin/perl:perl5
}
variant python requires python25 description {Compatibility variant, requires +python25} {}
variant python25 conflicts python26 description {Enable Python scripting} {
    configure.args-append   --enable-pythoninterp --with-python=${prefix}/bin/python2.5
    patchfiles-append       patch-python.diff
    depends_lib-append      port:python25

    depends_build-append    bin:autoconf:autoconf
    pre-configure {
        system "cd ${worksrcpath}/src && make autoconf"
    }
}
variant python26 conflicts python25 description {Enable Python scripting} {
    configure.args-append   --enable-pythoninterp --with-python=${prefix}/bin/python2.6
    patchfiles-append       patch-python.diff
    depends_lib-append      port:python26

    depends_build-append    bin:autoconf:autoconf
    pre-configure {
        system "cd ${worksrcpath}/src && make autoconf"
    }
}
variant ruby description {Enable Ruby scripting} {
    configure.args-append   --enable-rubyinterp
    depends_lib-append      port:ruby
}
variant tcl description {Enable Tcl scripting} {
    configure.args-append   --enable-tclinterp
    depends_lib-append      port:tcl
}

variant cscope description {Enable source code browsing with cscope} {
    configure.args-append   --enable-cscope
}

variant nls {
    configure.args-delete   --disable-nls
    depends_lib-append      port:gettext
}

platform puredarwin {
    configure.args-append --disable-darwin
}

include serverlist
include patchlist

livecheck.check regex
livecheck.url   http://ftp.vim.org/pub/${name}/patches/${vim_version}/?O=D
livecheck.regex (${vim_version}\.\\d+)
