homebrew-core/Formula/ruby.rb
chdiza 710626f473 ruby: Pass --without-gmp unless build.with? "gmp"
Ruby will pick up gmp if it's on your machine, unless it's specifically
told to not look for gmp.  This is true regardless of whether the user
invokes the Homebrew flag --with-gmp.  It's safest to force ruby to not
look for gmp unless the user has specifically requested gmp with the
Homebrew option.  Otherwise, if the user brews ruby with gmp already on
the machine, then later removes gmp, then ruby is broken.

Closes Homebrew/homebrew#27795.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
2014-03-23 00:52:51 -05:00

84 lines
2.4 KiB
Ruby

require 'formula'
class Ruby < Formula
homepage 'https://www.ruby-lang.org/'
url 'http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.bz2'
sha256 '96aabab4dd4a2e57dd0d28052650e6fcdc8f133fa8980d9b936814b1e93f6cfc'
head do
url 'http://svn.ruby-lang.org/repos/ruby/trunk/'
depends_on :autoconf
end
option :universal
option 'with-suffix', 'Suffix commands with "21"'
option 'with-doc', 'Install documentation'
option 'with-tcltk', 'Install with Tcl/Tk support'
depends_on 'pkg-config' => :build
depends_on 'readline' => :recommended
depends_on 'gdbm' => :optional
depends_on 'gmp' => :optional
depends_on 'libffi' => :optional
depends_on 'libyaml'
depends_on 'openssl'
depends_on :x11 if build.with? 'tcltk'
fails_with :llvm do
build 2326
end
def install
system "autoconf" if build.head?
args = %W[--prefix=#{prefix} --enable-shared --disable-silent-rules]
args << "--program-suffix=21" if build.with? "suffix"
args << "--with-arch=#{Hardware::CPU.universal_archs.join(',')}" if build.universal?
args << "--with-out-ext=tk" if build.without? "tcltk"
args << "--disable-install-doc" if build.without? "doc"
args << "--disable-dtrace" unless MacOS::CLT.installed?
args << "--without-gmp" if build.without? "gmp"
paths = [
Formula["libyaml"].opt_prefix,
Formula["openssl"].opt_prefix
]
%w[readline gdbm gmp libffi].each { |dep|
paths << Formula[dep].opt_prefix if build.with? dep
}
args << "--with-opt-dir=#{paths.join(":")}"
# 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"
end
def caveats; <<-EOS.undent
By default, gem installed executables will be placed into:
#{opt_bin}
You may want to add this to your PATH. After upgrades, you can run
gem pristine --all --only-executables
to restore binstubs for installed gems.
EOS
end
test do
output = `#{bin}/ruby -e 'puts "hello"'`
assert_equal "hello\n", output
assert_equal 0, $?.exitstatus
end
end