Skip to content

Instantly share code, notes, and snippets.

@windwiny
Last active December 14, 2015 04:18
Show Gist options
  • Save windwiny/5026939 to your computer and use it in GitHub Desktop.
Save windwiny/5026939 to your computer and use it in GitHub Desktop.
brew install ruby 2.0
require 'formula'
class Ruby < Formula
homepage 'http://www.ruby-lang.org/en/'
url 'http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.bz2'
sha256 'c680d392ccc4901c32067576f5b474ee186def2fcd3fcbfa485739168093295f'
head 'http://svn.ruby-lang.org/repos/ruby/trunk/'
env :std
option :universal
option 'with-suffix', 'Suffix commands with "20"'
option 'with-doc', 'Install documentation'
option 'with-tcltk', 'Install with Tcl/Tk support'
if build.universal?
depends_on 'autoconf' => :build
elsif build.head?
depends_on :autoconf
end
depends_on 'pkg-config' => :build
depends_on 'readline'
depends_on 'gdbm'
depends_on 'libyaml'
depends_on :x11 if build.include? 'with-tcltk'
depends_on 'openssl'
fails_with :llvm do
build 2326
end
def install
system "autoconf" if build.head?
args = ["--prefix=#{prefix}",
"--enable-shared"]
args << "--program-suffix=20" if build.include? "with-suffix"
args << "--with-arch=x86_64,i386" if build.universal?
args << "--disable-tcltk-framework" << "--with-out-ext=tcl" << "--with-out-ext=tk" unless build.include? "with-tcltk"
args << "--disable-install-doc" unless build.include? "with-doc"
args << "--with-openssl-dir=`brew --prefix openssl`"
# Put gem, site and vendor folders in the HOMEBREW_PREFIX
ruby_lib = HOMEBREW_PREFIX/"lib/ruby"
(ruby_lib/'site_ruby').mkpath
(ruby_lib/'vendor_ruby').mkpath
(ruby_lib/'gems').mkpath
(lib/'ruby').install_symlink ruby_lib/'site_ruby',
ruby_lib/'vendor_ruby',
ruby_lib/'gems'
system "./configure", *args
system "make"
system "make install"
system "make install-doc" if build.include? "with-doc"
end
def caveats; <<-EOS.undent
NOTE: By default, gem installed binaries will be placed into:
#{opt_prefix}/bin
You may want to add this to your PATH.
EOS
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment