aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
authorAdam Vandenberg2010-08-19 20:00:37 -0700
committerAdam Vandenberg2010-08-20 11:51:00 -0700
commitd5adf27d6afb5705dcde2c8972920d4a9ea2f215 (patch)
treea42be494848baa55a7fc517a65137fb7ac4df2f7 /Library/Formula
parent93d1fffddbfeedc13997941c4d28f7c96fe3aa7f (diff)
downloadhomebrew-d5adf27d6afb5705dcde2c8972920d4a9ea2f215.tar.bz2
ruby - Move gems out of Cellar and into HOMEBREW_PREFIX
Diffstat (limited to 'Library/Formula')
-rw-r--r--Library/Formula/ruby.rb45
1 files changed, 35 insertions, 10 deletions
diff --git a/Library/Formula/ruby.rb b/Library/Formula/ruby.rb
index e399af563..169edff1e 100644
--- a/Library/Formula/ruby.rb
+++ b/Library/Formula/ruby.rb
@@ -1,7 +1,5 @@
require 'formula'
-# TODO de-version the include and lib directories
-
class Ruby <Formula
url 'http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p0.tar.bz2'
homepage 'http://www.ruby-lang.org/en/'
@@ -24,31 +22,58 @@ class Ruby <Formula
def install
fails_with_llvm
- args = [ "--prefix=#{prefix}",
+ ruby_lib = HOMEBREW_PREFIX+"lib/ruby"
+
+ if File.exist? ruby_lib and File.symlink? ruby_lib
+ opoo "#{ruby_lib} exists as a symlink"
+ puts <<-EOS.undent
+ The previous Ruby formula symlinked #{ruby_lib} into Ruby's Cellar.
+
+ This version creates this as a "real folder" in HOMEBREW_PREFIX
+ so that installed gems will survive between Ruby updates.
+
+ Please remove this existing symlink before continuing:
+ rm #{ruby_lib}
+ EOS
+ exit 1
+ end
+
+ system "autoconf" unless File.exists? 'configure'
+
+ # Configure claims that "--with-readline-dir" is unused, but it works.
+ args = ["--prefix=#{prefix}",
"--with-readline-dir=#{Formula.factory('readline').prefix}",
"--disable-debug",
"--disable-dependency-tracking",
- "--enable-shared" ]
+ "--enable-shared",
+ "--with-sitedir=#{ruby_lib}/site",
+ "--with-vendordir=#{ruby_lib}/vendor"]
args << "--program-suffix=19" if ARGV.include? "--with-suffix"
- system "autoconf" unless File.exists? 'configure'
+ # Put gem, site and vendor folders in the HOMEBREW_PREFIX
+ (ruby_lib+'site').mkpath
+ (ruby_lib+'vendor').mkpath
+ (ruby_lib+'gems').mkpath
system "./configure", *args
system "make"
system "make install"
-
system "make install-doc" if ARGV.include? "--with-doc"
+
+ # Symlink HOMEBREW_PREFIX gems to Ruby in the Cellar
+ ln_s (ruby_lib+'gems'), (lib+"ruby/gems")
end
def caveats; <<-EOS.undent
Consider using RVM or Cider to manage Ruby environments:
- * RVM: http://rvm.beginrescueend.com/
+ * RVM: http://rvm.beginrescueend.com/
* Cider: http://www.atmos.org/cider/intro.html
- If you install gems with the RubyGems installed with this formula they will
- be installed to this formula's prefix. This needs to be fixed, as for example,
- upgrading Ruby will lose all your gems.
+ NOTE: By default, gem installed binaries will be placed into:
+ #{bin}
+
+ You may want to add this to your PATH.
EOS
end
end