summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in2
-rw-r--r--common.mk5
-rwxr-xr-xtool/mkconfig.rb22
-rw-r--r--win32/Makefile.sub4
4 files changed, 20 insertions, 13 deletions
diff --git a/Makefile.in b/Makefile.in
index bae0773..9c8dbce 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -254,6 +254,8 @@ ruby_pc = @ruby_pc@
$(ruby_pc):
@./config.status --file=$@:$(srcdir)/template/ruby.pc.in
+$(RBCONFIG): $($(CROSS_COMPILING:no=)PREP)
+
install-cross: $(arch)-fake.rb $(RBCONFIG) rbconfig.rb $(arch_hdrdir)/ruby/config.h \
$(LIBRUBY_A) $(LIBRUBY_SO) $(ARCHFILE)
$(ECHO) installing cross-compiling stuff
diff --git a/common.mk b/common.mk
index ad52f3c..b84de9c 100644
--- a/common.mk
+++ b/common.mk
@@ -588,8 +588,9 @@ extconf: $(PREP)
$(Q) $(MAKEDIRS) "$(EXTCONFDIR)"
$(RUNRUBY) -C "$(EXTCONFDIR)" $(EXTCONF) $(EXTCONFARGS)
-$(RBCONFIG): $(srcdir)/tool/mkconfig.rb config.status $(srcdir)/version.h $(PREP)
- $(Q)$(MINIRUBY) $(srcdir)/tool/mkconfig.rb -timestamp=$@ \
+$(RBCONFIG): $(srcdir)/tool/mkconfig.rb config.status $(srcdir)/version.h
+ $(Q)$(BOOTSTRAPRUBY) $(srcdir)/tool/mkconfig.rb -timestamp=$@ \
+ -arch=$(arch) -version=$(ruby_version) \
-install_name=$(RUBY_INSTALL_NAME) \
-so_name=$(RUBY_SO_NAME) rbconfig.rb
diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
index eea8010..7919aec 100755
--- a/tool/mkconfig.rb
+++ b/tool/mkconfig.rb
@@ -3,6 +3,8 @@
# avoid warnings with -d.
$install_name ||= nil
$so_name ||= nil
+arch = $arch or raise "missing -arch"
+version = $version or raise "missing -version"
srcdir = File.expand_path('../..', __FILE__)
$:.replace [srcdir+"/lib"] unless defined?(CROSS_COMPILING)
@@ -16,7 +18,6 @@ unless File.directory?(dir = File.dirname(rbconfig_rb))
FileUtils.makedirs(dir, :verbose => true)
end
-version = RUBY_VERSION
config = ""
def config.write(arg)
concat(arg.to_s)
@@ -24,17 +25,7 @@ end
$stdout = config
fast = {'prefix'=>TRUE, 'ruby_install_name'=>TRUE, 'INSTALL'=>TRUE, 'EXEEXT'=>TRUE}
-print %[
-# This file was created by #{mkconfig} when ruby was built. Any
-# changes made to this file will be lost the next time ruby is built.
-
-module RbConfig
- RUBY_VERSION.start_with?("#{version}"[/^[0-9]+[.][0-9]+[.]/]) or
- raise "ruby lib version (#{version}) doesn't match executable version (\#{RUBY_VERSION})"
-
-]
-arch = RUBY_PLATFORM
win32 = /mswin/ =~ arch
universal = /universal.*darwin/ =~ arch
v_fast = []
@@ -175,6 +166,15 @@ end
prefix = vars.expand(vars["prefix"] ||= "")
rubyarchdir = vars.expand(vars["rubyarchdir"] ||= "")
relative_archdir = rubyarchdir.rindex(prefix, 0) ? rubyarchdir[prefix.size..-1] : rubyarchdir
+puts %[\
+# This file was created by #{mkconfig} when ruby was built. Any
+# changes made to this file will be lost the next time ruby is built.
+
+module RbConfig
+ RUBY_VERSION.start_with?("#{version}"[/^[0-9]+[.][0-9]+[.]/]) or
+ raise "ruby lib version (#{version}) doesn't match executable version (\#{RUBY_VERSION})"
+
+]
print " TOPDIR = File.dirname(__FILE__).chomp!(#{relative_archdir.dump})\n"
print " DESTDIR = ", (drive ? "TOPDIR && TOPDIR[/\\A[a-z]:/i] || " : ""), "'' unless defined? DESTDIR\n"
print <<'ARCH' if universal
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index c797270..ac41e7c 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -1045,6 +1045,10 @@ clean-enc distclean-enc realclean-enc:
@-$(MAKE) -f $(ENC_MK) $(MFLAGS) V=$(V) $(@:-enc=)
!endif
+!if "$(CROSS_COMPILING)" == "no"
+$(RBCONFIG): $(PREP)
+!endif
+
$(RCFILES): $(RBCONFIG) $(srcdir)/revision.h $(srcdir)/win32/resource.rb
@$(MINIRUBY) $(srcdir)/win32/resource.rb \
-ruby_name=$(RUBY_INSTALL_NAME) \