[前][次][番号順一覧][スレッド一覧]

ruby-changes:24226

From: nobu <ko1@a...>
Date: Tue, 3 Jul 2012 11:16:18 +0900 (JST)
Subject: [ruby-changes:24226] nobu:r36277 (trunk): make runnable

nobu	2012-07-03 11:16:08 +0900 (Tue, 03 Jul 2012)

  New Revision: 36277

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36277

  Log:
    make runnable
    
    * common.mk (runnable): make symbolic links to run in build directory.

  Added files:
    trunk/tool/mkrunnable.rb
  Modified files:
    trunk/ChangeLog
    trunk/Makefile.in
    trunk/common.mk
    trunk/configure.in
    trunk/win32/Makefile.sub

Index: configure.in
===================================================================
--- configure.in	(revision 36276)
+++ configure.in	(revision 36277)
@@ -2655,6 +2655,9 @@
 	],
     [interix*], [
 	LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)'
+	],
+    [mingw*|cygwin*|mswin*], [
+	LIBRUBY_RELATIVE=yes
 	])
 ], [
   LIBRUBYARG_SHARED=
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 36276)
+++ ChangeLog	(revision 36277)
@@ -1,3 +1,7 @@
+Tue Jul  3 11:16:06 2012  Nobuyoshi Nakada  <nobu@r...>
+
+	* common.mk (runnable): make symbolic links to run in build directory.
+
 Tue Jul  3 10:46:06 2012  NARUSE, Yui  <naruse@r...>
 
 	* ruby.c (proc_options): warn if -K option is specified. [Feature #5206]
Index: common.mk
===================================================================
--- common.mk	(revision 36276)
+++ common.mk	(revision 36277)
@@ -521,6 +521,11 @@
 test-rubyspec: test-rubyspec-precheck
 	$(RUNRUBY) $(srcdir)/spec/mspec/bin/mspec run -B $(srcdir)/spec/default.mspec $(MSPECOPT)
 
+RUNNABLE = $(LIBRUBY_RELATIVE:no=un)-runnable
+runnable: $(RUNNABLE) prog $(srcdir)/tool/mkrunnable.rb PHONY
+	$(Q) $(MINIRUBY) $(srcdir)/tool/mkrunnable.rb -v $(EXTOUT)
+yes-runnable: PHONY
+
 encs: enc trans
 libencs: libenc libtrans
 encs enc trans libencs libenc libtrans: showflags $(ENC_MK) $(LIBRUBY) $(PREP)
Index: win32/Makefile.sub
===================================================================
--- win32/Makefile.sub	(revision 36276)
+++ win32/Makefile.sub	(revision 36277)
@@ -312,6 +312,8 @@
 LIBRUBY_SO    = $(RUBY_SO_NAME).dll
 LIBRUBY       = $(RUBY_SO_NAME).lib
 LIBRUBYARG    = $(LIBRUBY)
+LIBRUBY_RELATIVE = yes
+
 THREAD_MODEL  = win32
 
 !if $(CROSS_COMPILING)
Index: Makefile.in
===================================================================
--- Makefile.in	(revision 36276)
+++ Makefile.in	(revision 36277)
@@ -116,6 +116,7 @@
 LIBRUBYARG    = @LIBRUBYARG@
 LIBRUBYARG_STATIC = @LIBRUBYARG_STATIC@
 LIBRUBYARG_SHARED = @LIBRUBYARG_SHARED@
+LIBRUBY_RELATIVE = @LIBRUBY_RELATIVE@
 
 THREAD_MODEL  = @THREAD_MODEL@
 
Index: tool/mkrunnable.rb
===================================================================
--- tool/mkrunnable.rb	(revision 0)
+++ tool/mkrunnable.rb	(revision 36277)
@@ -0,0 +1,62 @@
+#!./miniruby
+
+require 'mkmf'
+
+case ARGV[0]
+when "-n"
+  ARGV.shift
+  include FileUtils::DryRun
+when "-v"
+  ARGV.shift
+  include FileUtils::Verbose
+else
+  include FileUtils
+end
+
+def ln_safe(src, dest)
+  link = File.readlink(dest) rescue nil
+  return if link == src
+  ln_sf(src, dest)
+end
+
+config = RbConfig::CONFIG
+extout = ARGV[0] || config["EXTOUT"]
+version = config["ruby_version"]
+arch = config["arch"]
+["bin", "lib"].each do |dir|
+  File.directory?(dir) or mkdir_p(dir)
+end
+
+exeext = config["EXEEXT"]
+ruby_install_name = config["ruby_install_name"]
+rubyw_install_name = config["rubyw_install_name"]
+goruby_install_name = "go" + ruby_install_name
+[ruby_install_name, rubyw_install_name, goruby_install_name].map do |ruby|
+  ruby += exeext
+  if ruby and !ruby.empty?
+    ln_safe("../#{ruby}", "bin/#{ruby}")
+  end
+end
+libruby = config.values_at("LIBRUBY_A", "LIBRUBY_SO")
+libruby.concat(config["LIBRUBY_ALIASES"].split)
+libruby.each {|lib|ln_safe("../#{lib}", "lib/#{lib}")}
+if File.expand_path(extout) == extout
+  ln_safe(extout, "lib/ruby")
+else
+  ln_safe(File.join("..", extout), "lib/ruby")
+  cur = "#{extout}/".gsub(/(\A|\/)(?:\.\/)+/, '\1').tr_s('/', '/')
+  nil while cur.sub!(/[^\/]+\/\.\.\//, '')
+  if /(\A|\/)\.\.\// =~ cur
+    cur = nil
+  else
+    cur.gsub!(/[^\/]+/, '..')
+  end
+end
+if cur
+  ln_safe(File.join("..", cur, "rbconfig.rb"), File.join(extout, arch, "rbconfig.rb"))
+else
+  ln_safe(File.expand_path("rbconfig.rb"), File.join(extout, arch, "rbconfig.rb"))
+end
+ln_safe("common", File.join(extout, version))
+ln_safe(File.join("..", arch), File.join(extout, "common", arch))
+ln_safe(relative_from(File.join(File.dirname(config["srcdir"]), "lib"), ".."), File.join(extout, "vendor_ruby"))

Property changes on: tool/mkrunnable.rb
___________________________________________________________________
Added: svn:eol-style
   + LF
Added: svn:executable
   + *
Added: svn:mime-type
   + text/x-ruby


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]