Doh! Here's the patch (it still contains some debugging code, so it's a
little noisier than necessary):


diff -r -U3 ruby-1.6.8/ext/extmk.rb.in src/ext/extmk.rb.in
--- ruby-1.6.8/ext/extmk.rb.in	Tue Dec 24 08:29:10 2002
+++ src/ext/extmk.rb.in	Fri Apr  4 17:23:22 2003
@@ -25,8 +25,35 @@
 SRC_EXT = ["c", "cc", "m", "cxx", "cpp", "C"]
 $extlist = []

-$includedir = "@includedir@".gsub(/\$\{prefix\}|\$\(prefix\)/,'@prefix@')
-$libdir = "@libdir@".gsub(/\$\{exec_prefix\}|\$\(exec_prefix\)/,'@exec_prefix@')
+CONFIG_NO_EXPAND = true
+load "../rbconfig.rb"
+include Config
+
+makevars = {}
+ENV["MAKEFLAGS"].split(' ').each do
+    |pair|
+    key,value = *pair.split('=')
+    $stderr.puts "Found #{key} = #{value}"
+    makevars[key.downcase] = value
+end
+
+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
+
+$includedir = CONFIG["includedir"]
+$libdir = CONFIG["libdir"]

 $top_srcdir = "@top_srcdir@"
 if $top_srcdir !~ "^/"
@@ -381,8 +408,8 @@
 #    $DLDFLAGS << " -Wl,--no-undefined"
 #  end

-  if $configure_args['--enable-shared'] or "@LIBRUBY@" != "@LIBRUBY_A@"
-    $libs = "@LIBRUBYARG@ " + $libs
+  if $configure_args['--enable-shared'] or CONFIG["LIBRUBY"] != CONFIG["LIBRUBY_A"]
+    $libs = CONFIG["LIBRUBYARG"] + " " + $libs
     $LIBPATH.unshift $topdir
   end

@@ -435,9 +462,11 @@
 RUBY_INSTALL_NAME = @RUBY_INSTALL_NAME@
 RUBY_SO_NAME = @RUBY_SO_NAME@

-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
+PREFIX = @prefix@
+EXEC_PREFIX = @exec_prefix@
+prefix = $(PREFIX)
+exec_prefix = $(EXEC_PREFIX)
+libdir = $(exec_prefix)/lib
 #pkglibdir = $(libdir)/$(RUBY_INSTALL_NAME)/@MAJOR@.@MINOR@
 pkglibdir = $(libdir)/ruby/@MAJOR@.@MINOR@
 archdir = $(pkglibdir)/@arch@
diff -r -U3 ruby-1.6.8/instruby.rb src/instruby.rb
--- ruby-1.6.8/instruby.rb	Mon Dec  2 16:53:03 2002
+++ src/instruby.rb	Fri Apr  4 16:25:47 2003
@@ -1,35 +1,55 @@
 #!./miniruby

+File.umask(0)
+CONFIG_NO_EXPAND = true
 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"
 require "ftools"
 require "find"

 exeext = CONFIG["EXEEXT"]
-if ENV["prefix"]
-  prefix = ENV["prefix"]
-else
-  prefix = CONFIG["prefix"]
-end

 ruby_install_name = CONFIG["ruby_install_name"]
 version = "/"+CONFIG["MAJOR"]+"."+CONFIG["MINOR"]
 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

+#CONFIG.sort.each {|k,v| puts "#{k} => #{v}"}
 File.makedirs bindir, true
 File.install ruby_install_name+exeext,
   "#{bindir}/#{ruby_install_name}#{exeext}", 0755, true
diff -r -U3 ruby-1.6.8/mkconfig.rb src/mkconfig.rb
--- ruby-1.6.8/mkconfig.rb	Thu Oct 31 18:40:10 2002
+++ src/mkconfig.rb	Fri Apr  4 16:26:25 2003
@@ -107,9 +107,19 @@
     end
     val
   end
-  CONFIG.each_value do |val|
-    Config::expand(val)
+  def Config::expand_all
+    CONFIG.each_value do |val|
+      Config::expand(val)
+    end
+  end
+  expand = true
+  begin
+      expand = false if CONFIG_NO_EXPAND
+  rescue NameError
+      expand = true
   end
+  $stderr.puts "Auto-expanding" if expand
+  Config::expand_all if expand
 end
 EOS
 config.close