# $Id: Portfile 22501 2007-03-03 06:34:24Z pipping@macports.org $ PortSystem 1.0 name vim set vim_version 7.0 set vim_patchlevel 206 version ${vim_version}.${vim_patchlevel} revision 1 categories editors maintainers pipping@macports.org description Vi "workalike" with many additional features long_description Vim is a virtually compatible, extremely \ enhanced version of the vi editor. homepage http://www.vim.org/ platforms darwin freebsd distfiles ${name}-${vim_version}.tar.bz2:vim \ ${name}-${vim_version}-extra.tar.gz:extra \ ${name}-${vim_version}-lang.tar.gz:extra use_bzip2 yes set serverList { ftp://ftp.vim.org/pub/vim/ \ http://ftp.vim.org/pub/vim/ \ ftp://ftp.us.vim.org/pub/vim/ \ ftp://ftp.ca.vim.org/pub/vim/ \ ftp://ftp.nl.vim.org/pub/vim/ \ ftp://ftp.uk.vim.org/pub/vim/ \ ftp://ftp.ie.vim.org/pub/vim/ \ ftp://ftp.is.vim.org/pub/vim/ \ ftp://ftp.pl.vim.org/pub/vim/ \ ftp://ftp.ro.vim.org/pub/vim/ \ ftp://ftp.cz.vim.org/pub/vim/ \ ftp://ftp.sk.vim.org/pub/vim/ \ ftp://ftp.jp.vim.org/pub/vim/ \ ftp://ftp.kr.vim.org/pub/vim/ \ ftp://ftp2.us.vim.org/pub/vim/ \ ftp://ftp9.us.vim.org/pub/vim/ \ ftp://ftp2.nl.vim.org/pub/vim/ \ ftp://ftp3.nl.vim.org/pub/vim/ \ ftp://ftp3.de.vim.org/pub/vim/ \ ftp://ftp2.tw.vim.org/pub/vim/ \ ftp://miroir-francais.fr/pub/vim/ \ ftp://ftp.tw.vim.org/pub/Unix/Editors/Vim/ } # create list of locations for source, extras, patches from serverList foreach server ${serverList} { lappend master_sites ${server}unix/:vim lappend master_sites ${server}extra/:extra lappend patch_sites ${server}patches/${vim_version} } patchfiles patch-if_ruby.c dist_subdir vim distname vim[strsed ${vim_version} {g/[.]//}] eval { set low 1 while {$low <= $vim_patchlevel} { set high [expr $low + 99]; if {$high < $vim_patchlevel} { patchfiles-append \ [format "%s.%03d-%03d.gz" $vim_version $low $high] incr low 100 } else { patchfiles-append [format "%s.%03d" $vim_version $low] incr low 1 } } } depends_lib port:gettext port:ncurses configure.args --enable-gui=no --without-x --disable-gpm \ --mandir=${prefix}/share/man --with-tlib=ncurses configure.env CPPFLAGS="-I${prefix}/include" \ LDFLAGS="-L${prefix}/lib" extract.only ${name}-${vim_version}${extract.suffix} 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}" } variant aqua conflicts athena gtk1 gtk2 motif { master_sites-append \ http://www.douglas.stebila.ca/files/code/vim/app/:app_aqua \ http://www.douglas.stebila.ca/files/code/vim/doc/:doc_aqua distfiles-append app-bm.tar.gz:app_aqua \ doc.tar.gz:doc_aqua set appPath "/Applications/MacPorts/" configure.pre_args --prefix=${appPath}/Vim configure.args-delete --enable-gui=no configure.args-append --enable-gui=carbon post-extract { system "gnutar xvfz ${distpath}/app-bm.tar.gz -C ${workpath}" system "gnutar xvfz ${distpath}/doc.tar.gz -C ${workpath}" } destroot { set appPath "/Applications/MacPorts/" # create the required directories xinstall -d -m 755 ${destroot}${appPath}Vim xinstall -d -m 755 ${destroot}${prefix}/bin # copy Vim.app file copy ${worksrcpath}/src/Vim.app ${destroot}${appPath}Vim xinstall -m 644 ${filespath}/vimrc ${filespath}/gvimrc \ ${destroot}${appPath}Vim/Vim.app xinstall -m 644 ${workpath}/doc-txt.icns \ ${destroot}${appPath}Vim/Vim.app/Contents/Resources xinstall -m 644 ${workpath}/app.icns \ ${destroot}${appPath}Vim/Vim.app/Contents/Resources/gui_mac.icns # remove the broken link to 'runtime', copy the folder instead file delete \ ${destroot}${appPath}Vim/Vim.app/Contents/Resources/vim/runtime file copy \ ${worksrcpath}/runtime \ ${destroot}${appPath}Vim/Vim.app/Contents/Resources/vim/runtime # create a link to the executable file link -hard ${destroot}${prefix}/bin/vim \ ${destroot}${appPath}Vim/Vim.app/Contents/MacOS/Vim # copy vimtutor xinstall -m 755 ${worksrcpath}/src/vimtutor \ ${destroot}${prefix}/bin/ # install documentation xinstall -d ${destroot}/${prefix}/share/man/man1 cd ${destroot}${appPath}Vim/Vim.app/Contents/Resources/vim/runtime/doc foreach manPage [glob *.1] { file link -hard ${destroot}${prefix}/share/man/man1/${manPage} \ ./${manPage} } # install launchscript xinstall -m 755 ${filespath}/gvim.sh \ ${destroot}/${prefix}/bin/gvim # copy GVim.app (ppc only) if {![variant_isset darwin_i386]} { system "gnutar xvfz ${filespath}/GVim_app.tar.gz -C \ ${destroot}${appPath}" xinstall -m 644 ${workpath}/app.icns \ ${destroot}${appPath}GVim.app/Contents/Resources/appIcon.icns } } } variant athena conflicts aqua gtk1 gtk2 motif { configure.args-delete --enable-gui=no --without-x configure.args-append --enable-gui=athena --with-x --disable-darwin depends_lib-append lib:libX11:XFree86 } variant gtk1 conflicts aqua athena gtk2 motif { configure.args-delete --enable-gui=no --without-x configure.args-append --enable-gui=gtk --with-x --disable-darwin depends_lib-append lib:libgtk.1:gtk1 } variant gtk2 conflicts aqua athena gtk1 motif { configure.args-delete --enable-gui=no --without-x configure.args-append --enable-gui=gtk2 --with-x --disable-darwin depends_lib-append lib:libgtk.2:gtk2 } variant motif conflicts aqua 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 gnome { # configure.args-delete --enable-gui=no --without-x # configure.args-append --enable-gui=gnome --with-x --disable-darwin # What for depends? #} #variant gnome2 { # configure.args-delete --enable-gui=no --without-x # configure.args-append --enable-gui=gnome2 --with-x --disable-darwin # What for depends? #} variant tiny conflicts aqua { configure.args-append --with-features=tiny } variant small conflicts aqua { configure.args-append --with-features=small } variant big { configure.args-append --with-features=big } variant huge { configure.args-append --with-features=huge } variant multibyte { configure.args-append --enable-multibyte } variant xim { configure.args-append --with-xim } variant perl { configure.args-append --enable-perlinterp depends_lib-append bin:perl:perl5.8 } variant python { configure.args-append --enable-pythoninterp depends_lib-append bin:python:python23 } variant ruby { configure.args-append --enable-rubyinterp depends_lib-append bin:ruby:ruby } variant tcl { configure.args-append --enable-tclinterp depends_lib-append bin:tclsh:tcl } variant cscope { configure.args-append --enable-cscope } # merely a proof-of-concept: # gettext - not linked at all # ncurses - incorrectly linked from /usr/lib variant universal { configure.args-append --with-mac-arch=both configure.env-delete CPPFLAGS="-I${prefix}/include" \ LDFLAGS="-L${prefix}/lib" } platform darwin i386 { } include checksums_dist include checksums_patch