710626f473
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>
84 lines
2.4 KiB
Ruby
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
|