Created
March 9, 2012 03:57
-
-
Save dpo/2004942 to your computer and use it in GitHub Desktop.
Homebrew formula to build vim against Homebrew Python 2.7.3 with client/server feature
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Install with --without-ruby if you observe segfaults. | |
require 'formula' | |
class Vim < Formula | |
homepage 'http://www.vim.org/' | |
# Get the base 7.4 tarball from Vim.org. But once patches start again, go | |
# back to tracking Debian unstable here: | |
# http://ftp.de.debian.org/debian/pool/main/v/vim/ | |
url 'http://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2' | |
sha1 '601abf7cc2b5ab186f40d8790e542f86afca86b7' | |
head 'https://vim.googlecode.com/hg/' | |
# We only have special support for finding depends_on :python, but not yet for | |
# :ruby, :perl etc., so we use the standard environment that leaves the | |
# PATH as the user has set it right now. | |
env :std | |
option "override-system-vi", "Override system vi" | |
option "disable-nls", "Build vim without National Language Support (translated messages, keymaps)" | |
LANGUAGES_OPTIONAL = %w(lua mzscheme perl tcl) | |
LANGUAGES_DEFAULT = %w(ruby python) | |
LANGUAGES_OPTIONAL.each do |language| | |
option "with-#{language}", "Build vim with #{language} support" | |
end | |
LANGUAGES_DEFAULT.each do |language| | |
option "without-#{language}", "Build vim without #{language} support" | |
end | |
depends_on :hg => :build if build.head? | |
depends_on :python => :recommended | |
def install | |
ENV['LUA_PREFIX'] = HOMEBREW_PREFIX | |
opts = [] | |
opts += LANGUAGES_OPTIONAL.map do |language| | |
"--enable-#{language}interp" if build.with? language | |
end | |
opts += LANGUAGES_DEFAULT.map do |language| | |
"--enable-#{language}interp" unless build.without? language | |
end | |
opts << "--disable-nls" if build.include? "disable-nls" | |
if python | |
if python.brewed? | |
# Avoid that vim always links System's Python even if configure tells us | |
# it has found a brewed Python. Verify with `otool -L`. | |
ENV.prepend 'LDFLAGS', "-F#{python.framework}" | |
elsif python.from_osx? && !MacOS::CLT.installed? | |
# Avoid `Python.h not found` on 10.8 with Xcode-only | |
ENV.append 'CFLAGS', "-I#{python.incdir}", ' ' | |
# opts << "--with-python-config-dir=#{python.libdir}" | |
end | |
end | |
# XXX: Please do not submit a pull request that hardcodes the path | |
# to ruby: vim can be compiled against 1.8.x or 1.9.3-p385 and up. | |
# If you have problems with vim because of ruby, ensure a compatible | |
# version is first in your PATH when building vim. | |
# We specify HOMEBREW_PREFIX as the prefix to make vim look in the | |
# the right place (HOMEBREW_PREFIX/share/vim/{vimrc,vimfiles}) for | |
# system vimscript files. We specify the normal installation prefix | |
# when calling "make install". | |
system "./configure", "--prefix=#{HOMEBREW_PREFIX}", | |
"--mandir=#{man}", | |
"--enable-gui=gtk2", | |
"--enable-multibyte", | |
"--with-tlib=ncurses", | |
"--enable-cscope", | |
"--with-features=huge", | |
"--with-compiledby=Homebrew", | |
*opts | |
system "make" | |
# If stripping the binaries is not enabled, vim will segfault with | |
# statically-linked interpreters like ruby | |
# http://code.google.com/p/vim/issues/detail?id=114&thanks=114&ts=1361483471 | |
system "make", "install", "prefix=#{prefix}", "STRIP=/usr/bin/true" | |
ln_s bin+'vim', bin+'vi' if build.include? 'override-system-vi' | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment