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/