summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Makefile.in3
-rwxr-xr-x[-rw-r--r--]template/fake.rb.in24
3 files changed, 30 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 16216d45b0..aa5df75bf5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Apr 6 11:21:23 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * template/fake.rb.in: hooks for extconf.rb.
+
Tue Apr 6 06:19:36 2010 NARUSE, Yui <naruse@ruby-lang.org>
* lib/rexml/text.rb (REXML::Text.check): comment out
diff --git a/Makefile.in b/Makefile.in
index c87115dcbd..66f60190ac 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -163,8 +163,9 @@ $(LIBRUBY_SO):
$(LIBRUBY_ALIASES) || true
fake: $(arch)-fake.rb
-$(arch)-fake.rb: config.status
+$(arch)-fake.rb: config.status $(srcdir)/template/fake.rb.in
@./config.status --file=$@:$(srcdir)/template/fake.rb.in
+ @chmod +x $@
Makefile: $(srcdir)/Makefile.in $(srcdir)/enc/Makefile.in
diff --git a/template/fake.rb.in b/template/fake.rb.in
index e8eba09289..df36b099f2 100644..100755
--- a/template/fake.rb.in
+++ b/template/fake.rb.in
@@ -1,3 +1,6 @@
+baseruby="@BASERUBY@"
+ruby="${RUBY-$baseruby}"
+"eval" "{ `expr \"$ruby\" : echo > /dev/null || echo exec` $ruby "'-r"`expr \"$0\" : / > /dev/null || pwd`/${0#/}" "$@";' "}" || "exit" "$?"
class Object
CROSS_COMPILING = RUBY_PLATFORM
remove_const :RUBY_PLATFORM
@@ -13,3 +16,24 @@ if RUBY_PLATFORM =~ /mswin|bccwin|mingw/
ALT_SEPARATOR = "\\"
end
end
+
+$:.unshift(File.expand_path("..", __FILE__))
+prehook = proc do
+ config = RbConfig::CONFIG
+ mkconfig = RbConfig::MAKEFILE_CONFIG
+ mkconfig["top_srcdir"] = $top_srcdir = File.expand_path("@abs_top_srcdir@")
+ $extout = File.expand_path(mkconfig["EXTOUT"], mkconfig["topdir"])
+ mkconfig["extout"] = config["extout"] = $extout
+ mkconfig["rubyhdrdir"] = "$(top_srcdir)/include"
+ config["rubyhdrdir"] = File.join(mkconfig["top_srcdir"], "include")
+ mkconfig["libdir"] = config["libdir"] = mkconfig["topdir"]
+ mkconfig["archdir"] = config["archdir"] = File.expand_path(File.dirname(__FILE__))
+ untrace_var(:$extmk, prehook)
+end
+trace_var(:$extmk, prehook)
+posthook = proc do
+ $ruby = baseruby
+ $arch_hdrdir = "$(extout)/include/$(arch)"
+ untrace_var(:$ruby, posthook)
+end
+trace_var(:$ruby, posthook)