Hi,
This follows on from my “Tricky install question” earlier. This patch
allows “make” to supply different values at build time and install time
for key paths. So a
./configure --prefix=/foo
make
make PREFIX=/bar install
will install ruby under /bar, but looking for it’s libraries under /foo.
So when the contents of /bar get moved to /foo it all works.
This makes a minor change to mkconfig.rb and adds some more logic to
instruby.rb. It does exactly the same as before for a plain ‘make
install’.
To install the patch:
cd ruby-1.6.8; patch -p1 < /path/to/install.patch
Patch follows after sig. Comments welcome.
Cheers,
Mike
···
–
Mike Wyer mike@wyer.org www.wyer.org/mike 07974 254007
"I want to die peacefully in my sleep like my Grandfather...
… not screaming and yelling like the passengers in his car"
Patch starts here
— ruby-1.6.8/instruby.rb Mon Dec 2 16:53:03 2002
+++ ruby-1.6.8-0/instruby.rb Fri Apr 4 14:57:46 2003
@@ -1,9 +1,33 @@
#!./miniruby
+File.umask(0)
+CONFIG_NO_EXPAND = 1
load "./rbconfig.rb"
include Config
-File.umask(0)
-destdir = ARGV[0] || ‘’
+makevars = {}
+ENV[“MAKEFLAGS”].split(’ ').each do
- |pair|
- key,value = *pair.split(’=’)
- $stderr.puts “Found #{key} = #{value}”
- makevars[key.downcase] = value
+end
+destdir = ARGV[0] || makevars[‘destdir’] || ‘’
+
+if makevars[“prefix”]
- CONFIG[“prefix”] = makevars[“prefix”]
+elsif ENV[“prefix”] - CONFIG[“prefix”] = ENV[“prefix”]
+end
+prefix = CONFIG[“prefix”]
+if makevars[“exec_prefix”]
- CONFIG[“exec_prefix”] = makevars[“exec_prefix”]
+elsif ENV[“exec_prefix”] - CONFIG[“exec_prefix”] = ENV[“exec_prefix”]
+end
+Config::expand_all
$:.unshift CONFIG[“srcdir”]+"/lib"
@@ -12,9 +36,4 @@
exeext = CONFIG[“EXEEXT”]
-if ENV[“prefix”]
- prefix = ENV[“prefix”]
-else - prefix = CONFIG[“prefix”]
-end
ruby_install_name = CONFIG[“ruby_install_name”]
@@ -22,11 +41,11 @@
arch = “/”+CONFIG[“arch”]
-bindir = destdir+CONFIG[“bindir”]
-libdir = destdir+CONFIG[“libdir”]
-rubylibdir = destdir+CONFIG[“prefix”]+"/lib/ruby"+version
-archlibdir = rubylibdir+arch
-sitelibdir = destdir+CONFIG[“sitedir”]+version
-sitearchlibdir = sitelibdir+arch
-mandir = destdir+CONFIG[“mandir”] + “/man1”
+bindir = makevars[“bindir”] || destdir+CONFIG[“bindir”]
+libdir = makevars[“libdir”] || destdir+CONFIG[“libdir”]
+rubylibdir = makevars[“rubylibdir”] || destdir+prefix+"/lib/ruby"+version
+archlibdir = makevars[“archlibdir”] || rubylibdir+arch
+sitelibdir = makevars[“sitelibdir”] || destdir+CONFIG[“sitedir”]+version
+sitearchlibdir = makevars[“sitearchlibdir”] || sitelibdir+arch
+mandir = makevars[“mandir”] || destdir+CONFIG[“mandir”] + "/man1"
wdir = Dir.getwd
diff -U2 -r ruby-1.6.8/mkconfig.rb ruby-1.6.8-0/mkconfig.rb
— ruby-1.6.8/mkconfig.rb Thu Oct 31 18:40:10 2002
+++ ruby-1.6.8-0/mkconfig.rb Fri Apr 4 14:58:37 2003
@@ -108,7 +108,10 @@
val
end
- CONFIG.each_value do |val|
- Config::expand(val)
- def Config::expand_all
- CONFIG.each_value do |val|
-
Config::expand(val)
- end
end - Config::expand_all unless CONFIG_NO_EXPAND
end
EOS